example - ¿Debería mezclar AngularJS con un framework PHP?
angularjs php mysql crud (1)
AngularJS es muy poderoso cuando se trata de HTML5 interactivo y enlace de modelo. Por otro lado, los frameworks PHP como Yii permiten el desarrollo de aplicaciones web rápidas, bien estructuradas, seguras y potentes. Ambas tecnologías proporcionan medios sofisticados para acceso a datos, iteración y diseño de página.
¿Es una buena o mala práctica mezclar esos dos enfoques ("configuración de página" del lado del cliente y del lado del servidor) o es esto más bien contrario al significado de aplicaciones web HTML5 AJAX interactivas e integradas?
No estoy hablando de generar JS usando PHP ( Ver esta pregunta ). Estoy hablando de generar una vista que haga uso de AngularJS.
También sé que una página de AngularJS debe (o puede) comunicarse con el servidor a través de los servicios REST para obtener datos ( vea esta pregunta ) en lugar de recuperarla de, por ejemplo, variables de PHP directamente. Pero a mí me parece más conveniente diseñar el "marco" para toda la aplicación web por separado en PHP (por ejemplo, compilar el menú principal o manejar autorizaciones / sesiones, etc.)
Parece que puede estar más cómodo con el desarrollo en PHP que esto le impida aprovechar todo el potencial de las aplicaciones web.
De hecho, es posible tener parciales de procesamiento de PHP y vistas completas, pero no lo recomendaría.
Para aprovechar al máximo las posibilidades de HTML y JavaScript para crear una aplicación web, es decir, una página web que actúa más como una aplicación y depende en gran medida del procesamiento del lado del cliente, debe considerar dejar que el cliente mantenga toda la responsabilidad de administrar el estado y la presentación. Esto será más fácil de mantener y será más fácil de usar.
Te recomendaría que te sintieras más cómodo pensando en un enfoque más centrado en API. En lugar de tener una salida de PHP pre-renderizada, y usar angular para la mera manipulación de DOM, debería considerar tener el backend de PHP como salida de los datos que deberían actuar sobre RESTFully, y Angular presentarlo.
Usando PHP para renderizar la vista:
/user/account
if($loggedIn)
{
echo "<p>Logged in as ".$user."</p>";
}
else
{
echo "Please log in.";
}
Cómo se puede resolver el mismo problema con un enfoque centrado en la API al generar JSON de la siguiente manera:
api/auth/
{
authorized:true,
user: {
username: ''Joe'',
securityToken: ''secret''
}
}
y en Angular podrías hacer un get, y manejar el lado del cliente de respuesta.
$http.post("http://example.com/api/auth", {})
.success(function(data) {
$scope.isLoggedIn = data.authorized;
});
Combinar el lado del cliente y el servidor de la forma que usted propuso puede ser adecuado para proyectos más pequeños donde el mantenimiento no es importante y usted es el único autor, pero me inclino más hacia la API centrada, ya que será una separación más correcta de conserns y ser más fácil de mantener