Pergunta

Eu estou ciente de estrutura de diretórios padrão para aplicativos modulares Zend Framework que está no manual.

/application
  /controllers
  /modules
    /admin
      /controllers
      /views
  /views
  /configs
/www
  index.php

Mas eu estou querendo saber por que eu deveria fazê-lo desta forma. É realmente sux ter o módulo padrão no / aplicação e outros módulos em / application / modules /: moduleName . Esta é mais uma questão de discussão do que um ajuda-me questão.

Quais são os prós e contras de ter estrutura de diretórios como esta:

/application
  /modules
    /admin
      /controllers
      /views
    /default
      /controllers
      /views
  /configs
/www
  index.php

Do meu ponto de vista, a única desvantagem é que ele não está escrito assim em default / no manual. Eu não posso ver qualquer outro. Estou esquecendo de algo?

Ainda mais - Eu acho que essa estrutura deve ser a estrutura padrão para qualquer nova aplicação ZF. E eu me pergunto por que os desenvolvedores Zend não usá-lo.

Foi útil?

Solução

Na verdade, sua estrutura de diretório proposto é mais do que adequado para aplicações grandes e complexas.

Magento que é melhor solução Open Source e-commerce do mundo hoje foi codificado em Zend Framework e utiliza layout de diretório semelhante como você propõe, desta forma é muito fácil de estender e adicionar novos módulos e gerenciar os antigos.

Mais uma vez para aplicativos simples e para aprender Zend gostaria de sugerir todos a vara para a estrutura de diretório padrão.

Outras dicas

Eu suponho que desta forma é porque:

  • existe uma estrutura padrão, que é usado quando não existe um módulo em um aplicativo (ou seja, apenas um módulo padrão - o que significa que não há necessidade de um diretório "default")
  • e, em seguida, você pode adicionar módulos; sem ter que modificar a estrutura existente.

É uma explicação tão boa quanto qualquer outra, eu suponho.


Ainda assim, se a desenvolver um aplicativo que irá conter vários módulos, e sabendo isso desde o início, eu provavelmente ir com o tipo de struture você está propondo, e não a um padrão ^^

As coisas seriam mais claro que maneira, na minha opinião - e eu não vejo nenhum problema com isso

(Na verdade, eu tenho que maneira uma vez, há algum tempo atrás, e não encontrei nenhum problema - mas isso não foi um pedido de "completo", mais um protótipo ...)

Na verdade, essa é uma das opções detalhadas sobre http: // framework.zend.com/manual/en/zend.controller.modular.html

seu caminho sons finos e o ponto de ZF é que você pode escolher a forma de gerir as coisas sozinho. Uma vantagem é ligeiramente menos código. Na abordagem padrão do Zend você precisaria usar este:

$front = Zend_Controller_Front::getInstance();
$front->addControllerDirectory('/path/to/application/controllers', 'default');
$front->addModuleDirectory('/path/to/application/modules');

Considerando que a abordagem que você descreve:

$front = Zend_Controller_Front::getInstance();
$front->addModuleDirectory('/path/to/application/modules');

É tudo que você precisa.

Uma vantagem da abordagem de Zend é se você não precisa de módulos, então não há necessidade de executar o método addModuleDirectory (). Com sua abordagem isso sempre precisa ser executado, potencialmente criando uma pequena sobrecarga.

Esta página http://framework.zend.com/manual /en/project-structure.project.html afirma ter o diretório controladores padrão "dentro do diretório do aplicativo fornece o melhor layout para iniciar um projeto simples, bem como iniciar um projeto modular que tem globais controladores / modelos / vistas. "

Eu acho que o ponto de vista do Zend é que isso funciona para ambos os sites simples, com apenas um módulo padrão e mais complexos com vários módulos. Não é difícil descobrir novos módulos estão na módulos / diretório. Mas no final do dia, é preferência pessoal.

Estou strugling com o mesmo problema. Mas eu não estou conseguindo fazer essa configuração corretamente ... Por que eu quero usar isso é porque a estrutura modular, combinado com Zen_Application, instancia um Module_Bootstrapper que registeres os namespaces in / application / módulo / nome / formas (e controladores, pontos de vista, modelos, etc ...) automaticly.

O único problema que estou tendo é se livrar do módulo 'default': S

Você pode encontrar o tópico sobre Zend Fóruns aqui: http: / /forums.zend.com/viewtopic.php?f=69&t=2394&start=0

Esperemos que ele vai ser respondida, ot eu vou postá-lo aqui.

Você pode encontrar sua arquitetura desejada aqui: http://www.osebboy.com / blog / zend-framework-modules /

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top