Bonjour à tous,

Alors voilà, actuellement je commence un nouveau projet (qui n'en est qu'au cahier des charges). Pour ce projet je veux utiliser AngularJS pour l'apprendre et le maitriser et j'utilise régulièrement des moteurs de templates comme Twig et boostrap. Pour les vues de mon projet est t'il possible d'utiliser ces 3 composants en même temps ?

Merci

6 réponses


Ramzz1994
Réponse acceptée

J'éviterais tout simplement de faire intéragir du code côté serveur avec du code client. Je m'explique. Si on prend une tableau d'articles qui doient être affichés par sur une page avec une instance d'Angular. Est-ce que c'est mieux pour moi de faire la boucle en PHP ou bien de la faire avec la directive ng-repeat d'AngularJS ? On pourrait passer des heures à imaginer des scénarios bénéfiques d'un côté ou de l'autre. Toutefois, Resethread fait bien de mentionner le sujet de la maintenabilité de l'application. D'un côté, si on utiliserait la directive ng-repeat, on se trouverait à devoir récupérer d'une façon ou d'une autre les données. Qu'est-ce qui est le plus portable entre une structure HTML et un fichier de données JSON ? La réponse est simple, le JSON est un language permettant le transport, en se dissociant un peu de la source de données, alors que la vue PHP aura une seule et unique affichage. Je pense que le mieux c'est de rencontrer les problèmes... et de trouver des solutions. On apprend ainsi de nos erreurs.

Pour revenir au sujet, je pense qu'on devrait complètement séparer le code client et le code serveur. En JavaScript, on devrait favoriser l'utilisation de template, plutôt que le chargement de vues complètes en PHP. C'est beaucoup plus lourd et ensuite, il n'y a aucun intéret d'avoir accès à un template (une page HTML avec les balises, sans code serveur) sans avoir accès au données. C'est là que ton serveur va intervenir, par un API, tu pourras récupérer tes données au format JSON.

Je suis tout de même désolé de ne pas avoir forcément répondu à ta question. Si ton objectif était de concevoir un SPA (Simple Page Application), tu devrais emprunter cette direction. Sinon, tu ne devrais pas utiliser AngularJS, ce n'est pas pertinent d'avoir un DOM reactive si tu fais tout en PHP. Mélanger les deux, c'est pire selon moi, question de maintenabilité. La beauté de tout ça, c'est que si tu désires faire une application mobile, desktop ou autre chose, tu pourras très facilement le faire, ça sera le même code si tu veux utiliser une API, à quelques exceptions près.

Je te laisse réfléchir au problème. :-)

Au plaisir !

Bonjour,
Alors AngularJS n'a pas de lien avec un framework CSS quel qu'il soit donc tu peux utiliser Bootstrap3 sans souci.

Par contre tu peux avoir des incompatibilité avec des moteurs de templates comme Twig ou Blade (Laravel) qui utilisent eux aussi les doubles curly braces ( {{}} ). Tu peux soit changer le motif dans AngularJS, soit utiliser d'autres solutions propres à Twig http://blog.tommyku.com/blog/resolve-syntax-conflict-between-angularjs-and-twig.

Moi je remettrais plutôt en doute l'utilisation d'un moteur de template côté serveur avec l'utilisation d'AngularJS...

Ramzz1994, quel est ton argument pour ça ?

L'argument risque d'être simple : la productivité et la maintenance future.
Soit tu gères la partie template avec le serveur ( en l'occurrence PHP et Twig ), soit tu utilises Angular pour ça, mais utiliser un mix des deux risque de rendre le code plus compliqué pour pas grand chose.

Merci de vos réponses.
Mon idée pour ce projet est d'utiliser SLIM pour faire mes routes et Eloquent comme ORM. Et pour le front-end, je veux utliser AngularJS.
Si je comprend bien le mieux est de faire les vues avec AngularJS et pas avec le PHP et Twig ?