我应该将 AngularJS 与 PHP 框架混合使用吗?

AngularJS 在交互式 HTML5和模型绑定方面非常强大。另一方面,像 Yii 这样的 PHP 框架支持快速、结构良好、安全和强大的 Web 应用程序开发。这两种技术都为数据访问、迭代和页面布局提供了复杂的手段。

将这两种方法(客户端和服务器端的“页面设置”)混合使用是好的还是坏的做法? 或者这种做法有悖于交互式、无缝的 HTML5 AJAX Web 应用程序的意义?

我不是在谈论使用 PHP (看这个问题)生成 JS-我是在谈论生成一个将使用 AngularJS 的视图。

我还知道 AngularJS 页面应该(或者可以)通过 REST 服务与服务器通信以获取数据(看这个问题) ,而不是直接从例如 PHP 变量中检索数据。但对我来说,用 PHP 单独设计整个 web 应用程序的“框架”似乎更方便(例如,构建主菜单或处理授权/会话等)

105430 次浏览

看起来你可能更喜欢用 PHP 开发,但是这会阻碍你充分利用 web 应用程序的潜力。

让 PHP 呈现部分和整个视图确实是可能的,但我不建议这样做。

为了充分利用 HTML 和 javascript 的可能性来制作一个 web 应用程序,也就是说,一个更像应用程序并且严重依赖客户端渲染的 web 页面,你应该考虑让客户端保持所有管理状态和表示的责任。这将更容易维护,并将更加用户友好。

我建议您使用更加以 API 为中心的方法来进行更舒适的思考。与其让 PHP 输出一个预呈现的视图,并仅仅为了 DOM 操作而使用 angle,不如考虑让 PHP 后端输出应该作用于 RESTFull 的数据,并让 Angular 显示它。

使用 PHP 呈现视图:

/user/account

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

如何通过以 API 为中心的方法输出 JSON 来解决同样的问题:

api/auth/

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

在 Angular 中,您可以执行 get,并处理响应客户端。

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

将客户端和服务器端结合起来的方式可能适合于小型项目,维护并不重要,而且你是单一作者,但我更倾向于以 API 为中心的方式,因为这将更正确地分离关系,并且更容易维护。