Intereting Posts

Quelle structure d'application utiliser avec AngularJS et Laravel?

J'ai récemment commencé à construire un grand réseau social, et je pensais que ma structure était bonne, mais il s'est avéré que j'ai mal construit cette logique.

J'ai mélangé mes points de vue avec AngularJS (mauvaise idée), une extension de lame ignorée, mais comme j'utilise beaucoup de blocs et la barre latérale, elle est devenue une douleur dans la crosse.

Actuellement, je suis en train de traiter des validations de formulaire avec des fonctions angulaires, mais en réalité, toutes les pages de mon site nécessiteront un ajax, une extraction de données, etc.

Je cherchais le net et je voyais que les vues angulaires sont stockées dans le dossier public, mais comme toutes mes pages utilisent angular, est-ce une bonne idée de stocker toutes mes vues dans le public et d'utiliser Laravel comme un back-end?

Je sais que c'est une question stupide, mais je suis un peu confus.

Un indice d'aide apprécié.

Il existe deux façons de combiner ces cadres:

  1. Seul le rendu côté client

    C'est la manière la plus simple et la plus utilisée par la plupart des applications Web. Dans ce cas, vous utiliserez Laravel comme point d'extrémité de l'API qui renverra JSON. Angular peut interroger ces données via son service $http ou $resource et compiler les modèles que vous stockez dans le dossier public. Les modèles angulaires ne sont que des directives HTML et des instructions {{var}}. De cette façon, Angular effectue tous les routages.

  2. Représentation côté serveur et côté client

    C'est le moyen le plus difficile pour lequel Laravel effectue le routage et compile certains modèles sur le côté serveur. Vous utiliserez Angular uniquement pour certaines interactions sur le site d'une manière que vous utiliserez jQuery par exemple. L'avantage de cette approche est la performance car les utilisateurs obtiendront le HTML complet la première fois qu'ils visiteront votre site. L'inconvénient est que vous devrez peut-être écrire quelques logiques deux fois et ne pouvez pas utiliser certaines fonctionnalités d'Angular.

Pour bénéficier de la plupart des fonctionnalités angulaires, vous devez écrire une seule application de page. Cela signifie que vous communiquerez avec le serveur via les API Web et que vous n'aurez aucun modèle Laravel côté serveur.

Donc oui, vous devriez écrire deux applications découplées. Un côté client, utilisant Angular et un côté serveur qui expose une API Web, de préférence RESTful.

De cette façon, vous pouvez passer de JS / HTML / CSS du côté client à Flash ou Silverlight ou autre chose et de Laravel / PHP / MySQL à .NET ou NodeJS ou Meteor / MongoDB.

Sergiu est correct, mais dans certains cas, Laravel offre toujours des avantages qui ne peuvent être réalisés avec les modèles côté client. Ceci est lié au référencement et aux WCAG (accessibilité).

AngularJS rend le contenu par manipulation DOM afin que les moteurs de recherche ne puissent déterminer quel contenu est affiché après que ces manipulations sont terminées. C'est également le cas pour les lecteurs d'écran. Pour cette raison, certains contenus doivent être livrés au moyen de constructions de vues côté serveur. C'est pourquoi WordPress et Laravel ont un avenir long et sain.

Sur l'arrière-plan ou dans les cas où le référencement et les WCAG ne sont pas importants, les modèles de côté de la liaison de données tels que ceux utilisés avec AngularJS et Ember seront utilisés de plus en plus, à mesure que de plus en plus de développeurs apprennent comment les utiliser.

Pour utiliser AngularJS ou Laravel pour les constructions de vues, il serait préférable d'apprendre à utiliser les deux et à appliquer le cas le plus approprié.