【发布时间】: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