php process
Compatibility methods
Process 類別元件執行 proc_open 中的指令。
我重新編寫了這個包並分成兩個包。
請使用這些類別。而不是使用這個包。
該包旨在用作單一文件而不是複雜的作曲家包。
<?php
$ proc1 = new Process ( ' sh ' );
$ fd_out = $ proc1 -> setInput ( ' echo HelloWorld ' )
-> pipe ( ' cat ' )
-> pipe ( ' cat ' )
-> pipe ([ ' grep ' , ' Hello ' ])
-> wait ();
$ ret = stream_get_contents ( $ fd_out );→ 閱讀更多使用範例
composer require takuya/process進程將返回緩衝 IO 進行讀/寫
方法將返回流。
<?php
$ proc = new Process ([ ' echo ' , ' HelloWorld ' ]);
$ fd_out = $ proc -> run ();
$ output = stream_get_contents ( $ fd_out );
// you can reuse, re-read output
fseek ( $ fd_out , 0 );
$ str = stream_get_contents ( $ fd_out ); <?php
$ proc = new Process ( ' sh sleep.sh ' );
$ proc -> start ();
echo ' started ' ;
$ proc -> join ();Process#pipe() 可以 PIPE 程式。
隱式連接管道 stdout -> stdin
<?php
$ proc = new Process ([ ' echo ' , ' HelloWorld ' ]);
$ fd_out = $ proc -> pipe ( ' cat ' )
-> pipe ( ' cat ' )
-> pipe ( ' cat ' )
-> pipe ( ' cat ' )
-> wait ();明確管道連接,連接 (Proc1#)stdout -> (Proc2#)stdin
<?php
$ proc1 = new Process ([ ' echo ' , ' HelloWorld ' ]);
$ proc2 = new Process ([ ' cat ' ]);
[ $ p1_out , $ p1_err ] = $ proc1 -> start ();
$ proc2 -> setInput ( $ p1_out );
$ proc2 -> start ();
$ proc2 -> wait ();
$ proc1 -> wait ();注意:先呼叫$proc2->wait() ,以避免長時間鎖定,並行運行兩個進程。原因是Process類別在wait處採用隱式 IOBuffering,因此calling wait()意味著運行流緩衝循環直到進程結束。
不需要額外的包。
需要使用單一檔案src/Process.php 。像這樣寫 require_once 就可以了。
<?php
require_once ' src/Process.php ' ;這個Process class是由vanilla php所寫的。沒有額外的包裹。沒有梨,沒有作曲家,不需要安裝其他軟體包。
在沒有composer.phar或其他套件管理器的情況下使用它,您所需要的只是編寫require_once。
更多用法,請閱讀此 procjet /samples 、 /tests/Features和./docs中的文件。