161 votes

Dois-je mélanger AngularJS avec un framework PHP?

AngularJS est très puissant quand il s'agit interactif en HTML5 et le modèle de liaison. D'autre part, des frameworks PHP comme Yii permettre rapide, bien structuré, puissant et sûr pour le développement d'applications web. Les deux technologies offrent des moyens sophistiqués pour l'accès aux données, l'itération et la page layouting.

Est-ce une bonne ou une mauvaise pratique de mélanger ces deux approches (côté client et côté serveur "mise en page") ou est-ce plutôt à contre-sens de l'interactif, intégré en HTML5 applications web AJAX?

Je ne suis pas en train de générer de la JS à l'aide de PHP (Voir à cette question) - je parle de la génération d'une vue d'utiliser AngularJS.

Je sais aussi qu'un AngularJS page doit (ou peut) de communiquer avec le serveur via des services REST pour obtenir des données (Voir à cette question) au lieu de les récupérer à partir par exemple des variables PHP directement. Mais il me semble plus pratique pour concevoir le "cadre" pour l'ensemble de l'application web séparément en PHP (par exemple, construire le menu principal ou le manche d'autorisation de sessions, etc.)

179voto

Kenneth Lynne Points 3294

Il semble que vous pourriez être plus à l'aise dans le développement en PHP, vous laissez ce vous tenir en arrière en utilisant le plein potentiel avec des applications web.

Il est en effet possible d'avoir PHP rendre les partiels et tout point de vue, mais je ne le recommanderais pas.

Pour utiliser pleinement les possibilités du HTML et du javascript pour faire une application web, c'est une page web qui agit plus comme une application, et s'appuie fortement sur le rendu côté client, vous devriez envisager de laisser le client de maintenir la responsabilité de la gestion de l'état et de la présentation. Ce sera plus facile à maintenir, et sera de plus en plus conviviale.

Je vous recommande de plus à l'aise de penser en plus de l'API approche centrée sur l'. Plutôt que d'avoir PHP sortie d'un pré-rendu de la vue, et l'utilisation angulaire pour la simple manipulation du DOM, vous devriez envisager d'avoir le PHP backend de sortie les données qui doivent être traitées Paisiblement, et ont Angulaire de le présenter.

À l'aide de PHP pour rendre la vue:

/user/account

if($loggedIn)
{
    echo "<p>Logged in as ".$user."</p>";
}
else
{
    echo "Please log in.";
}

Le même problème peut être résolu avec une API centrée sur l'approche de la sortie JSON comme ceci:

api/auth/

{
  authorized:true,
  user: {
      username: 'Joe', 
      securityToken: 'secret'
  }
}

et Angulaire, vous pourriez faire un obtenir et de traiter la réponse du côté client.

$http.post("http://example.com/api/auth", {})
.success(function(data) {
    $scope.isLoggedIn = data.authorized;
});

Pour se fondre à la fois côté client et côté serveur de la façon dont vous proposé peut être adapté pour les petits projets où l'entretien n'est pas important et que vous êtes le seul auteur, mais je penche plus vers l'API centrée sur le chemin que ce sera plus correct de séparation de conserns et sera plus facile à maintenir.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X