Я начал новый проект, где я использую Composer для обработки некоторых зависимостей, а также их автоматической загрузки.
Я сохраняю только файл composer.json в VCS, а не весь каталог поставщика, поэтому я не хочу начинать добавлять туда свой код.
Как я должен обрабатывать свой собственный код для конкретного проекта, чтобы он автоматически загружался?
Это на самом деле очень просто. Правильный подход – исключение каталога поставщиков из вашего репозитория. Ваш код должен храниться в отдельном месте (например, src).
Используйте свойство autoload, чтобы этот композитор распознал ваше пространство имен:
{ "autoload": { "psr-4": { "Acme\\": "src/" } } }
Предполагая, что у вас есть имена классов, следуя стандарту psr-4, он должен работать. Ниже приведен пример примеров имен классов и их местоположений в файловой системе:
Не забудьте определить пространство имен для каждого класса. Вот пример Acme \ Command \ HelloCommand:
<?php namespace Acme\Command; class HelloCommand { }
Не забудьте включить автозагрузчик в контроллеры PHP:
<?php require 'vendor/autoload.php';
Подробнее о стандарте PSR-4 в группе взаимодействия PHP Framework .
Обратите внимание: если вы отредактируете composer.json
, вам нужно либо запустить install, update или dump-autoload, чтобы обновить пути класса автозагрузчика.