Где я должен хранить свой класс автозагрузки и класс маршрутизатора?
Как я понимаю, класс маршрутизатора не является частью шаблонов проектирования, поэтому я должен хранить его в папке, скажем facade
тогда где мне его хранить?
Кроме того, как насчет класса автозагрузки, он не является частью каких-либо шаблонов проектирования? где я должен держать это тогда?
где все php-фреймворки хранят эти два класса? Я пытаюсь найти их в Laravel, CakePHP, Zend Framework и т. Д., Чтобы получить некоторые идеи, где они должны храниться, но я не могу найти их в этих рамках. Есть идеи?
класс роутера,
class Router
{
...
}
класс автозагрузки,
class Autoloader
{
...
// spl_autoload_register(array($this, 'load'));
}
Торт Custom Router Class: http://book.cakephp.org/2.0/en/development/routing.html#custom-route-classes
У меня есть автозагрузка в app / Vendor / autoload.php, по сути это ссылка на app / Vendor / Composer / autoload_real.php, созданную Composer. Информация здесь: http://book.cakephp.org/2.0/en/installation/advanced-installation.html#installing-cakephp-with-composer
Если вы пишете полностью настраиваемую автозагрузку, я думаю, что вы также можете разумно создать / app / Autoload / и добавить ее здесь. Я делаю что-то похожее для событий — создание / app / Event / .. — оно следует соглашениям файловой структуры Cake и работает хорошо. Я не знаю ни одного указанного метода в Cake Docs для создания собственного класса автозагрузки.
Больше информации о загрузке классов здесь: http://book.cakephp.org/2.0/en/core-utility-libraries/app.html#loading-classes
Хорошо, давайте возьмем современный подход. Ни одна из платформ теперь не хочет автозагрузчик. Просто следуйте стандарту psr-4 (или psr-0, если хотите) для автозагрузки классов php. Всегда используйте composer для автозагрузки ваших файлов и зависимостей.
Скажем, вам нужно автоматически загрузить все ваши классы для пользовательского проекта. Все ваши классы находятся в каталоге приложений. Как ты делаешь это? В вашем файле composer.json
"autoload": {
"psr-4": {
"MyAppName\\" : "App"}
}
Теперь, если вы следуете psr-4 и вам требуется «vendor / autoload.php» в любом файле, и все ваши классы будут автоматически загружаться при необходимости.
Надеюсь, я смогу ответить на ваши вопросы. Вы можете использовать использовать classmap composer, если хотите, но не предлагаете.