たとえば、Rubyスクリプトなどの1つのCLIアプリケーションからPHPスクリプトにデータを渡す方法。生データ、テキスト、バイナリなどを意味します。一時ファイルを使用した生データのために引数が外れることもあります。どちらが機能するかを私が知っている最後のことは、stdin、stdoutです。多分誰かがもっとよく知っていますか?
2 に答える
それらのプログラムがどのように実行されるか(相互に関連して)に依存します。一方が停止してもう一方を開始した場合、stdin / outまたはファイルのダンプでさえうまくいく可能性があります(それは不完全と見なされるかもしれませんが、それは仕事をします!)、データがたくさんある場合は、小さなデータベースの作成を検討することもできますSQLiteなどのデータベース内のテーブル。これは、データ間で渡されるデータがどれほど不安定であるかという要件にも依存します。
親/子プロセスの関係があり、親が子プロセスを開始する場合は、パイプ/ FIFO、共有メモリ、メッセージキュー、またはその他の形式のIPCを検討できます。
どのOSを使用していますか?それはあなたがいくらか利用できるものを決定します。プラットフォームに共通するものを使用する必要があります。* nixシステムでは|
、アプリケーションに応じて、パイプ()、ソケット、およびデータファイルを使用します。
それを行う方法は実際には1つではなく、アプリケーションの種類とデータの種類によって異なります。
テキストまたはCSVデータの列を移動する場合は、パイプまたはテキストファイルを使用できます。
Rubyアプリ間でハッシュとオブジェクトを移動する場合は、JSONまたは「マーシャル」データとパイプ、ソケット、またはファイルを使用します。
言語間でデータを移動する場合は、JSON、XML、またはYAMLとそれらのデータパスの1つを使用してください。
アプリケーション間のデータ形式には定期的にJSONを使用し、コマンドラインフラグを設定したときにJSONを出力できるようにコードを記述します。これにより、コマンドラインアプリを小さなRESTサービスで簡単にラップしてリモートで呼び出し、結果をWebに公開できます。
とはいえ、何が行われるかを明確に規定する規則はありません。コードと一貫性を保ち、使用しているアプリのスタイルに従うだけです。