自定义服务提供程序的silex文件结构

时间:2015-05-14 14:30:12

标签: php namespaces silex

我正在开发一个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文件夹中。

是否有官方标准?

1 个答案:

答案 0 :(得分:1)

供应商文件夹应该只包含作曲家依赖关系,因此确定一个糟糕的设计是手动添加一些特定的类。您可以将自定义服务提供程序放入单独的git存储库,并通过composer在项目中使用它们。或者,如果这种方式太难实现,您可以将它们放入您的src文件夹中,在这种情况下,它可以是单独的文件夹服务,或者,如果您更喜欢域驱动设计,您可以将每个服务提供商放入您的域特定文件夹(即在你的情况下它可能像/src/Dashboard/DashboardService.php一样)。不确定是否存在任何通用标准。

相关问题