【问题标题】:can you still use php as backend for angularjs2 without nodejs for live application?你还可以在没有nodejs的情况下使用php作为angularjs2的后端来进行实时应用吗?
【发布时间】:2016-07-01 03:22:31
【问题描述】:

我不得不承认我对 angularjs2 还是个新手,不过,我想确保自己在深入挖掘之前走的是正确的道路。我想知道是否仍然可以使用 PHP 服务器作为 angularjs2 的后端?因为我仍然不明白 webpack 是如何工作的,以及只提供应用程序需要的东西的想法,就像它从服务器提供服务一样,或者只在构建过程中提供服务?因为它似乎只适用于 index.js 文件......我们仍然能够使用 index.html 作为编译后的代码库索引文件,并且仍然能够在实时应用程序中使用没有 nodejs 的 php 和 js 吗?

【问题讨论】:

  • angularjs、PHP和webpack有什么联系?你打算如何混合 webpack 和 PHP?是的,您可以将任何版本的 angularjs 与 PHP 一起使用,不,只要您不能将 Java 与 PHP 一起使用,您就不能将 webpack 与 PHP 一起使用
  • 简单的答案是肯定的。你可以有任何后端。如果是 rest api,就性能而言,它是 angularjs 或 angular2 的最佳拱门

标签: javascript node.js angular webpack


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    生产版本不需要 NodeJS,因为它只是静态的 html/js/css/image 文件。我使用 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 应用程序,那么在您的 php 文件中为 CORS 允许“选项”是个好主意。

    <?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】:

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

      【讨论】:

        【解决方案4】:

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

        但是,由于服务通常是通过 json 格式构建的,因此使用 php 从 mySql 数据库存储和检索数据有点棘手。与使用 Node 服务器上的 mongoDB 数据库相比,您可能需要几行额外的编码才能以适当的格式读取和写入 json 数据。

        【讨论】:

          【解决方案5】:

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

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

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

          `{"vendors":{"js":"assets/vendors.js"},"app":{"js":"assets/f7133dfe501a7dbe8ebd.js"}}`
          
          • 您现在可以将 assets.json 导入您的 PHP 代码,例如,我在这里使用 Twig。当然,您需要编写一些自定义逻辑来解析 PHP 中的 json 文件。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2020-09-29
            • 2012-02-08
            • 1970-01-01
            • 1970-01-01
            • 2018-07-28
            • 2018-11-02
            • 2011-12-15
            • 2020-09-06
            相关资源
            最近更新 更多