2011-01-19 2 views
0

Я хочу построить CMS на основе Zend Framework для моих потребностей, которая имеет администратора модуля с аутентификацией и другими модулями (страницы, пользователи, новости), которые могут быть использованы в качестве плагина модулей основанные на потребностях в применении.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

Посмотрите Front Controller плагинов, они могут дать вам больше гибкости ...

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

 Смежные вопросы

  • Нет связанных вопросов^_^