Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

gremio10

Problema com Zend Router

Recommended Posts

Fala galera, eu to com um problema ^^

 

seguinte...

 

eu tenho dois módulos, chamados default( obvio ) e o outro painel.

 

Bom, no painel, eu tenho um controller chamado UserView, com isso tenho uma view chamada user-view, que mostra resultados para o usuário. Então, eu coloquei um router, para que eu pudesse traduzir as views e as controllers, funcionava perfeitamente, mas ai eu tive de mudar ela de lugar, ou seja, coloquei ela no default, ai parou de funcionar...

 

minhas pastas:

 

- application
 - configs
 - modules
   - default
     - controllers
     - models
     - views
     * Bootstrap.php #4
   - painel
     - controllers
     - models
     - views
     * Bootstrap.php #3
   * Bootstrap.php #2
 * Bootstrap.php #1
 - docs
 - library
 - public
 * .htaccess
 * application.ini

 

 

Conteúdo do Bootstrap.php #1

 

<?php

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
   protected function _initHelpers()
   {
       $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
       $viewRenderer->initView();

       $viewRenderer->view->addHelperPath( "Zend/View/Helper/", "Zend_View_Helper" );
   }

   protected function _initAutoLoader() 
   {
       Zend_Loader_Autoloader::getInstance ()->setFallbackAutoloader ( true );

       $modelLoader = new Zend_Application_Module_Autoloader ( array (
                       'namespace' => '', 
                       'basePath' => APPLICATION_PATH 
       ) );

       return $modelLoader;
   }

}

 

Conteúdo do Bootstrap.php #2

 

<?php

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{

}

 

Conteúdo do Bootstrap.php #3

 

<?php

