Est-ce une bonne idée de combiner un framework JS Ajax / UI (ext, jquery-ui) avec un framework PHP MVC (zend, symfony)?

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

Question

Je réalise que c'est une question très générique, mais je suppose que je ne cherche pas vraiment une réponse définitive. Étant nouveau dans les frameworks PHP, j'ai du mal à comprendre.

Les frameworks Javascript, en particulier avec les extensions d’UI, semblent avoir une sorte d’approche semblable à celle de MVC en séparant votre code JS de votre conception. Il semble tout simplement compliqué d'utiliser un framework MVC supplémentaire sur le backend.

Est-ce couramment utilisé principalement pour les applications utilisant AJAX? Y a-t-il une manière acceptée / commune de le faire?

Était-ce utile?

La solution

Voici un exemple rapide de la façon dont cela peut s'intégrer dans une application Zend Framework (et cela provient d'une application de démonstration que j'ai écrite il y a quelques mois):

  • Utilisez le framework MCV pour créer un site entièrement fonctionnel (qui fonctionne sans JavaScript).
  • Modifiez le contrôleur pour comprendre la différence entre une requête "normale" et une requête AJAX (la commutation de contexte de Zend simplifie cette tâche).
  • Ajoutez du Javascript (dans mon exemple, jQuery) pour remplacer proprement les liens par des événements AJAX.

En fin de compte, l'application PHP sait qu'une requête AJAX nécessite une réponse AJAX (moins de bande passante, moins de traitement, uniquement du "fragment" JSON ou HTML), mais une requête normale nécessite la génération d'une page entière.

En gros, vous utilisez simplement AJAX pour demander (ou mettre à jour ou ajouter des données dans) le modèle de "vue", sans avoir à traiter toute la mise en page. Aide-mémoire pour le changement de contexte <> / a> peut aider à rendre cela plus logique.

Il convient de mentionner que la commutation de contexte fonctionne bien pour rendre une demande disponible dans différents formats: HTML / XML, CSV, etc.

Autres conseils

À mon avis, c’est la prochaine étape logique de MVC. Vous séparez déjà votre accès aux données (modèle) de la logique métier (contrôleur) de la sortie (vue) - vous séparez maintenant le comportement du balisage.

D'après mon expérience, cela fonctionne très bien avec les fonctionnalités AJAX, car il vous suffit de modifier votre vue pour renvoyer les informations nécessaires au format JSON ou XML.

Personnellement, nous utilisons Zend (MVC ainsi que d’autres aspects du framework Zend) avec jquery et cela fonctionne très bien ensemble. Étant donné que toutes vos interactions à partir de la page html ne se feront pas via jquery (ajax), une architecture MVC standard est vivement recommandée. Vous voulez certainement les couches de votre architecture (séparant le modèle et la vue) et jQuery est (du moins pour moi) et une "fonctionnalité" supplémentaire. de pouvoir exécuter votre MVC de manière asynchrone.

  

Il semble tout simplement compliqué d'utiliser un framework MVC supplémentaire sur le backend.

Pas besoin de s'inquiéter pour ça. Vous pouvez utiliser zend framework et extjs par exemple indépendamment lors du développement. Ce sont vraiment des produits séparés. Les dépendances entre ces couches doivent rester simples . Pas besoin de s'inquiéter.

Le couplage est faible, il vous suffit de configurer les moyens pour interroger les données de votre application serveur et faire ce que vous voulez du côté client. La ligne entre ces systèmes est simple et ne vous confondra pas.
Extjs n'a pas vraiment de structure mvc à mon humble avis. Il offre des composants riches prédéfinis. Vous collez ces composants avec une certaine configuration et configurez les URL de votre serveur où les données peuvent être récupérées.

Comment obtenez-vous votre zend mvc répondre à ajax? Je vous recommande de consulter la présentation de zf ajax du responsable du projet zf.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top