【问题标题】:Symfony own vendor bundle dependenciesSymfony 自己的供应商捆绑包依赖项
【发布时间】:2016-01-19 14:13:41
【问题描述】:

因此,我创建了自己的供应商捆绑包,它基本上包含我们所有使用 composer 的应用程序都需要的“内部”框架。

我已遵循此指南:Symfony2 - creating own vendor bundle - project and git strategy

但我的“内部”框架包依赖于另一个包,并且该包需要注册到应用内核中。

以下是我开发的每个应用程序都需要的可重用框架包。但是app framework bundle需要注册Predis、redis-bundle等3rd party bundle。

无论如何我可以注册这些包,这样需要这个供应商包的应用程序就不必在它自己的 AppKernel.php 文件中包含所有框架依赖包?也许它有自己的 AppKernel 文件来“添加”依赖项?

MyCompany/
├─ AppFrameworkBundle.php
├─ Controller/
├─ README.md
├─ LICENSE
├─ Resources/
│   ├─ config/
│   │  └─ config.yml <- this and other 3rd party bundle configuration
│   ├─ doc/
│   │  └─ index.rst
│   ├─ translations/
│   ├─ views/
│   └─ public/
└─ Tests/

如果解释有点模糊,请见谅。

亲切的问候

【问题讨论】:

  • 即使 Symfony 的 bundles 都注册在 AppKernel 中了,何必让你的生活复杂化,就让它保持原样吧。
  • 简短回答是否定的。您需要在 AppKernel 中包含您的应用所需的所有依赖项。您可以制作自己的“模板”应用程序来启动包含必要捆绑包的新应用程序。最终得到:composer create-project kal/my-application-framework
  • 模板一是要走的路。只是想知道像 FOSUserBundles 这样的捆绑软件是如何摆脱它的。你认为他们坚持只使用 symfony 组件并且不需要任何第三方捆绑包吗?
  • 您可以在捆绑包根文件夹的composer.json 中查看。
  • 具有此类依赖关系的包的示例:sonata-project.org/bundles/admin/2-3/doc/getting_started/… 没有魔法,只是可重用包自述文件中的installation 章节。

标签: php symfony bundle symfony-2.3


【解决方案1】:

答案是肯定的。您不会在 Symfony Core 中找到答案,但 Symfony Bundle Dependencies 包正好满足了这一需求。

在我所有的项目中,我都在使用它,不是因为让我更酷,而是因为我想真正尊重我所有包的完整性,没有这个库,我的包根本没有完整性(听起来像Symfony 在 2.0 中使用 deps 文件,而不是在 composer 之上)

ATM,别无选择。

【讨论】:

    猜你喜欢
    • 2015-10-04
    • 2012-10-23
    • 2012-10-03
    • 1970-01-01
    • 2015-03-12
    • 2012-05-05
    • 2019-08-19
    • 2018-05-04
    • 1970-01-01
    相关资源
    最近更新 更多