Ir para conteúdo

Arquivado

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

JCMais

Estrutura da pasta das classes de serviço

Recommended Posts

Olá pessoal, eu estou estudando Doctrine2 + Zend Framework, seguindo o padrão MVC e Domain-Driven Design. E estou estruturando a pasta onde irão ficar as classes de serviço. A estrutura que fiz até agora é esta:

Model/
   Entities/
      User.php
      User/
          -- entidades relatadas ao user --
      Group.php
      Group/
          -- entidades relatadas ao group --
      ...
   Repositories/
   Proxies/
   Services/
       User/ -- classes de serviço relatadas a entidade User
       Group/ -- classes de serviço relatadas a entidade Group

 

 

 

Eu gostaria de saber o que acham desta organização, existe algum problema em organizar desta forma? Ou seja, organizar as classes de serviço em pastas que remetem à uma entidade.

O ideal seria evitar uma mudança na estrutura da pasta no futuro, o que poderia ser ocasionado por uma má organização agora, por tanto qualquer sugestão e/ou critica construtiva é bem vinda. :joia:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, eu acho que a organização das pastas não tem muito haver, isso se trata de 'organização' e nada mais, não vai te atrapalhar a executar os scripts, etc .. é bom manter organizado, eu sinceramente, tive muitos problemas com estrutura grande, ainda mais quando se tratava de requisições ajax, claro, que eu tinha uma pasta separada apenas para os arquivos que receberiam requisições ajax, ficavam em includes/ajax/*.*, mas às vezes, me complicava um pouco.

 

Resumindo, a organização é a gosto de cada um, se você acha que dessa forma vai melhorar a forma que você trabalha com os arquivos e a forma que você acha melhor para fazer atualizações no futuro, siga em frente, se acha que vai te complicar, pensa numa outra forma de fazer a estrutura.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gostei dessa estrutura, ficou bem clara e objetiva.

 

Como o Andrey disse é questão de organização apenas, mas, particularmente falando, pra mim quanto mais organizado melhor fica a produtividade.

 

As vezes chego às raias da paranóia com questões como essa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu acho que a organização das pastas não tem muito haver

 

De certa forma, tem muito haver, pois de acordo com a organização das pastas é que será definido os namespaces das classes.

Domain\Repositories\..

Domain\Entities\...

etc.

 

Mas como você disse o que importa é se a estrutura é viável para a minha aplicação e para quem for desenvolver; eu decidi ficar com esta mesmo. ^_^

 

As vezes chego às raias da paranóia com questões como essa.

 

Igual a mim. ahuahua

Fica naquela "será que assim é bom? mas e se tiver que mudar? Teria outra forma?" :lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, e porque você usa namespace ?

 

Para evitar conflitos entre funções/classes e organizar melhor o código da aplicação, o que nos leva diretamente a organização das pastas. Apesar do separador de namespace no PHP ser uma droga.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode até ser que nesse caso o uso de Namespaces seja desnecessário, mas de um modo geral ajuda e muito.

 

Principalmente para aqueles casos em que duas classes distintas possuem o mesmo nome mas fazem coisas diferentes, que podem ser usadas separadamente, mas que eventualmente precisem ser usadas em conjunto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Namespaces não foram criados para organizar código, afinal, não vejo a necessidade de ser usado namespace neste caso.

 

Discordo de você. :P

Apesar do uso maior de namespace seja, principalmente, para evitar a colisão entre duas classes, eles influenciam sim na organização de código. E para mim, é extremamente necessário o uso, visto que é uma base de código grande, e por está sendo utilizada várias classes de projetos diferentes.

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.