Является ли автозагрузчик Symfony достаточно умным, чтобы загружать только необходимые файлы? - PullRequest
0 голосов
/ 26 февраля 2010

Я знаю, что Symfony может автоматически загружать файлы с spl_auto_register, но достаточно ли он умен?

Если для загрузки требуется только a.php , будет ли загружаться также b.php ?

Ответы [ 2 ]

3 голосов
/ 09 марта 2010

Автозагрузчик работает, сохраняя массив пар ключ-значение, так что

classname => /full/path/to/class

В symfony 1.3 / 1.4 создаются два файла кэша. Один для базовых классов, созданный sfCoreAutoload и хранящийся в / cache / project.autoload . Для классов, которые автоматически загружаются из каталога вашего проекта, массив пар ключ-значение хранится в / cache / _app _ / _ env_ / config / config_autoload.yml.php . Этот файл создается обработчиком конфигурации sfAutoloadConfigHandler.

Некоторые полезные моменты для запоминания:

  • Не все классы в вашем проекте загружаются автоматически, загружаемые файлы указываются в файле autoload.yml (в sf_lib_dir / config / config ). Вы можете создать свой собственный autoload.yml и поместить его в каталог config проекта (или даже в каталог config приложения).
  • При запуске в среде dev, если класс не может быть автоматически загружен, то Symfony перестроит кэш автозагрузки, надеясь найти файл, который, по его предположению, является новым. В некоторых случаях это может замедлить работу вашего приложения, поэтому используйте sfAutoloadAgain :: unregister ().
0 голосов
/ 26 февраля 2010

Автозагрузчик загружает только файлы, необходимые для создания экземпляра запрошенного класса.

...