在 php 中加载 dll 的最佳方法是什么?

What's the best method to load a dll in php?

我正在服务器端使用 CakePHP 开发一个网络应用程序,我需要使用第三方提供的 dll 来访问他们的平台,所以我没有 dll 的源代码,我无法修改它。我已经对此进行了搜索,但还没有找到一种简单的方法来执行此操作。

在 php 中加载 dll 的最佳方法是什么?

我应该构建一个 php 扩展作为第 3 方 dll 的包装器吗?

还有其他方法吗?

提前致谢。

更新

我发现我可以将 dll 用作 COM 对象,但每次客户端需要部署服务器时我都需要在 Windows 上注册 dll,我想要一个解决方案不涉及注册dll。

更新

我尝试注册 dll,但出现错误 ("the entry-point DllRegisterServer was not found"),这意味着它可能未被编译为用作 COM 对象。我认为唯一的选择是创建一个 C/C++ php 扩展来包装 dll 或创建一个 C++/C# COM 对象来包装 dll 并使用 DOTNET php 扩展.

我最终为 dll 实现了一个 .NET COM 可见包装器,我像这样导入了 dll 函数:

[DllImport("dapi.dll", EntryPoint = "#100", PreserveSig = false,
         CallingConvention = CallingConvention.StdCall)]
    public static extern Idapi CreateDapi();

我在 cmd 中使用 regasm.exe 实用程序将 Wrapper 注册为 COM 对象:

regasm /codebase dapiWrapper.dll

在 php 中,我像这样实例化了 COM 对象:

$this->dapiCom = new COM("DapiWrapper.DapiWrapper") or die("Error");