适用于大型报告网站的最佳Zend Framework架构?

时间:2010-05-24 03:50:42

标签: zend-framework

我有一个大约60个表格报告页面的网站。想将其转换为Zend。该报告有两个状态:空报告和填写数据报告。每个报告都有自己的一组输入框,并选择下拉菜单以缩小搜索范围。您单击提交并检索数据。那就是每一页都有。

我是否创建了60个控制器,每个控制器都有默认索引操作和getData操作?我在网上看到的所有内容并没有真正描述如何构建一个真实的网站。

1 个答案:

答案 0 :(得分:3)

如果您在所有60个报告中提及,那么获取和检索数据的方法非常相似。创建60个控制器(+ PHP文件)似乎很愚蠢。

您似乎正在尝试使用默认重写路由器来解决此问题。您可以向路由器添加一条路由,该路由将自动存储您的报告名称,您可以将逻辑抽象并委托给某个report-runner-business-object-thingy。

$router = $ctrl->getRouter(); // returns a rewrite router by default
$router->addRoute(
    'reports',
    new Zend_Controller_Router_Route('reports/:report_name/:action',
                                     array('controller' => 'reports',
                                           'action' => 'view'))
);

然后在你的控制器中出现类似的事情......

public function viewAction() {
  $report = $this->getRequest()->getParam("report_name");
  // ... check to see if report name is valid
  // ... stuff to set up for viewing report...
}

public function runAction() {
  $report = $this->getRequest()->getParam("report_name");
  // ... check to see if report name is valid

  // Go ahead and pass the array of request params, as your report might need them
  $reportRunner = new CustomReportRunner( $report, $this->getRequest()->getParams() );
  $reportRunner->run();
}

你明白了;希望这有帮助!