如何解决MVC优化问题框架Zend
| 只是一个快速的逻辑问题。 我有2个Zend控制器,即商家和帐户。商家控制器具有一个称为editAction的操作。我的问题是,是否可以在不复制代码的情况下在Account中执行相同的操作。我设法为视图创建了一个包含文件,但我想拥有一种管理代码的最佳方法。我目前有一个Helper类的想法,并向这两个Controller都调用该Helper类。但是我知道有人会比这更好的解决方案。请帮我。 谢谢解决方法
最简单的解决方案是将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\';
}
请记住,这种设计意味着editAction()中的代码将同时适用于Accounts和Merchant。
, 我认为最好的做法是将大多数逻辑放入模型中并使控制器保持精简。您的模型可以扩展您自己的类,该类中可以进行通用操作。
您也可以编写自己的类,它不一定是一个帮助器,并在控制器中使用它来保存实体:
$saver = new My_Editing_Class();
$saver->edit(\"account\",$this->getRequest()->getPost()); // Editing \"account\" with the POST data.
然后,您可以在\“ My_Editing_Class \”中进行魔术操作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。