从PHP调用.NET类的最佳方法?

从PHP调用.NET类的最佳方法?,.net,php,com,.net,Php,Com,将PHP应用程序连接到.NET库中的逻辑的最佳选项是什么 从v5.0开始,PHP就支持从PHP脚本调用.NET逻辑。但似乎有很多问题——我无法让它在任意的.NET类中可靠地工作。文档有点小,记录的内容也不太正确。这门课的网上问题很多,php.net上的错误报告也是如此 我已经能够通过COM互操作让PHP连接到.NET,但这需要.NET类是ComVisible。据我所知,由于COM的要求,这只适用于Windows 我听说过,但不知道很多细节。它适用于任意PHP脚本吗?在Linux上工作?它对性能或

将PHP应用程序连接到.NET库中的逻辑的最佳选项是什么

从v5.0开始,PHP就支持从PHP脚本调用.NET逻辑。但似乎有很多问题——我无法让它在任意的.NET类中可靠地工作。文档有点小,记录的内容也不太正确。这门课的网上问题很多,php.net上的错误报告也是如此

我已经能够通过COM互操作让PHP连接到.NET,但这需要.NET类是ComVisible。据我所知,由于COM的要求,这只适用于Windows

我听说过,但不知道很多细节。它适用于任意PHP脚本吗?在Linux上工作?它对性能或运行时有很大影响吗

这样做有意义吗,或者这是你可以做但不应该做的事情之一


编辑:我想了解一下一般情况:有各种各样的.NET类库可用,如果能够从不同的环境(包括PHP)中利用它们,那就太好了。例如加密、日志记录、数据访问、HPC集群的客户端。特定的即时场景是.NET中提供的带有AES加密的ZIP库

Microsoft在Linux上不提供或不支持.NET。如果你不想在Linux上运行.NET代码,那么你应该看看Mono。我不知道PHP5是否支持Mono和MicroSoft.NET,我认为最好的方法是通过COM实现。

使用.NET类和调用.NET方法非常简单,因为它是.NET的PHP编译器。您可以查看这篇文章,这篇文章比较老(2007年),因此可能会有一些过时的例子,但原则适用

在Linux上,Phalanger在Mono上运行良好,这里最大的限制是不能使用本机扩展(来自PHP发行版),这仅在Windows上受支持(Phalanger中的扩展管理器是用C++/CLI构建的,而Mono上不支持C++/CLI)。但您仍然可以使用一些可用的托管扩展


Phalanger在实际版本(2011年2月发布)中的性能比通过FastCGI的PHP5.3.5快约2倍。

NetPhp是一个包装器,可在PHP的com_dotnet扩展上运行,因此您可以调用PHP中的任何.Net程序集,即使它不是com可见的,也可以与.Net framework的任何版本一起使用


您能否提供更多有关希望使用.net类的场景类型的信息?关于上下文和您想在.net类中使用的内容,我都知道Mono。但是我不知道PHP+Mono是否有效或者有意义。COM不是线程安全的,web应用程序是在多线程环境中工作的。。。所以我非常怀疑这是最好的方法。这可能是最简单的方法(在你的单用户开发系统上工作得非常好),但正如爱因斯坦所说:让它尽可能简单,但不要简单。