Экосистема: PHP 7.1, самописный проект, я основной разработчик, программист С/С++
Есть проект, имеющий банальную структуру:
Проект работает, все в порядке. Однако есть проблема - количество файлов растет. Я подключаю каждый новый файл через require_once(...)
и их уже накопилось под сотню. Меня это не беспокоило
На днях встала задача интегрировать в мой проект разработки прошлых лет, который оформлены в виде иерархии классов, коих порядка 50+, каждый класс в своем файлике, в своем namespace, разделены по подпапкам, все очень логично и понятно
Я в лоб сделал find . -name "*.php"
и прописал все в requre_once()
, как обычно делал. Проверил, начали сыпаться трейсы PHP по поводу того, что какому-то классу нужен другой класс, от которого этот наследуется. Путем магических перестановок порядка подключения я добился того, что все заработало
Но я считаю такой подход не научным, не красивым
Вопрос:
Интересует два момента: быстродействие подключения/выполнения кода и удобство/безопасность реализации
Заранее оговорюсь - пожалуйста, не надо ссылаться на реализации этого механизма в популярных фреймворках. Я уверен, что они великолепны и замечательны, но интересует именно ванильный голый PHP 7 со стандартными библиотеками, подключаемыми через .so
Попробуйте автозагрузку классов: http://php.net/manual/ru/language.oop5.autoload.php Вот пример:
<?php
spl_autoload_register(function ($class_name) {
include $class_name . '.php';
});
$obj = new MyClass1();
$obj2 = new MyClass2();
?>
Т.е. вы регистрируете функцию которая будет загружать ваши файлы с классами. В данном примере при выполнении new MyClass1() будет автоматически выполнен include MyClass1.php. Аналогично для MyClass2() будет include MyClass2.php
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
У меня на сервере установлена CentOS и панель CWPТам крутится 1 сайт
Как можно сгенерировать на php qrcode биткоин по его адресу, например для этого? 15v3Wm3sDUht2VtgtLyvUxdcTw6pAwGaA5?
Столкнулся с проблемой, необходимо вывести несколько раз один и тот же элемент массива, один раз получается вывести Red
Пробовал вставить php-код через HTML-box в Visual Composer, не срабатывает