MVC优化问题框架Zend

Kar*_*hik 1 php model-view-controller zend-framework codeigniter

只是一个快速的逻辑问题.

我有2个Zend控制器,即商家和账户.Merchant Controller有一个名为editAction的动作.我的问题是,是否可以在帐户中执行相同的操作而不重复代码.我设法为视图创建了一个包含文件,但我希望有一个最好的方法来管理我的代码.我目前有一个Helper类的想法,并为这两个控制器调用该帮助器类.但我知道有人会得到比这更好的解决方案.请帮我.

谢谢

Kri*_* K. 5

最简单的解决方案是将Zend_Controller_Action扩展到您自己的基类中,并将editAction()放入其中.例如,假设您有名为"Account"和"Merchant"的模型类:

abstract class My_Controller_Action extends Zend_Controller_Action
{
    protected $_modelName;

    public function editAction()
    {
        $model = new $this->_modelName();
        // Do your editing here.
    }
}

class AccountController extends My_Controller_Action
{
    protected $_modelName = 'Account';
}

class MerchantController extends My_Controller_Action
{
    protected $_modelName = 'Merchant';
}
Run Code Online (Sandbox Code Playgroud)

请记住,此设计意味着editAction()中的代码适用于Accounts和Merchants.