FanatPHP, С ООП я уже малость знаком. По карайней мере знаю что такое класс и с чем его едят. Просто тут я вижу одни и те же грабли, что и в процедурном.
Есть глобальный конфиг. Но его и в класс, и в процедурную функцию надо передавать через аргументы инклюды итп. В ООП еще можно через неймспейсы, псевдонимы, наследование и еще бог знает как.
Но этот конфиг глобальный. Он должен быть доступен всем и вся без передачи его в функции и классы.
Андрей Ежгуров,
Не люблю видеоуроки. Чтение мне быстрее усваивается.
Вопрос не про автозагрузку. А про излишние инклюды.
Мне интересно как решается проблема видимости переменных. Классы же полностью изолированы и не видят никаких внешних переменных. Но возникает вопрос: как наиболее оптимально использовать единый для всего сайта конфиг?
Передавать его в качестве аргументов? Но тогда получится куча классов в которых используется 100500 аргументов.
$class = new class1($config, $arg1, $arg2, $arg3...$arg100500);
Можно еще еще через метод set но тогда объявление каждого класса придется дополнять второй строчкой кода.
$new1 = new class1();
$new1->setConfig($config);
$new2 = new class2();
$new2->setConfig($config);
Но проблема в том, что этот конфиг един для абсолютно всего. И хотелось бы создать конструкцию которая позволит не отвлекаться каждый раз на получение данных из config.php.
Можно как я сказал выше, сделать инклюд конфига внутри каждого класса и больше никогда не думать он как туда передается. Но тогда этот инклюд будет выполняться при объявлении каждого нового класса. А это излишнее обращение к жесткому диску.
А есть ли какие либо другие способы подгрузить единый для всего и вся конфиг?
поговаривают, что в кредитных картах ставят очень мощный чип, чтобы он перебивал все другие и терминал выбирал его даже если перед ним несколько других карт.
Банкам очень выгодно когда ты тратишь кредитные средства, поэтому они делают все чтобы с этой карты деньги снимались в первую очередь
Есть глобальный конфиг. Но его и в класс, и в процедурную функцию надо передавать через аргументы инклюды итп. В ООП еще можно через неймспейсы, псевдонимы, наследование и еще бог знает как.
Но этот конфиг глобальный. Он должен быть доступен всем и вся без передачи его в функции и классы.