【问题标题】:silex file structure for custom service providers自定义服务提供者的silex文件结构
【发布时间】:2015-05-14 14:30:12
【问题描述】:

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

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

目前(缩小空间)我的目录结构如下:

.
├── 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 看到,建议使用 vendor 文件夹,但随后 Creating new service providers in Silex 与此相矛盾,并建议不要编辑 vendor 文件夹并将其放入 src 文件夹中。

有官方标准吗?

【问题讨论】:

    标签: php namespaces silex


    【解决方案1】:

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

    【讨论】:

    • 谢谢,我可以理解为大量服务提供商创建 git 存储库,但在某些情况下这可能有点矫枉过正。
    猜你喜欢
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    • 2014-12-01
    • 2013-11-01
    • 2014-10-22
    • 1970-01-01
    • 2020-01-19
    • 2015-09-12
    相关资源
    最近更新 更多