2010-05-24 2 views
4

약 60 개의 표 형식 보고서 페이지로 구성된 사이트가 있습니다. Zend로 변환하고 싶습니다. 보고서에는 빈 보고서와 데이터 보고서로 채워진 두 가지 상태가 있습니다. 각 보고서에는 자체 입력 상자 세트와 선택 드롭 다운이있어 검색 범위를 좁 힙니다. 제출을 클릭하면 데이터가 검색됩니다. 각각의 페이지가 모두 그렇습니다.대형보고 사이트를위한 최고의 Zend Framework 아키텍처?

기본 색인 조치 및 getData 조치로 각각 60 개의 제어기를 작성합니까? 온라인으로 읽은 것만으로는 실제 사이트를 구성하는 방법을 실제로 설명하지 않습니다.

답변

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

; 이 도움이되기를 바랍니다!