Спасибо за внимание, это вопрос организации, я работаю с PHP и GIT для контроля версий. Я использую Netbeans IDE для программирования, GIT интегрирован (хотя я все еще новичок).
Обычно я следую подходу, который Symfony2 определяет для организации файлов проекта, но я использую свою собственную инфраструктуру для своих проектов.
(Основной) вопрос: Любой компонент или часть кода, которая имеет собственный контроль версий, должна находиться под /vendor/
каталог?
Например:
У меня есть файлы проекта в src\Acme\ProjectX\
, также пакет утилит, которые используют все мои проекты: src\Acme\Util\
и это тоже под контролем версий (GIT).
а теперь давайте вспомним основной скелет проекта, основанного на Symfony или подобном:
/app (application related elements)
/src (source code of the project)
/vendor (third party libraries)
/web (front end controller, the web directory, assets resources etc...)
Итак, должен ли ‘Acme \ Util’ быть включен в каталог поставщиков? И необходимо ли использовать composer для объявления зависимостей?
Кроме того, в пакете Utility есть много классов, но лишь немногие используются в проектах. Я должен удалить те, которые не используются проектом.
Подводя итог, было бы неплохо, если бы кто-то мог поделиться своими знаниями, чтобы помочь мне представить такой сценарий.
Я надеюсь, что мог бы объяснить …
Заранее спасибо!
Хорошей практикой является разделение внешних зависимостей и кода приложения. Если вы используете Composer Вы можете изменить это на что-то другое.
Неиспользуемые классы не должны иметь значения, если они не загружаются. Они просто займут немного дополнительного дискового пространства.
Это может быть хорошей идеей отделить Сервисный пакет в несколько пакетов, если вы часто используете только небольшую его часть.
Это не необходимо использовать менеджер зависимостей, но он, безусловно, помогает. Необходимость устанавливать, настраивать и поддерживать все вручную (особенно с множеством зависимостей и зависимостей) было бы ужасным.
Других решений пока нет …