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

silex file structure for custom service providers

我正在从事 Silex 项目,该项目需要编写一些自定义服务提供商及其相关 类。

我知道 silex 项目的首选文件结构,但无法在任何地方找到有关自定义 类 应该适合此结构的位置的信息。所有 composer 提供的库自然都在 vendor 文件夹中,自定义的去哪里了?

目前(针对 space 进行了缩减)我的目录结构如下:

.
├── 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

自定义服务提供商和自定义非作曲家包含的库在哪里?在特定名称space下的src?或者在供应商文件夹中?

我从 Where to put 3rd party service providers in my Silex app than the vendor folder is suggested, but then Creating new service providers in Silex 可以看出,与此相矛盾,建议不要编辑 vendor 文件夹并将其放入 src 文件夹。

有官方标准吗?

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