AngularJS est très puissant en matière de HTML5 interactif et de liaison de modèle. D'autre part, les frameworks PHP tels que Yii permettent un développement d'applications Web rapide, bien structuré, sûr et puissant. Les deux technologies fournissent des moyens sophistiqués pour l'accès aux données, l'itération et la mise en page.
Est-ce une bonne ou une mauvaise pratique de mélanger ces deux approches ("mise en page" côté client et côté serveur) ou est-ce plutôt contraire au sens des applications Web AJAX HTML5 interactives et transparentes?
Je ne parle pas de générer du JS en utilisant PHP ( voir cette question ) - je parle de générer une vue qui utilisera AngularJS.
Je sais aussi qu'une page AngularJS devrait (ou peut) communiquer avec le serveur via les services REST pour obtenir des données ( voir cette question ) au lieu de les récupérer, par exemple, directement à partir de variables PHP. Mais pour moi, il me semble plus pratique de concevoir le "cadre" pour l'ensemble de l'application Web séparément en PHP (par exemple, créer le menu principal ou gérer l'autorisation / les sessions, etc.)
Réponses:
Il semble que vous soyez plus à l'aise avec le développement en PHP, vous laissez cela vous empêcher d'utiliser tout le potentiel des applications Web.
Il est en effet possible d'avoir PHP de rendre des vues partielles et entières, mais je ne le recommanderais pas.
Pour utiliser pleinement les possibilités du HTML et du javascript pour créer une application Web, c'est-à-dire une page Web qui agit davantage comme une application et qui repose fortement sur le rendu côté client, vous devez envisager de laisser le client conserver toute la responsabilité de la gestion de l'état et de la présentation. Cela sera plus facile à maintenir et plus convivial.
Je vous recommanderais de vous sentir plus à l'aise dans une approche plus centrée sur l'API. Plutôt que de faire sortir PHP une vue pré-rendue et d'utiliser angular pour une simple manipulation DOM, vous devriez envisager de faire afficher par le backend PHP les données qui doivent être traitées sur RESTFully, et que Angular les présente.
Utilisation de PHP pour rendre la vue:
/user/account
Comment le même problème peut être résolu avec une approche centrée sur l'API en générant JSON comme ceci:
api/auth/
et dans Angular, vous pouvez faire un get et gérer la réponse côté client.
Mélanger à la fois le côté client et le côté serveur de la manière que vous avez proposée peut convenir à des projets plus petits où la maintenance n'est pas importante et où vous êtes l'auteur unique, mais je penche davantage vers la manière centrée sur l'API car ce sera une séparation plus correcte des considérations et de la volonté être plus facile à entretenir.
la source
a wall of javascript
? Je suis nouveau dans le monde des API Angular / JS après des années de rendu PHP, donc cette discussion m'intéresse.