我正在开发一个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下的特定命名空间?或者在供应商文件夹中?
我可以从Where to put 3rd party service providers in my Silex app看到建议的供应商文件夹,但然后是Creating new service providers in Silex,与此相矛盾,建议不要编辑供应商文件夹并将其放在src文件夹中。
是否有官方标准?
答案 0 :(得分:1)
供应商文件夹应该只包含作曲家依赖关系,因此确定一个糟糕的设计是手动添加一些特定的类。您可以将自定义服务提供程序放入单独的git存储库,并通过composer在项目中使用它们。或者,如果这种方式太难实现,您可以将它们放入您的src文件夹中,在这种情况下,它可以是单独的文件夹服务,或者,如果您更喜欢域驱动设计,您可以将每个服务提供商放入您的域特定文件夹(即在你的情况下它可能像/src/Dashboard/DashboardService.php一样)。不确定是否存在任何通用标准。