代码之家  ›  专栏  ›  技术社区  ›  ryeguy

PHP如何与运行在Mono上的C进程通信?

  •  5
  • ryeguy  · 技术社区  · 15 年前

    我正在用PHP编写一个Web应用程序,它有一些性能密集的部分,我想用编译语言重写。我知道我可以通过编写一个用于PHP的C++扩展来更容易地完成这项工作,但是我被C语言这样的管理语言破坏了,所以如果可能的话,我希望避免C++。

    如果我想要一个PHP脚本在一个正在运行的C(mono)进程中执行一个函数,我该怎么做呢?我的第一个猜测是让PHP为C进程打开一个套接字,完成工作,然后关闭该套接字,但我认为这会增加不必要的开销。

    named pipes 能解决这个问题的东西?如果是这样,它们在Windows(我的开发机器)上工作吗?我如何从C_使用它们?

    如果没有,我还有其他的选择吗?

    3 回复  |  直到 9 年前
        1
  •  9
  •   knocte    9 年前
        2
  •  1
  •   miguel.de.icaza    15 年前

    另一种选择是编写一个PHP模块,将Mono运行时嵌入到应用程序中。

    下面是关于在应用程序中嵌入mono运行时的文档,在本例中,它是php:

    http://mono-project.com/Embedding_Mono

        3
  •  0
  •   Pascal MARTIN    15 年前

    有一个 PECL extension for mono ,但它不再被维护(上一个版本是在2003年);所以,从长远来看,这可能是个坏主意…

    如果您想使用.NET,您可能会感兴趣的是 COM and .Net (Windows) ;但它可能对您不好,因为您指定了“mono”,这可能意味着“非Windows”平台:-(

    每次我听到用编译的语言扩展PHP时,它使用的是C(有时,C++),我从来没有用C。

    …所以,你可能找不到你要找的:-(

    就像你说的,有了多个过程,以及它们之间的交流,你可以做些什么……但不确定这是个好主意…

    (不过,将PHP编译到.NET似乎是可能的——但这与您要求的完全相反^^)