ZF2 - 控制器中的功能重复

时间:2015-11-26 09:11:33

标签: zend-framework2

我在另一个模块中的两个控制器中具有相同的功能。 我该怎么办才能不重复相同的代码? 例 LoginController.php和UserController.php

   public function getSessionStorage()
   {
        if (! $this->storage) {
            $this->storage = $this->getServiceLocator()
                                  ->get('Users\Model\MyAuthStorage');
        }

        return $this->storage;
    }

感谢您的回答

1 个答案:

答案 0 :(得分:0)

我建议您使用依赖注入而不是建议的基本控制器。

由于zf2中的ControllerManager是ServiceManager的专用版本,因此非常简单。这意味着您可以将配置中的invokable替换为控制器的工厂,就像服务管理器的任何其他情况一样,并从那里注入您的依赖项。

如果您需要示例,请查看此回购https://github.com/GeeH/bad-puppyexcercise/*分支之间使用github比较功能。