你还可以使用php作为angularjs2的后端而没有nodejs用于实时应用吗?

时间:2016-03-15 15:26:08

标签: javascript node.js angular webpack

我不得不承认我对angularjs2来说还是新手,但是,我想确保自己在深入挖掘之前追求正确的道路。我想知道是否仍然可以使用PHP服务器作为angularjs2的后端?因为我还不了解webpack是如何工作的,以及只提供应用程序需要的东西的想法,就好像它是从服务器提供的服务,还是仅仅是在构建过程中?因为它似乎只适用于index.js文件...我们是否仍然可以使用index.html作为编译的代码库索引文件,并且仍然可以在实时应用程序中使用php而不使用nodejs的js?

5 个答案:

答案 0 :(得分:2)

WebPack和类似的模块捆绑器(如browserify和jspm)将在构建时捆绑您的JS应用程序。这意味着您将没有服务器端语言依赖项。

您只需要在开发计算机和构建计算机上使用Nodej。如果你使用Angular-Universal,你现在需要Nodejs。据称对其他语言的支持即将到来。

所以,是的,您可以使用PHP来托管您的服务器端Rest或json-http服务。

答案 1 :(得分:1)

是的,你可以,Angular2.js是一个前框架,你可以用你选择的语言做背。

答案 2 :(得分:1)

生产版本不需要NodeJS,因为它只是静态的html / js / css /图像文件。我使用PHP作为我的后端服务器。我已经转向使用PHP的Web服务方法,而不是将PHP与我的HTML页面混合以呈现数据。

使用Node / npm的Webpack是模块化项目的绝佳工具。 AngularClass Starter Pack是好的开始,或者有很多与webpack有关的npm项目。 Webpack允许使用浏览器轻松开发/调试。例如,您可以使用webpack单独编写配置文件以进行开发/测试和生产。一个很好的例子就是这个,

export const BASE_URL = ('development' === process.env.ENV)
  ?'http://localhost/service/publisher.php'
  :'https://www.myserver.com/publish/index.php';

基于webpack环境,我可以切换我的php服务器。

如果你正在编写一个HTML5应用程序,那么最好允许使用'选项'在你的CORS的php文件中。

<?php
    header('Access-Control-Allow-Origin: *');
    header("Access-Control-Allow-Headers: Origin, Content-Type, Authorization");
    header("Access-Control-Allow-Methods: GET, POST, PUT, OPTIONS, DELETE");
?>

答案 3 :(得分:0)

是的,使用php后端,甚至使用带有Angular 1或2的mySql数据库也没有限制。

但是,由于服务通常是通过json格式构建的,因此从mySql数据库中使用php存储和检索数据有点棘手。您可能需要几行额外的编码才能读取&amp;以正确的格式编写json数据,例如,在节点服务器上使用mongoDB数据库。

答案 4 :(得分:0)

由于有人已经提到了webpack(这是我最喜欢的工具之一),让我详细解释它是如何工作的,并希望它有所帮助(我使用Slim PHP作为例子)

  • 您的webpack生成前端工件(这是您的前端构建文件和元数据文件)。元数据文件(assets.json)告诉您生成了什么文件以及位置在哪里。

例如,元文件看起来像这样

string[] words = { "text1", "text2", "text3" };
if (words.Any(w => toolStripTextBox1.Text.Contains(w))
{
    // do smth if at least one word is contained
}
  • 您现在可以将assets.json导入您的PHP代码,例如,我在这里使用Twig。当然,您需要编写一些自定义逻辑来解析PHP中的json文件。

enter image description here