Zend framework2 扩展第三方zend framework 2模块

Zend framework2 扩展第三方zend framework 2模块,zend-framework2,zfcuser,Zend Framework2,Zfcuser,我在供应商中有一些第三方模块,它们是zfcuser和hybridauth。我在控制器和视图类中添加了一些代码。当我更新composer软件包时,所有软件包都会更新,并且我的所有手动代码都会随收到的新代码一起更改/删除。它的解决方案是什么?您不应该更改第三方供应商代码。这将使您无法更新模块,因为您已经体验过 如果您在供应商代码中发现一个bug,它也会影响到其他人,那么最好创建一个Pull请求,将您的更改合并到主存储库中。 同时,您可以将github repo分叉到您自己的github帐户,进行更改

我在供应商中有一些第三方模块,它们是zfcuser和hybridauth。我在控制器和视图类中添加了一些代码。当我更新composer软件包时,所有软件包都会更新,并且我的所有手动代码都会随收到的新代码一起更改/删除。它的解决方案是什么?

您不应该更改第三方供应商代码。这将使您无法更新模块,因为您已经体验过

如果您在供应商代码中发现一个bug,它也会影响到其他人,那么最好创建一个Pull请求,将您的更改合并到主存储库中。 同时,您可以将github repo分叉到您自己的github帐户,进行更改并在composer配置中引用分叉版本

如果要向模块添加自定义代码,最好创建自己的模块(即MyUser),并覆盖控制器和视图以反映您的需要。 请参见如何覆盖内置视图文件。只需确保您的模块在ZfcUser模块之后加载。模板解析程序需要首先检查模块中的模板

要覆盖控制器,您必须覆盖控制器pluginmanager配置,因此pluginmanager将检索您的自定义控制器,而不是默认控制器。 将其放入
module.config.php
中。或者,您可以使用
模块
类中的
getControllerConfig
方法

return array(
    'controllers' => array(
        'invokables' => array(
            'zfcuser' => 'MyNamespace\Controller\UserController',
        ),
    ),
);

同样的想法也适用于服务。只需覆盖配置中的别名,并确保您的模块在ZfcUser模块之后加载。

我已经看到了链接。Bram如果我想更改/覆盖/扩展/继承控制器,可能的方法是什么。这不是我想要的。我想扩展,而不是更改默认值。您可以继承默认值,但也必须在controllerManager中注册它,如我的回答所示
MyNamespace\Controller\UserController扩展了ZfcUser\Controller\UserController