我在供应商中有一些第三方模块,它们是zfcuser和hybridauth。我在Controller和View类中添加了一些代码。当我更新作曲家包并更新所有包时,我的所有手动代码都会被收到的新代码更改/删除。可能是什么解决方案?
答案 0 :(得分:1)
您绝不应该更改第三方供应商代码。这将使您无法按照自己的经验更新模块。
如果您发现供应商代码中的错误也会影响其他人,那么最好创建一个Pull Request来将您的更改合并到主存储库中。 在此期间,您可以将github repo分叉到您自己的github帐户,进行更改并在composer配置中引用您的分叉版本。
如果要向模块添加自定义代码,最佳做法是创建自己的模块(即MyUser)并覆盖控制器和视图以反映您的需求。 请参阅here如何覆盖内置视图文件。只需确保您的模块在ZfcUser模块之后加载。模板解析器需要首先检查模块中的模板。
要覆盖控制器,您必须覆盖控制器pluginmanager配置,因此pluginManager会检索您的自定义控制器而不是默认控制器。
把它放在你的module.config.php
中。或者,您可以使用getControllerConfig
类中的Module
方法。
return array(
'controllers' => array(
'invokables' => array(
'zfcuser' => 'MyNamespace\Controller\UserController',
),
),
);
同样的想法适用于服务。只需覆盖配置中的别名,并确保在ZfcUser模块之后加载模块。