Люблю то, что делаю!
С нами с 22.10.06
Сообщения: 5053
Рейтинг: 4418
|
Добавлено: 13/08/13 в 09:28 |
раньше как то не сталкивался с этим, а тут стал писать код, и чет увлекся, и чтоб не путаться определенные части кода стал писать отдельно. Получилось несколько файлов. И чтоб не собирать это все воедино в одном файле вспомнил про ООП.
Создаю "index.php" тут будет все собираться и выполняться. и создаю из тех отдельных кусков "class.one.php", "class.two.php", "class.three.php"
Вот тут возниквопрос.
Можно ли создать один файл "config.php" в котором будут редактируемые значение переменных, при этом подключить это все к классам? Т.е. к примеру у меня массив, который должен быть редактируемый, и я его хочу занести в "config.php", но при этом все классы должны работать непосредственно с ним.
Незнаю как это правильно сделать.
просто вписывать этот массив в каждый клас, чет мне кажется глупо, при том что если нужно будет что то отредактировать придется каждый класс редактировать.
|
|
|
|
С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010
|
Добавлено: 13/08/13 в 10:22 |
ну инклюдишь config.php в начале скрипта, а затем уже создаешь классы, присваиваешь переменные, инкапсуляция наследование полиморфизм
|
|
|
|
С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134
|
Добавлено: 13/08/13 в 11:44 |
мне кажется тут уже дело касается шаблонов проектирования. ООП это оперирование абстракциями, взаимодействие объектов. ООП ради ООП ничего хорошего не даст.
как правило у любого приложения есть точка входа, в которой происходит инициализация окружения, в том числе подключения конфигураций и т.д. в файле config.php как правило набор констант, подключение к БД, кодировка и т.д.
так же есть мнение что глобальные переменные это зло и не стыкуется с практикой ооп. объявлять его как global не есть хорошо, да и может возникнуть путаница с областью видимости. как вариант объявить его статичным свойством некоего класса, который будет доступен в любой точке приложения.
но опять же, все слишком размыто и не совсем понятно, что именно требуется и не ясно требуется ли это делать именно так.
|
|
|
|
Криптопохуист
С нами с 05.04.03
Сообщения: 17158
Рейтинг: 6019
|
Добавлено: 13/08/13 в 14:38 |
Эволюционируй дальше - переходи на MVC
|
|
|
|
www.phpdevs.com
С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105
|
Добавлено: 13/08/13 в 15:00 |
Lexikon писал: | Незнаю как это правильно сделать. |
В конфиге делаешь define нужных переменных, а далее используешь их в любом месте.
|
|
Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.
|
7
|
|
|
Люблю то, что делаю!
С нами с 22.10.06
Сообщения: 5053
Рейтинг: 4418
|
Добавлено: 13/08/13 в 20:39 |
ок спасибо.
хотел одно, а потом чет понесло , а если так, а если этак
|
|
|
|
С нами с 27.09.03
Сообщения: 5454
Рейтинг: 2506
|
Добавлено: 13/08/13 в 20:48 |
Код: | $params = array('bla', 'bla2');
define(SITE, 'www.domain.com');
class One {
function hehe() {
global $params;
echo $params[0];
echo SITE;
}
) |
|
|
|
|
С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538
|
Добавлено: 13/08/13 в 21:45 |
grozny писал: | class One {
function hehe() {
global $params; |
Это где так кодить учат? В кулинарном техникуме что ли?
Вот упрощённая до нельзя, но архитектурно грамотная схема:
configs/default.php
Код: | <?php
return array(
'foo' => 'bar'
); |
classes/config.php
Код: | <?php
class config {
static function load($config = 'configs/default.php') {
return file_exists($config) ? require $config : false;
}
} |
classes/myclass.php
Код: | <?php
class myclass {
var $config;
function __construct() {
$this->config = config::load();
}
} |
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |