我有一些第三方模块在供应商,这是zfcuser和杂交瘤。我在Controller和View类中添加了一些代码。当我更新composer包和所有包时,所有的手动代码都会随着它收到的新代码而被修改/删除。它的解决办法是什么?
发布于 2014-03-29 09:16:46
您不应该更改第三方供应商代码。它将使您无法更新您已经体验过的模块。
如果您在供应商代码中发现了一个bug (这也会影响到其他代码),那么最好创建一个拉请求,以便将您的更改合并到主存储库中。同时,您可以将github分叉到您自己的github帐户,进行更改,并在composer配置中引用您的分叉版本。
如果要向模块添加自定义代码,最佳做法是创建自己的模块(即MyUser),并覆盖控制器和视图以反映您的需求。请参见这里如何覆盖内置的视图文件。只需确保模块在ZfcUser模块之后加载即可。模板解析器需要首先检查模块中的模板。
若要覆盖控制器,必须覆盖控制器插件管理器配置,因此pluginmanager将检索自定义控制器而不是默认控制器。把这个放到你的module.config.php里。或者,您可以在getControllerConfig类中使用Module方法。
return array(
'controllers' => array(
'invokables' => array(
'zfcuser' => 'MyNamespace\Controller\UserController',
),
),
);同样的想法也适用于服务。只需在配置中覆盖别名,并确保您的模块在ZfcUser模块之后加载。
https://stackoverflow.com/questions/22727612
复制相似问题