【发布时间】:2014-05-20 21:49:40
【问题描述】:
我有一个捆绑包,我想更改一些代码以满足我的需要。
在供应商存储库中进行更改是否正常,或者我必须这样做?
【问题讨论】:
我有一个捆绑包,我想更改一些代码以满足我的需要。
在供应商存储库中进行更改是否正常,或者我必须这样做?
【问题讨论】:
通常,您可以通过复制 app/ 目录中的文件来“覆盖”代码。
例如,我有一个为 FosUserBundle 编辑的文件,该文件位于
/app/Resources/FOSUserBundle/views/layout.html.twig
我不知道这是否适用于类和东西。
【讨论】:
不,您应该避免对供应商进行更改,因为下次尝试更新这些捆绑包时,您可能会丢失更改或发生冲突。此外,您的供应商将(或至少应该)被您的版本控制系统忽略,因此这些更改不会在您部署到新环境时得到延续。
捆绑的想法是让它自给自足并为自己的目的服务。如果捆绑包有问题,那么您应该报告错误,或者进行必要的更改,提出拉取请求,如果它被合并,您可以通过 composer 更新以获得最新的更改。
如果您只是想扩展或覆盖功能,那么您应该按照 Cookbook 中的指南(下面的链接)在您的应用中执行此操作。
http://symfony.com/doc/current/cookbook/bundles/inheritance.html
http://symfony.com/doc/current/cookbook/bundles/override.html
【讨论】: