我正在用PHP编写一个Web应用程序,它有一些性能密集的部分,我想用编译语言重写。我知道我可以通过为PHP编写C ++扩展来更轻松地完成这项工作,但我有点像C#这样的托管语言,所以我想尽可能避免使用C ++。
如果我想要一个PHP脚本在正在运行的C#(单声道)进程中执行一个函数,我怎么能这样做?我的第一个猜测是让PHP打开C#进程的套接字,完成工作,然后关闭套接字,但我认为这会增加不必要的开销。
named pipes可以解决这个问题吗?如果是这样,它们是否适用于Windows(我的开发机器),以及如何在C#中使用它们?
如果没有,我还有其他选择吗?
答案 0 :(得分:9)
您是否考虑过使用PHP.NET编译器Phalanger?
答案 1 :(得分:1)
另一种选择是编写一个将Mono运行时嵌入应用程序的PHP模块。
以下是有关在应用程序中嵌入Mono运行时的文档,在这种情况下,它将是PHP:
答案 2 :(得分:0)
有一个PECL extension for mono,但不再维护(最后一个版本是在2003年);所以,从长远来看,这个可能是坏主意......
对于更新的内容,搜索php的文档,如果你想使用.NET,你可能会对COM and .Net (Windows)感兴趣;但它可能不适合你,因为你指定“mono”,这可能意味着“非windows”平台: - (
每当我听说使用编译语言扩展PHP时,它都使用C(有时候是C ++);我从来没有使用C#/。NET / mono ...
...所以,你可能找不到你想要的东西: - (
就像你说的那样,通过多个流程,以及这些流程之间的沟通,你可以做点什么......但不确定这是一个好主意......
(虽然编译PHP到.NET似乎是可能的 - 但它与你所要求的^^完全相反)