V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
xiaoyanbot
V2EX  ›  问与答

为什么感觉 Node(npm)可以很轻松的整合 c++的本地模块的东西;而 PHP 确不可以 , 是因为 PHP 类似于 js,而 PHP 没有 Node 类似的这个技术吗?

  •  
  •   xiaoyanbot · 2020-03-02 20:54:43 +08:00 · 1555 次点击
    这是一个创建于 1733 天前的主题,其中的信息可能已经有所发展或是发生改变。
    10 条回复    2020-03-03 14:22:05 +08:00
    ysc3839
        1
    ysc3839  
       2020-03-02 20:57:19 +08:00 via Android
    可能是因为 Node.js 搞好了配套的编译系统吧? Python 好像也是这样的。但 PHP 要加模块的话得自己折腾编译环境。
    ysc3839
        2
    ysc3839  
       2020-03-02 20:59:20 +08:00 via Android
    还有一种可能是 Node.js 官方为多个平台都提供了预编译的程序,能发布预编译的模块。
    Python 给 macOS 和 Windows 提供了预编译的,也能发布预编译的模块。
    而 PHP 好像只提供了源代码。
    ysc3839
        3
    ysc3839  
       2020-03-02 21:01:48 +08:00 via Android
    刚刚去确认了一下,PHP 有给 Windows 预编译程序。
    crella
        4
    crella  
       2020-03-03 00:15:36 +08:00 via Android
    想了一会儿,只想到几个点

    早期 php 是以 cgi 形式开发的,到现在还可以嵌入到 apache httpd 里。而楼主举例的 nodejs、python 都比较难嵌入到其他基于 c++的程序里。php 在这里妥协了。
    ysc3839
        5
    ysc3839  
       2020-03-03 01:26:03 +08:00
    @crella Node.js 难嵌入是真,目前官方好像都没支持嵌入,Electron 那些应该是自己实现的。但是 Python 很早就官方支持嵌入的。
    翻了一下 Python 的文档,目前能找到的 1.4 的文档里就有嵌入的说明。
    https://docs.python.org/release/1.4/ext/node19.html
    msg7086
        6
    msg7086  
       2020-03-03 01:36:00 +08:00 via Android   ❤️ 1
    不是技术而是主流用途。
    PHP 大规模用在虚拟主机这样的共享环境中,所以大多数应用都是根据这个环境来写的,你总不能要求人在共享服务器上编译吧。
    需求少,自然有动力去折腾的开发者也少了。
    crella
        7
    crella  
       2020-03-03 08:26:37 +08:00 via Android
    @ysc3839 刚才想起来了,apache 有 mod_python 和 mod_ruby,提供类似于 cgi 的功能
    murmur
        8
    murmur  
       2020-03-03 10:03:05 +08:00
    nodejs 就算了,还得装一大堆插件,跟 c#和 python 比差远了,我记得 python 一个 CDLL 就可以搞定问题
    LokiSharp
        9
    LokiSharp  
       2020-03-03 11:22:11 +08:00
    因为。。。PHP 只是个个人主页工具集。。。
    julyclyde
        10
    julyclyde  
       2020-03-03 14:22:05 +08:00
    主要是因为你的感觉是错的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2854 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 06:16 · PVG 14:16 · LAX 22:16 · JFK 01:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.