•  


GitHub - amphp/process: An async process dispatcher for Amp.
Skip to content

An async process dispatcher for Amp.

License

Notifications You must be signed in to change notification settings

amphp/process

Repository files navigation

amphp/process

AMPHP is a collection of event-driven libraries for PHP designed with fibers and concurrency in mind. amphp/process provides an asynchronous process dispatcher that works on all major platforms (including Windows). It makes running child processes simple.

As Windows pipes are file handles and do not allow non-blocking access, this package makes use of a process wrapper , that provides access to these pipes via sockets. On Unix-like systems it uses the standard pipes, as these can be accessed without blocking there. Concurrency is managed by the Revolt event loop.

Latest Release MIT License

Installation

This package can be installed as a Composer dependency.

composer require amphp/process

The package requires PHP 8.1 or later.

Usage

Processes are started with Process::start() :

<?php


require
 __DIR__ . "
/vendor/autoload.php
";

use
 Amp
\
ByteStream
;
use
 Amp
\
Process
\
Process
;

// "echo" is a shell internal command on Windows and doesn't work.

$
command
 = 
DIRECTORY_SEPARATOR
 === "\\" ? "
cmd /c echo Hello World!
" : "
echo 'Hello, world!'
";

$
process
 = 
Process
::
start
(
$
command
);

Amp
\async
(fn () => 
Amp
\
ByteStream
\pipe
(
$
process
->
getStdout
(), 
ByteStream
\getStdout
()));
Amp
\async
(fn () => 
Amp
\
ByteStream
\pipe
(
$
process
->
getStderr
(), 
ByteStream
\getStderr
()));

$
exitCode
 = 
$
process
->
join
();

echo
 "
Process exited with 
{
$
exitCode
}
.
\n";

Custom Working Directory

Processes are started with the working directory of the current process by default. The working directory can be customized to another directory if needed:

$
process
 = 
Amp
\
Process
\
Process
::
start
(
$
command
, workingDirectory: 
'/path/of/your/dreams'
);

Custom Environment Variables

Processes are started with the environment variables of the current process by default. The environment can be customized by passing an associative array mapping variables names to their values:

$
process
 = 
Amp
\
Process
\
Process
::
start
(
$
command
, environment: [
    
'PATH'
 => 
'/usr/bin/local'

]);

Versioning

amphp/process follows the semver semantic versioning specification like all other amphp packages.

Security

If you discover any security related issues, please use the private security issue reporter instead of using the public issue tracker.

License

The MIT License (MIT). Please see LICENSE for more information.

- "漢字路" 한글한자자동변환 서비스는 교육부 고전문헌국역지원사업의 지원으로 구축되었습니다.
- "漢字路" 한글한자자동변환 서비스는 전통문화연구회 "울산대학교한국어처리연구실 옥철영(IT융합전공)교수팀"에서 개발한 한글한자자동변환기를 바탕하여 지속적으로 공동 연구 개발하고 있는 서비스입니다.
- 현재 고유명사(인명, 지명등)을 비롯한 여러 변환오류가 있으며 이를 해결하고자 많은 연구 개발을 진행하고자 하고 있습니다. 이를 인지하시고 다른 곳에서 인용시 한자 변환 결과를 한번 더 검토하시고 사용해 주시기 바랍니다.
- 변환오류 및 건의,문의사항은 juntong@juntong.or.kr로 메일로 보내주시면 감사하겠습니다. .
Copyright ⓒ 2020 By '전통문화연구회(傳統文化硏究會)' All Rights reserved.
 한국   대만   중국   일본