2010-05-24 32 views
4

我有一個約60個表格報告頁面的網站。想要將其轉換爲Zend。該報告有兩個狀態:空報告和填寫數據報告。每個報告都有自己的一組輸入框和選擇下拉菜單以縮小搜索範圍。你點擊提交,它會檢索數據。這就是所有的每一頁。適用於大型報告站點的最佳Zend Framework體系結構?

我是否使用默認索引操作和getData操作創建60個控制器?我在網上閱讀的所有內容都沒有真正描述如何構建真正的網站。

回答

3

如果提取和檢索數據的方法與您在所有60個報告中提到的方法非常相似。創建60個控制器(+ PHP文件)似乎很愚蠢。

看來你試圖用默認的重寫路由器來解決這個問題。您可以添加一個路由到路由器,該路由器將自動存儲您的報告名稱,並且您可以將邏輯抽象並委派給某些報告運行人員 - 業務對象 - 事物。

$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(); 
} 

你明白了吧;希望這可以幫助!

相關問題