Я начал создавать свою библиотеку кода с PHP 4. Я использовал require_once для импорта классов. Теперь с PHP 5.3 я встретил определение пространств имен и их импорт.
Я хотел бы изменить исходные файлы, чтобы использовать importing ( use statement) вместо использования require_once . Это верное решение, я не уверен.
Думаю, это было бы легко. Определение пространства имен в верхней части файлов классов и выполнение поиска и замены на другие файлы, которые их используют (замените require_once на use ). На практике что может пойти не так?
И будет ли улучшение производительности? При включении файла очевидно, что PHP находит файл. Но при импорте пространств имен это не так очевидно. Есть ли потеря производительности при поиске пространств имен и индексация их с помощью PHP?
use и require_once – совершенно разные вещи. use вообще не выполняет импорт файлов. use просто упрощает вашу жизнь. Вместо того, чтобы писать Full\Path\To\Class каждый раз, вы можете сделать
use Full\Path\To\Class $bar = new Class();
Вы по-прежнему несете ответственность за включение правильных файлов.
Вместо того, чтобы загружать все файлы вручную, вы можете положиться на загрузку PHP-классов PHP .
Вы можете использовать Composer или Frameworks, такие как Symfony 2 или Zend2, которые обрабатывают все материалы для автозагрузки.
Миграция существующего кода на использование автозагрузки и use операторов вместо include_once может занять много времени. Скорее всего, нет решения для поиска и замены.