我应该将AngularJS与PHP框架混合吗?[已关闭]

2022-08-30 06:39:51

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

混合这两种方法(客户端和服务器端“页面设置”)是好还是坏的做法,或者这与交互式,无缝的HTML5 AJAX Web应用程序的含义相反?

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

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


答案 1

看起来你可能更喜欢用PHP开发,你让这阻碍了你充分利用Web应用程序的潜力。

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

要充分利用HTML和javascript的可能性来制作Web应用程序,即一个行为更像应用程序并且严重依赖客户端呈现的网页,您应该考虑让客户端维护管理状态和表示的所有责任。这将更容易维护,并且将更加用户友好。

我建议您以更以API为中心的方法进行更自在的思考。与其让 PHP 输出一个预渲染的视图,并使用 angular 进行纯粹的 DOM 操作,不如考虑让 PHP 后端输出应该 RESTFully 操作的数据,并让 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为中心的方式,因为这将是更正确的conserns分离,并且更容易维护。


答案 2

推荐