Pergunta

A estrutura PHP que estou usando (Kohana) implementou recentemente a arquitetura HMVC. Eu li que é um MVC em camadas onde as solicitações são feitas umas sobre as outras. É um pouco como Ajax, apenas puramente do lado do servidor. Apliquei um pouco em alguns experimentos, mas não posso aplicá -lo a nenhum dos meus projetos (porque não consigo encontrar a necessidade). Você já usou o HMVC em um projeto antes? Como isso ajudou você?

Foi útil?

Solução

É um pouco como Ajax, apenas puramente do lado do servidor.

Essa é uma boa analogia.

O HMVC é bom para adicionar widgets às páginas - bits modulares de conteúdo que você reutiliza em poucas páginas. Por exemplo, um widget de carrinho de compras. Você poderia fazer a mesma coisa de maneiras diferentes:

  1. Uma biblioteca. Estamos acostumados a mover código reutilizável de um controlador para uma biblioteca. Em seguida, no controlador, você pode carregar os resultados de uma chamada para essa biblioteca em uma variável de exibição.
  2. Uma vista. Você pode carregar uma visualização (parcial) de dentro da visualização principal. Essa visão parcial pode extrair conteúdo dos modelos. Chamar modelos de visualizações nem sempre é popular, mas não é necessariamente errado.

No entanto, o Kohana HMVC tem algumas vantagens:

  1. Consistência - As solicitações de HMVC são tratadas da mesma forma que as solicitações HTTP externas.
  2. As solicitações de potência - HMVC têm os mesmos recursos Kohana que as solicitações HTTP, incluindo rotas.
  3. Plugability - Quando chamado de uma visualização, uma solicitação HMVC não possui um acoplamento entre o controlador (que atribui os resultados da biblioteca a uma visualização) e um espaço reservado para visualizar. Você apenas toca em um arquivo em oposição a dois.

Estou começando a apreciar o caso do HMVC e a escalabilidade com solicitações HTTP, conforme vinculado pela Kiall. O mesmo poderia ser feito com Curl. No entanto, pode ser mais natural projetar com Kohana HMVC do que o Curl desde o início.

Outras dicas

Bem - Sam de Freyssinet (também conhecido como Samsoir), um dos desenvolvedores de Kohana, publicou recentemente um artigo que lida com essa pergunta.

http://techportal.inviqa.com/2010/02/22/scaling-web-applications-with-hmvc/

Embora não seja o único uso para o HMVC - é um de seus usos mais populares. O artigo está preocupado principalmente com a escalabilidade (como em, número de solicitações por segundo), mas a escalabilidade do código (como em, quão fácil/difícil é o código a ser mantido) pode ser "resolvido" com as mesmas idéias ..

Espero que isto ajude :)

(Nota lateral - suas amostras de código são baseadas nas mudanças pessoais de Sam em Kohana - veja a nota no final do artigo)

Em um projeto simples, você pode nem encontrar um uso real para o padrão arquitetônico HMVC. E você nem deveria tentar. Aqui está o porquê:

O ponto principal na criação de uma arquitetura HMVC era tornar o MVC um pouco seco. Um dos principais benefícios do HMVC é a reutilização do código. Ele permite que você tenha fragmentos que se repetem em todo o seu aplicativo (às vezes no mesmo local, outras vezes - não).

Se você estiver escrevendo como pequeno aplicativo de teste, não haverá fragmentos repetíveis. Assim, não há necessidade de usar o potencial completo do HMVC. Você acabou de acabar com 1 nível de HMVC, que é o MVC padrão.

Aqui você pode ler a publicação original, que introduziu o HMVC. Em 2000.

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