PHP 和 C 守护程序之间最有效的进程间调用


most efficient inter-process call between PHP and C daemon

我有一个由PHP支持的REST API,它调用了一个C程序。 根据输入,C 程序返回 JSON 数据,PHP 读取输出并直接将其发送回客户端。

代码本质上是:

$command = $binary . " " . $parameters;
$output = shell_exec($command);
echo $output;

对于 API 的每次调用,PHP 都会启动程序,执行一些处理并结束。

我想通过使 C 程序作为守护程序运行来提高效率,然后让 PHP 后端调用这个守护进程。

另外,我可能正在迁移到Python Web框架,所以我想要从客户端跨平台的东西。

我的直觉反应是简单地通过套接字进行操作,因为那时我可以将守护程序放在任何地方(在可预见的未来,它将位于同一个 Web 服务器上,但我最终可以将其移开)。 但是套接字是否足够有效,或者是否有其他被认为是更好的做法?

如果不更多地了解您的 C 程序,就很难回答这个问题。

绝对值得检查的一件事是创建PHP扩展。

它不是跨平台的,但你可以编写类似于 Python 或 Ruby 的扩展,扩展部分实际上只是围绕你的 C 程序的一个小骨架,而且编写起来真的很容易。