É uma boa idéia para combinar um / UI JS Framework Ajax (ext, jquery-ui) com um framework MVC PHP (Zend, symfony)?

StackOverflow https://stackoverflow.com/questions/1800775

Pergunta

Sei que esta é uma pergunta muito genérica, mas eu acho que eu realmente não estou procurando uma resposta definitiva. Sendo novo para PHP Estruturas Estou tendo um tempo difícil obter minha cabeça em torno dele.

frameworks JavaScript, especialmente com extensões de interface do usuário, parecem ter sua espécie de MVC-como abordagem, separando o seu código JS do seu design. Parece apenas que ele iria ficar confuso para usar um framework MVC adicional no backend.

É este comumente feito para aplicações principalmente AJAX-driven? Existe uma maneira aceite / comum de fazê-lo?

Foi útil?

Solução

Um rápido exemplo de como ele pode caber em conjunto para um aplicativo Zend Framework (e esta é a partir de um aplicativo de demonstração que eu escrevi há alguns meses):

  • Use o Quadro MCV para construir um site totalmente funcional (que funciona sem javascript).
  • Modificar o controlador para entender a diferença entre um pedido 'normal' e uma solicitação AJAX (troca de contexto do Zend torna isso fácil).
  • Adicione o Javascript (no meu exemplo jQuery) para substituir limpa as ligações com eventos AJAX.

No final, o aplicativo PHP sabe que um pedido de AJAX precisa de uma resposta AJAX (menos largura de banda, menos processamento, única JSON ou HTML 'trecho'), mas um pedido normal precisa de uma página inteira gerado.

Basicamente, você está apenas usando AJAX ao pedido (ou atualização, ou adicionar dados a) a 'visão' modelo, sem ter que processar todo o layout. O Zend Framework Contexto Mudar Helper Action pode ajudar esta fazer mais sentido.

Vale a pena mencionar que a troca de contexto funciona bem em fazer um pedido disponível em diferentes formatos - HTML / XML, CSV, etc.

Outras dicas

É o próximo passo lógico da MVC, na minha opinião. Você já separar o seu acesso a dados (modelo), a partir da lógica de negócios (controlador), a partir da saída (vista) -. Agora você está apenas separando o comportamento de marcação

Na minha experiência, ele funciona muito bem com AJAX apresenta, desde que você só precisa mudar a sua visão para retornar as informações necessárias como JSON ou XML.

É uma idéia muito boa, já que os frameworks PHP MVC são empacotados com frameworks JS :


link atualizado, graças "Exceção e".

Pessoalmente estamos usando Zend (MVC, bem como outros aspectos do quadro Zend) com jQuery e ele funciona muito bem em conjunto. Uma vez que nem toda a sua interação a partir da página html será via jquery (Ajax), em seguida, uma arquitetura padrão MVC é altamente recomendado. Você certamente quer as camadas de sua arquitetura (que separa o modelo ea vista) e tendo jQuery é (pelo menos para mim) e "recurso" adicional de ser capaz de executar o seu MVC de forma assíncrona.

Parece apenas que ele iria ficar confuso para usar um framework MVC adicional no backend.

Não há necessidade de se preocupar com isso. Você pode usar o Zend Framework e extjs por exemplo, de forma independente durante o desenvolvimento, eles são realmente produtos separados. As dependências entre essas camadas deve ser simples . Não há necessidade de preocupação.

O acoplamento é baixo, você só precisa criar meios para consultar dados de seu servidor-aplicativo e fazer o que quiser com em no lado do cliente. A linha entre esses sistemas é simples e não confundi-lo.
Extjs realmente não tem uma estrutura imho MVC. Oferece predefinidos componentes ricos. Você cola estes componentes com alguma configuração e configurar os URLs de seu servidor onde os dados podem ser obtidos a partir.

Como você recebe o seu Zend MVC responder a ajax? Eu recomendo que você visualize o apresentação sobre zf ? ajax a partir líder do projeto da ZF.

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