Symfony 4 捆绑包工作
Posted
技术标签:
【中文标题】Symfony 4 捆绑包工作【英文标题】:Symfony 4 bundles working 【发布时间】:2018-05-15 14:18:04 【问题描述】:如何在 Symfony 4 上创建库包?
在 Symfony 3 中我使用这个命令:php bin/console generate:bundle
但在新版本中不起作用。
是否可以使用像 Symfony 3 这样的包,例如,如果不可能,我有博客包和电报机器人包如何在 Symfony 4 中模拟?
【问题讨论】:
symfony.com/blog/symfony-4-a-new-way-to-develop-applications @StephanVierkant 我在这里找不到答案 不,因为 Symfony 4 不能这样工作。阅读medium.com/@fabpot/fabien-potencier-4574622d6a7e 这个问题是相关的,因此不需要反对票。目前还没有关于创建 Symfony 4 应用程序的官方文档,除了来自 Symfony 2 / 3 的几乎复制粘贴,另一方面,这不太相关。 @forsberg 谢谢你的回答 【参考方案1】:SensioGeneratorBundle 已被 Symfony Maker Bundle 取代 - 请参阅 https://symfony.com/blog/introducing-the-symfony-maker-bundle 了解更多信息。
【讨论】:
请告诉我命令之类的示例,我在这里找不到答案 @A.Seddighi 如果您无法理解链接,那么现在最好坚持使用 S3.4。在撰写本文时,Symfony 4 昨天刚刚发布,需要一些阅读才能理解。我还应该指出,您很可能不想创建捆绑包。 @Cerad 那么你现在如何让你的应用在 Symfony 4 中解耦呢? SoC(Seperation of Concerns)是主要的 Symfony 2 和 3 范例,该框架非常有助于保持这条规则的正确性。 @forsberg Symfony 2 首次发布几年后,创建者发布了一个所谓的Best Practices 文档,其中不鼓励使用特定于应用程序的包。有时我发现创建特定于应用程序的捆绑包仍然有意义。通常当捆绑包是真正独立的并且需要一些额外的配置时。但要开始使用,通常最好遵循推荐的做法。 @Cerad 是的,我知道最佳实践。 “劝阻”部分适用于不能在其他应用程序中“按原样”使用的捆绑包(请参阅symfony.com/doc/current/best_practices/…)。但是,我确实创建了可重复使用的捆绑包。关于脱钩的问题仍未得到解答。【参考方案2】:Fabien Potencier 在 Symfony 4 最佳实践博文中说“无捆绑应用程序只是 Symfony 4 的最佳实践变化之一”。
你不能生成新的包,你可以为你的整个项目使用默认的“App”包。
您可以查看此网址以获取有关主题的博客文章 Symfony 4: Monolith vs Micro
【讨论】:
我想为共享代码等生成库包。像学说或guzzleHttp 我很抱歉我的回答太晚了,我希望你在发表评论之前已经解决了你的问题。我希望我理解正确。如果你想为所有 symfony 4 项目创建一个包并且你想发布 flex 包管理器,请阅读下面的最佳实践页面。 Best Practices for Reusable Bundles【参考方案3】:尝试安装 GeneratorBundle:more info
composer require sensio/generator-bundle
然后你可以像这样生成你的Bundle:more info
php bin/console generate:bundle
【讨论】:
【参考方案4】:首先创建一个src/Acme/TestBundle/
目录并添加一个名为AcmeTestBundle.php
的新文件:
// src/Acme/TestBundle/AcmeTestBundle.php
namespace App\Acme\TestBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class AcmeTestBundle extends Bundle
在 config/bundles.php 中添加这一行后:
App\Acme\TestBundle\AcmeTestBundle::class => ['all' => true],
【讨论】:
【参考方案5】:自 Symofony 2.x 以来,创建包的逻辑没有改变。但是现在包只是包,用于可重用的功能。 如果您想开发自己的捆绑包,只需关注此帖子Symfony2 - creating own vendor bundle - project and git strategy 由于 4.x 不再支持 Symfony Generate Bundle,您必须关注其他帖子:Best Practices for Reusable Bundles
【讨论】:
以上是关于Symfony 4 捆绑包工作的主要内容,如果未能解决你的问题,请参考以下文章