Я начал создавать свою библиотеку кода с 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
может занять много времени. Скорее всего, нет решения для поиска и замены.