E ai pessoal,Ha um tempo atras eu passei um sufoco ao tentar criar a separacao dos meus controllers e diretorios por modulos. Nas minhas pesquisas para resolver meu problema, verifiquei que ha muitas pessoas encontrando esta dificuldade e sem solucoes.Vamos imaginar que voce possui um site que tera a area default(front com os usuarios) e a parte de administracao - admin(front dos administradores do site). E dessa forma que veremos como criar esses modulos.Eu fiz o teste do exemplo utilizando o XamppLite 1.7.0 e o Appserv 2.5.10.Obs.: Caso esteja tendo problemas com o .htaccess, leia mais no final do post (Dicas).Eu cheguei a fazer testes com o Application server, mas deu um problema com relacao a seguranca e redirecionamentos do .htaccess. Estou entrando em contato pelo site do application server para poder solucionar o problema, mas pelo xampplite deu tudo certo.ESTRUTURA DE DIRETORIOSDeve existir varias formas de separar os modulos. Postarei a forma que obtive sucesso apos bater a cabeca.A estrutura do nosso diretorio ficara como a figura abaixo:Note que dentro de application eu criei um diretorio chamado admin e outro chamado default(marquei de vermelho), que serao nossos modulos e conterao seus proprios controllers, models e scripts.Para cada area da administracao eu criei um controller, onde vc pode inserir as Actions de add, edit, etc...Assim como os arquivos phtml.Os nomes dos arquivos phtml precisam ser iguais ao de suas Actions. Por exemplo, dentro do Controller NoticiasController, terei as seguintes actions:public function addAction(){...}public function editAction(){...}e o nome de seus templates: add.phtml e edit.phtmlE dessa forma que o Zend trabalha. Caso tenha alguma outra forma que voce saiba e tenha se sentido incomodado com minha observacao, pode postar um comentario que ficarei feliz de saber outra forma. :)CONTROLLERSComo nos separamos nosso exemplo em modulos, devemos dizer ao index.php onde ficarao esses modulos.No seu index.php, adicione a seguinte linha://Cria a instrancia do front_controller$controller = Zend_Controller_Front::getInstance();//Indica o topo do nosso diretorio. por exemplo, caso o seu endereco fique: http://localhost/sistemas/Exemplo, o seu setBaseUrl devera ficar com o valor '/sistemas/Exemplo'. No meu caso, estarei acessando http://localhost/ex_modulo$controller->setBaseUrl('/Ex_modulo');// mostra os erros em modo de execucao$controller->throwExceptions(true);//Diz onde esta os controllers do nosso modulo default$controller->setControllerDirectory('./application/default/controllers');//Aqui nos dizemos ao ZF que existe um modulo chamado admin e que seus controllers estao no diretorio passado por parametro.$controller->addControllerDirectory('./application/admin/controllers', 'admin');Note que nos diretorios de controllers eu ja criei os controllers para cada area de nossa administracao: IndexControllers.php, NoticiasController.php e BlogsController.php .Quando criamos nosso projeto sem modulos, o nome da classe dos modulos no nosso caso ficaria +/- assim:public class NoticiasController extends Zend_Controller_Action(){...}Se voce tentar executar seu projeto o Zend reclamara que ele nao conseguiu achar os controllers requisitados.Como separamos nosso projeto em modulos, as nossas classes deverao conter o nome do nosso Modulo (com a primeira letra em maiusculo) + underline"_" + NomedomoduoloControllerFicou confuso? bom, o resultado final ficaria assim:public class Admin_IndexController extends Zend_Controller_Action(){...}public class Admin_NoticiasController extends Zend_Controller_Action(){...}public class Admin_BlogsController extends Zend_Controller_Action(){...}DICAS1 - No seu index.php indique seus include paths do seguinte modo:setlocale(LC_ALL, 'BRA');date_default_timezone_set('America/Sao_Paulo');set_include_path('.' . PATH_SEPARATOR . '..' . PATH_SEPARATOR . './library' . PATH_SEPARATOR .'./application/default/models/' . PATH_SEPARATOR .'./application/admin/models/' . PATH_SEPARATOR . get_include_path());E para facilitar nossa vida,