我不得不承认我对angularjs2来说还是新手,但是,我想确保自己在深入挖掘之前追求正确的道路。我想知道是否仍然可以使用PHP服务器作为angularjs2的后端?因为我还不了解webpack是如何工作的,以及只提供应用程序需要的东西的想法,就好像它是从服务器提供的服务,还是仅仅是在构建过程中?因为它似乎只适用于index.js文件...我们是否仍然可以使用index.html作为编译的代码库索引文件,并且仍然可以在实时应用程序中使用php而不使用nodejs的js?
答案 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作为例子)
例如,元文件看起来像这样
string[] words = { "text1", "text2", "text3" };
if (words.Any(w => toolStripTextBox1.Text.Contains(w))
{
// do smth if at least one word is contained
}