【发布时间】:2015-10-31 20:33:15
【问题描述】:
Symfony 2.7.5
问题
我正在尝试覆盖第 3 方供应商文件中的类文件,以便我可以稍微扩展功能。此文件不是服务或控制器的一部分。
相当令人困惑(我不确定为什么会这样),我通过创建如下目录结构覆盖了FOSUserBundle 的一部分:
src
│
│
└───FOS
│
│
├───Model
│ User.php
│ Group.php
│ ...
这使我能够更改某些 FOS 用户类成员的可见性。它允许我在没有任何其他配置的情况下做到这一点。甚至没有子类设置。
目前尝试过
我读过this,但它只谈论基本资源。
我也读过this,但它似乎只适用于控制器或Resources 文件夹中的任何东西。
我尝试设置一个子包,类似于上面的链接,但无济于事。
我想不出在这种情况下成功使用继承来完成我需要做的事情的方法。因为有问题的文件没有在供应商捆绑包本身之外被引用。
问题(已编辑)
有没有一种方法可以扩展/覆盖位于这样的目录结构中的捆绑类文件?我不需要接触太多的捆绑包,但我真的需要得到这个文件。这是APYDataGridBundle的摘录。
vendor
│
│
└───APY
│
│
├───datagrid-bundle
│
│
├───Grid
|
| .. grid.php <-- this file
【问题讨论】:
-
如果您告诉我们哪个类在哪个捆绑包中,这可能会有所帮助
-
我试图覆盖 APYDataGridBundle 中的
grid.php类 -
虽然问题已经解决了,但我还是在这里补充一下——你感兴趣的类被定义为
services.xml中带有参数标签的服务。您可以只为参数grid.class覆盖类的位置,仅此而已。 -
啊,好的,是的,这是一个很好的观点。我可能需要覆盖更多内容,因此类映射方式(在这种情况下)可能更灵活。