2011-01-19 76 views
0

我想基於Zend框架滿足我的需求,其具有管理模塊與身份認證等模塊,來構建一個CMS(頁面,用戶,新聞),它可以作爲插件模塊基於應用需求。Zend框架管理模塊和其他模塊

我希望每個模塊都具有特定的前端和後端代碼,以便可以像訪問它們一樣進行訪問。 http://localhost/mycms/pages/view/5通過調用頁面控制器,視圖操作來查看從頁面模塊的某一頁。每個插件的後端需要綁定到管理員並需要身份驗證,可以像http://localhost/mycms/admin/pages/add那樣訪問它。

的問題是,我找到了解決方案涉及除默認路由和編寫自定義路由對於像插件模塊內的每個控制器動作:

$router->removeDefaultRoutes(); 

    $route = new Zend_Controller_Router_Route_Static(
     'admin/pages/add', 
     array(
     'module' => 'pages', 
     'controller' => 'Pages',   
     'action' => 'add' 
    ) 
); 

    $router->addRoute('pages_pages_add', $route); 

    $route = new Zend_Controller_Router_Route_Regex(
     'pages/view/(\d+)', 
     array(
     'module' => 'pages', 
     'controller' => 'Pages',   
     'action' => 'view' 
    ), 
     array(
     '1' => 'page_id' 
    ) 
); 

    $router->addRoute('pages_pages_view', $route); 

你有什麼想法,我怎樣才能避免這種自定義路由?

回答

0

看一看前端控制器插件,他們可以給你更多的靈活性...

http://framework.zend.com/manual/en/zend.controller.plugins.html

class Controller_Plugin_Foo extends Zend_Controller_Plugin_Abstract 
{ 
    public function preDispatch(Zend_Controller_Request_Abstract $request) 
    { 
     $frontController = Zend_Controller_Front::getInstance(); 
     ... 
    } 
}