Я работаю над проектом Silex, который требует, чтобы некоторые пользовательские поставщики услуг и связанные с ними классы были написаны.
Я знаю предпочтительную файловую структуру проектов silex, но не могу найти информацию о том, где пользовательские классы должны вписываться в эту структуру. Все библиотеки, поставляемые композитором, естественно, находятся в папке поставщика, куда идут пользовательские?
На данный момент (обрезается для пробела) моя структура каталогов:
. ├── composer.json ├── composer.lock ├── composer.phar ├── src │ └── Dashboard │ ├── Controller │ │ ├── indexController.php │ │ └── viewController.php │ └── Model │ └── Users.php ├── vendor │ ├── autoload.php │ ├── composer ├── views │ ├── index.twig │ ├── layout.twig │ ├── logout.twig │ └── view.twig └── web ├── css │ ├── bootstrap.min.css │ └── style.css ├── index.php ├── js │ ├── bootstrap.min.js │ ├── jquery-2.0.3.min.js │ ├── jquery-ui-1.10.3.min.js └── twiglib.php
Где в этом случае идут пользовательские поставщики услуг и пользовательские библиотеки, не входящие в состав композитора? В src под определенным пространством имен? Или в папке поставщика?
Я могу видеть, где размещать сторонних поставщиков услуг в моем приложении Silex, чем предлагается папка поставщика, но затем создание новых поставщиков услуг в Silex противоречит этому и советует не редактировать папку поставщика и не помещать ее в папку src.
Есть ли официальный стандарт?
Предполагается, что папка поставщика содержит только зависимости композитора, поэтому, безусловно, плохой дизайн позволяет добавлять некоторые конкретные классы туда вручную. Вы можете разместить своих специализированных поставщиков услуг в отдельные репозитории git и использовать их в своем проекте через композитор. Или, если это слишком сложно, вы можете поместить их в свою папку src, в этом случае это может быть либо отдельная папка Services, либо, если вы предпочитаете дизайн, управляемый доменом, вы можете поместить каждого поставщика услуг в свои папки с определенным доменом (т. е. в вашем случае это может быть как-то вроде /src/Dashboard/DashboardService.php). Не уверен, существует ли какой-либо общий стандарт.