如何避免使用Symfony 1.4的大型操作类

时间:2011-04-15 09:35:03

标签: php model-view-controller symfony1

在一分钟内处理一个项目,并且不觉得代码结构良好/解耦/可维护。

我认为主要问题是使用一个动作类来完成我系统工作的主要任务。但有哪些替代方案?我的其他模块非常基础和独立。

如果模型包含我在控制器中的更多业务逻辑(在有问题的操作类的模型文件或多或少为空时,表模型文件也没有太多)。

我正在阅读http://www.slideshare.net/nperriault/30-symfony-best-practices,其中有一些优点,其中一个是避免使用大型操作类,但并没有真正告诉你应该怎么做。

我应该分解我的动作类并在/ apps / frontend / module / myModule / lib /中包含不同的文件。 ?

问题是我有另一个动作类必须重用上面提到的类中的一些功能......我真的不想让重复的代码变得有点混乱。

一些通用指针会很棒,谢谢

2 个答案:

答案 0 :(得分:1)

您可以将所有操作保留在一个文件中,也可以将每个操作放在自己的文件中。

所以,

class mymoduleActions extends sfActions
{
  public function executeIndex($request)
  {
    // ...
  }

  public function executeList($request)
  {
    // ...
  }
}

class indexAction extends sfAction
{
  public function execute($request)
  {
    // ...
  }
}

class listAction extends sfAction
{
  public function execute($request)
  {
    // ...
  }
}

全是in the documentation。然后,您应该将可重用代码放在两个操作类都可以扩展的父XYZAction类中。

答案 1 :(得分:0)

您始终可以将代码放入apps/frontend/lib。创建具有可以重复使用的代码的类,您可以从操作中调用方法以避免重复