扩展第三方zend框架2模块

时间:2014-03-29 05:50:11

标签: zend-framework2 zfcuser

我在供应商中有一些第三方模块,它们是zfcuser和hybridauth。我在Controller和View类中添加了一些代码。当我更新作曲家包并更新所有包时,我的所有手动代码都会被收到的新代码更改/删除。可能是什么解决方案?

1 个答案:

答案 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模块之后加载模块。