class Painel_Bootstrap extends Zend_Application_Module_Bootstrap
{    
   public function _initRouters()
   {
       $front = Zend_Controller_Front::getInstance();
       $router = $front->getRouter();

       /**
        * questions
        */
       $route = new Zend_Controller_Router_Route( ":module/perguntas/", array( "module" => "painel", "controller" => "questions", "action" => "index" ) );        
       $router->addRoute( "questions", $route );

           $route = new Zend_Controller_Router_Route( ":module/perguntas/deletar/:id", array( "module" => "painel", "controller" => "questions", "action" => "delete" ) );        
           $router->addRoute( "questions-delete", $route );

       /**
        * promoted
        */
       $route = new Zend_Controller_Router_Route( ":module/promover/:type/:id/:return/:hash", array( "module" => "painel", "controller" => "promoted", "action" => "index" ) );        
       $router->addRoute( "promoted", $route );

       /**
        * ads
        */
       $route = new Zend_Controller_Router_Route( ":module/anuncios/", array( "module" => "painel", "controller" => "ads", "action" => "index" ) );        
       $router->addRoute( "ads", $route );

           $route = new Zend_Controller_Router_Route( ":module/anuncios/adicionar", array( "module" => "painel", "controller" => "ads", "action" => "insert" ) );        
           $router->addRoute( "ads-insert", $route );

       /**
        * avaliations
        */
       $route = new Zend_Controller_Router_Route( ":module/avaliacoes/", array( "module" => "painel", "controller" => "avaliations", "action" => "index" ) );        
       $router->addRoute( "avaliations", $route );

       /**
        * studies
        */
       $route = new Zend_Controller_Router_Route( ":module/estudos/", array( "module" => "painel", "controller" => "studies", "action" => "index" ) );        
       $router->addRoute( "studies", $route );

           $route = new Zend_Controller_Router_Route( ":module/estudos/adicionar", array( "module" => "painel", "controller" => "studies", "action" => "insert" ) );        
           $router->addRoute( "studies-insert", $route );

           $route = new Zend_Controller_Router_Route( ":module/estudos/editar/:id", array( "module" => "painel", "controller" => "studies", "action" => "edit" ) );        
           $router->addRoute( "studies-edit", $route );

           $route = new Zend_Controller_Router_Route( ":module/estudos/deletar/:id", array( "module" => "painel", "controller" => "studies", "action" => "delete" ) );        
           $router->addRoute( "studies-delete", $route );

       /**
        * articles
        */
       $route = new Zend_Controller_Router_Route( ":module/artigos/", array( "module" => "painel", "controller" => "articles", "action" => "index" ) );        
       $router->addRoute( "articles", $route );

           $route = new Zend_Controller_Router_Route( ":module/artigos/adicionar", array( "module" => "painel", "controller" => "articles", "action" => "insert" ) );        
           $router->addRoute( "articles-insert", $route );

           $route = new Zend_Controller_Router_Route( ":module/artigos/editar/:id", array( "module" => "painel", "controller" => "articles", "action" => "edit" ) );        
           $router->addRoute( "articles-edit", $route );

           $route = new Zend_Controller_Router_Route( ":module/artigos/deletar/:id", array( "module" => "painel", "controller" => "articles", "action" => "delete" ) );        
           $router->addRoute( "articles-delete", $route );

       /**
        * tips
        */
       $route = new Zend_Controller_Router_Route( ":module/dicas/", array( "module" => "painel", "controller" => "tips", "action" => "index" ) );        
       $router->addRoute( "tips", $route );

           $route = new Zend_Controller_Router_Route( ":module/dicas/adicionar", array( "module" => "painel", "controller" => "tips", "action" => "insert" ) );        
           $router->addRoute( "tips-insert", $route );

           $route = new Zend_Controller_Router_Route( ":module/dicas/editar/:id", array( "module" => "painel", "controller" => "tips", "action" => "edit" ) );        
           $router->addRoute( "tips-edit", $route );

           $route = new Zend_Controller_Router_Route( ":module/dicas/deletar/:id", array( "module" => "painel", "controller" => "tips", "action" => "delete" ) );        
           $router->addRoute( "tips-delete", $route );

       /**
        * localService
        */    
       $route = new Zend_Controller_Router_Route( ":module/atuacao/", array( "module" => "painel", "controller" => "localService", "action" => "index" ) );        
       $router->addRoute( "local-service", $route );

           $route = new Zend_Controller_Router_Route( ":module/atuacao/adicionar", array( "module" => "painel", "controller" => "localService", "action" => "insert" ) );        
           $router->addRoute( "local-service-insert", $route );

           $route = new Zend_Controller_Router_Route( ":module/atuacao/editar/:id", array( "module" => "painel", "controller" => "localService", "action" => "edit" ) );        
           $router->addRoute( "local-service-edit", $route );

           $route = new Zend_Controller_Router_Route( ":module/atuacao/deletar/:id", array( "module" => "painel", "controller" => "localService", "action" => "delete" ) );        
           $router->addRoute( "local-service-delete", $route );

       /**
        * filial
        */    
       $route = new Zend_Controller_Router_Route( ":module/filiais/", array( "module" => "painel", "controller" => "filial", "action" => "index" ) );        
       $router->addRoute( "filial", $route );

           $route = new Zend_Controller_Router_Route( ":module/filiais/adicionar", array( "module" => "painel", "controller" => "filial", "action" => "insert" ) );        
           $router->addRoute( "filial-insert", $route );

           $route = new Zend_Controller_Router_Route( ":module/filiais/editar/:id", array( "module" => "painel", "controller" => "filial", "action" => "edit" ) );        
           $router->addRoute( "filial-edit", $route );

           $route = new Zend_Controller_Router_Route( ":module/filiais/deletar/:id", array( "module" => "painel", "controller" => "filial", "action" => "delete" ) );        
           $router->addRoute( "filial-delete", $route );

       /**
        * specialties
        */    
       $route = new Zend_Controller_Router_Route( ":module/especialidades/", array( "module" => "painel", "controller" => "specialties", "action" => "index" ) );        
       $router->addRoute( "specialties", $route );

           $route = new Zend_Controller_Router_Route( ":module/especialidades/adicionar", array( "module" => "painel", "controller" => "specialties", "action" => "insert" ) );        
           $router->addRoute( "specialties-insert", $route );

           $route = new Zend_Controller_Router_Route( ":module/especialidades/editar/:id", array( "module" => "painel", "controller" => "specialties", "action" => "edit" ) );        
           $router->addRoute( "specialties-edit", $route );

           $route = new Zend_Controller_Router_Route( ":module/especialidades/deletar/:id", array( "module" => "painel", "controller" => "specialties", "action" => "delete" ) );        
           $router->addRoute( "specialties-delete", $route );
   }

}

 

Conteúdo do Bootstrap.php #4

 

<?php

class Default_Bootstrap extends Zend_Application_Module_Bootstrap
{

