【问题标题】:Mix Node.js and PHP?混合 Node.js 和 PHP?
【发布时间】:2013-09-16 15:30:26
【问题描述】:

是否可以使用 PHP 生成一个页面,然后运行 ​​Node.js 对其进行一些编辑?

在 Google 上,我发现了 PHP 和 Node.js 集成的 examples,但它们始终是两个不同的文件,可以与 Ajax 或类似的东西一起使用。

我的目标是以这种方式运行 Node.js(或可以运行 javascript 的东西):

$html = "<html>
            <body>PHP
                <script>document.body.innerHTML = \"Javascript\";</script>
            </body>
         </html>";

$html = run_js($html);

有可能吗?

【问题讨论】:

  • 请解释你为什么要这样做?
  • 从技术上讲,是的,但我不建议这样做。你想做什么?
  • 我从远程服务器获取了一个页面,我有大约 2k 行 JS 来解析和编辑它,我想将操作移动到服务器端而不重写整个脚本。
  • 如果不通过 AJAX,PHP 应该如何与节点通信?这就像认为 PHP 通过隐形线路而不是 TCP/IP 和网络与 MySQL 对话一样。您可以使用 run_js 函数,但它涉及从 PHP 到节点的某种 HTTP 请求。
  • 从技术上讲,这不是一个糟糕的问题,但它缺乏很多上下文。有很多人出于某种原因试图将 PHP 和 JS 放在一起,并且从一开始就提出这个问题 - 你可能会得到一些正确的答案。但是出于您的目的 - 在这种情况下您甚至需要 PHP 吗? Node 能做 PHP 能做的所有事情,如果你只能使用 Node 来实现这一切,为什么还要混合使用呢?

标签: javascript php node.js


【解决方案1】:

没有。不要这样做。这可能是可能的,但这是一个非常糟糕的主意。为您的项目选择一个技术堆栈并坚持下去。

将您的项目拆分到多个技术堆栈上没有任何价值(您希望 Node 做的任何事情都可以在 PHP 中完成,反之亦然),所以它真正所做的只是增加了大量的复杂性而没有实现任何东西。

如果您甚至要考虑将这种复杂性添加到您的系统中,您需要了解其中的含义:这会影响您的性能;它将造成维护和调试的噩梦;它可能会引入奇怪的、难以发现的错误。

简而言之,我真的,真的建议你不要这样做。

如果你想使用 Node.js,那很好;用它。但不要将它混入 PHP 系统中;从头开始一个新项目。

【讨论】:

  • 我的问题只是为了避免重写已经存在的 JS 脚本,我知道最好使用单一语言。
  • 我已经看到了您在上面发布的 cmets,感谢您澄清您在做什么;这个问题现在确实更有意义了。 :) 但是,我的观点是我关于含义的段落仍然适用。为了短期节省时间和精力,您引入了性能瓶颈和长期维护难题。坦率地说,我什至不确定它是否会为你节省那么多时间,因为你必须设置一个 Node 服务器并让它与你的 PHP 代码进行通信。
  • 我补充说我已经使用 phpQuery 在 PHP 中重写了整个 Javascript 脚本。
  • @Spudley,我正在考虑将两种技术混合使用的用例。例如在电子商务应用程序中,从数据库中读取产品目录,node 速度更快,而 php 更适合后端,因为在这方面开发速度更快。
  • @RameshPareek:我还是不同意。必须维护两个平台的缺点超过了拆分两个平台的优点。有些用例我会考虑这样做(并且已经这样做了),但除了极端情况外,可能不适用于您所描述的情况。
【解决方案2】:

如果你真的必须这样做,你可以使用 PHP V8js。 PHP 自带的内置 javascript 引擎。 PHP V8js。不过,我同意另一个答案,即应尽可能避免这种情况。

【讨论】:

    猜你喜欢
    • 2011-05-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2013-04-29
    • 2023-03-05
    • 2017-02-17
    相关资源
    最近更新 更多