0

例如,如何将数据从一个 cli 应用程序(例如 Ruby 脚本)传递到 PHP 脚本。我的意思是原始数据、文本、二进制文件等。由于使用临时文件的原始数据,参数也很糟糕。我知道的最后一件事是标准输入,标准输出。也许有人知道更好?

4

2 回答 2

2

取决于这些程序的执行方式(相对于彼此)。如果一个停止并启动另一个,stdin/out 甚至转储文件可能会起作用(尽管它可能被认为是蹩脚的,但它确实可以完成工作!),如果有很多数据,您甚至可以考虑创建一个小型数据库SQLite 之类的数据库中的表。这也取决于数据之间传递的数据的易失性要求。

如果存在父/子进程关系,因此父进程启动子进程,您可能会考虑管道/fifo,或共享内存或消息队列或任何其他形式的 IPC。

于 2013-01-15T12:53:44.427 回答
1

你在什么操作系统上?这决定了您可以使用什么。您应该使用平台常用的内容。在 *nix 系统上,我们使用管道 ( |)、套接字和数据文件,具体取决于应用程序。

确实没有一种方法可以做到这一点,它只取决于应用程序的类型和数据的类型。

如果您要移动文本列或 CSV 数据,您可以使用管道或文本文件。

如果您在 Ruby 应用程序之间移动哈希和对象,请使用 JSON 或“Marshall”数据和管道、套接字或文件。

如果您在语言之间移动数据,请使用 JSON、XML 或 YAML 以及这些数据路径之一。

我们经常将 JSON 用于我们的应用程序间数据格式,并编写代码以允许它在设置命令行标志时发出 JSON。这使我们能够轻松地用一个小的 REST 服务包装命令行应用程序并远程调用它们,将它们的结果发布到网络上。

话虽如此,并没有一个硬性规定来说明如何完成任何事情,只要与您的代码保持一致并遵循您正在使用的应用程序的风格即可。

于 2013-01-15T14:56:52.570 回答