   public function _initRouters()
   {
       $front = Zend_Controller_Front::getInstance();
       $router = $front->getRouter();

       /**
        * userView
        */
       $route = new Zend_Controller_Router_Route( ":module/pagina/:user", array( "module" => "default", "controller" => "user-view", "action" => "index" ) );        
       $router->addRoute( "user-view", $route );

           $route = new Zend_Controller_Router_Route( ":module/pagina/dicas/:user", array( "module" => "default", "controller" => "user-view", "action" => "tips" ) );        
           $router->addRoute( "user-view-tips", $route );

           $route = new Zend_Controller_Router_Route( ":module/pagina/artigos/:user", array( "module" => "default", "controller" => "user-view", "action" => "articles" ) );        
           $router->addRoute( "user-view-articles", $route );

           $route = new Zend_Controller_Router_Route( ":module/pagina/perguntas/:user", array( "module" => "default", "controller" => "user-view", "action" => "questions" ) );        
           $router->addRoute( "user-view-questions", $route );

           $route = new Zend_Controller_Router_Route( ":module/pagina/estudos_caso/:user", array( "module" => "default", "controller" => "user-view", "action" => "studies" ) );        
           $router->addRoute( "user-view-studies", $route );

           $route = new Zend_Controller_Router_Route( ":module/pagina/depoimentos/:user", array( "module" => "default", "controller" => "user-view", "action" => "testimony" ) );        
           $router->addRoute( "user-view-testimony", $route );

           $route = new Zend_Controller_Router_Route( ":module/pagina/contato/:user", array( "module" => "default", "controller" => "user-view", "action" => "messages" ) );        
           $router->addRoute( "user-view-contact", $route );

           $route = new Zend_Controller_Router_Route( ":module/pagina/biografia/:user", array( "module" => "default", "controller" => "user-view", "action" => "biography" ) );        
           $router->addRoute( "user-view-biography", $route );

           $route = new Zend_Controller_Router_Route( ":module/pagina/lerArtigo/:user/id/:id", array( "module" => "default", "controller" => "user-view", "action" => "articles-view" ) );        
           $router->addRoute( "user-view-articles-view", $route );

           $route = new Zend_Controller_Router_Route( ":module/pagina/lerEstudo/:user/id/:id", array( "module" => "default", "controller" => "user-view", "action" => "studies-view" ) );        
           $router->addRoute( "user-view-studies-view", $route );

           $route = new Zend_Controller_Router_Route( ":module/pagina/perguntar/:user", array( "module" => "default", "controller" => "user-view", "action" => "make-question" ) );        
           $router->addRoute( "user-view-make-question", $route );

   }

}

 

 

Obrigado pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gremio10, de certa forma não estou respondendo a sua pergunta, e também estou desenvolvendo meus projetos com o ZF a pouco tempo, mas quando preciso trabalhar com as rotas do ZF, eu uso um arquivo .ini, acho bem mais prático.

 

Veja se assim não resolveria seu problema!

 

Bootstrap.php

 protected function _initRouter() {
   $this->bootstrap('frontController');
   $config = new Zend_Config_Ini(
                   APPLICATION_PATH . '/configs/routes.ini', 'routes');
   $router = $this->getResource('frontController')
           ->getRouter()
           ->addConfig($config, 'routes');
   return $router;
 }

 

routes.ini(exemplo)

[routes]
routes.portfolio.route = "portfolio/:idCategoria/:nomeProduto"
routes.portfolio.defaults.controller = portfolio
routes.portfolio.defaults.action = index

routes.produto.route = "produto/:idProduto/:slugProduto"
routes.produto.defaults.controller = produto
routes.produto.defaults.action = index

 

Como disse anteriormente, trabalho a pouco tempo com o ZF, mas desde então essa pratica me serviu perfeitamente, nunca tive problemas!

 

Caso algum acho que trabalhar as rotas usando arquivo .ini é desvantajoso de alguma maneira, peço que me avise e me indique uma forma melhor para trabalhar. :natallaugh:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Francispansa, obrigado por compartilhar seu modo de criar rotas, como aprendi dessa maneira, para mim, fica muito mais fácil de desenvolver assim, mas quando iniciar um novo projeto, irei usar o seu método de criação para ver como é :natalhappy:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Francispansa, obrigado por compartilhar seu modo de criar rotas, como aprendi dessa maneira, para mim, fica muito mais fácil de desenvolver assim, mas quando iniciar um novo projeto, irei usar o seu método de criação para ver como é :natalhappy:

 

Realmente, o modo é mais fácil de trabalharmos é sempre o que aprendemos inicialmente!

Mas quando puder teste mesmo esse modo, eu acho interessante e bem simples de se trabalhar. :natalhappy:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.