【问题标题】:symfony2: editing bundles in the vendor repositorysymfony2:在供应商存储库中编辑捆绑包
【发布时间】:2014-05-20 21:49:40
【问题描述】:

我有一个捆绑包,我想更改一些代码以满足我的需要。

在供应商存储库中进行更改是否正常,或者我必须这样做?

【问题讨论】:

    标签: symfony bundle vendor


    【解决方案1】:

    通常,您可以通过复制 app/ 目录中的文件来“覆盖”代码。

    例如,我有一个为 FosUserBundle 编辑的文件,该文件位于

    /app/Resources/FOSUserBundle/views/layout.html.twig

    我不知道这是否适用于类和东西。

    【讨论】:

    • 感谢您的回复,但我想按照您说的编辑类和实体。
    【解决方案2】:

    不,您应该避免对供应商进行更改,因为下次尝试更新这些捆绑包时,您可能会丢失更改或发生冲突。此外,您的供应商将(或至少应该)被您的版本控制系统忽略,因此这些更改不会在您部署到新环境时得到延续。

    捆绑的想法是让它自给自足并为自己的目的服务。如果捆绑包有问题,那么您应该报告错误,或者进行必要的更改,提出拉取请求,如果它被合并,您可以通过 composer 更新以获得最新的更改。

    如果您只是想扩展或覆盖功能,那么您应该按照 Cookbook 中的指南(下面的链接)在您的应用中执行此操作。

    http://symfony.com/doc/current/cookbook/bundles/inheritance.html

    http://symfony.com/doc/current/cookbook/bundles/override.html

    【讨论】:

    • 感谢您的解释。由于教义限制(教义如何运作),覆盖可能性不包括实体和实体映射。
    • 这取决于捆绑包。一些包提供映射的超类,允许您扩展实体并提供映射,但并非所有包都这样做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-12
    相关资源
    最近更新 更多