A simple Multi-Process programming skeleton written in PHP and learned much from Workerman, which remove the part of Network Event Library, it aims at two aspects by programming personally:
Help us find out PHP Multi-Process programming
Help us find out how Workerman core works
PHPForker是一个PHP多进程编程骨架,借鉴了Workerman诸多优良编程思想,剥离了其中的网络事件库抽象部分,集中围绕多进程编程,为了便于直观的调试以及保持最轻的多进程骨架,所以简单的内嵌了一个基于select多路复用技术的 TCP & UDP Server。为了学习如此优秀的Workerman框架,作者亲自撸了一遍,本项目旨在深入学习和分享:
弄明白PHP多进程编程核心思想
弄明白Workerman内核工作原理
PHPForker is only an experimental work for study, so don't use it in a production environment unless you know what you're doing, it is better to use the official Workerman.
PHPForker只是一个用于学习研究的实验性项目,所以不要在生产环境中使用它,请使用官方Workerman,除非你知道自己在做什么。
composer require blogdaren/phpforker
- >= PHP 5.3
- A POSIX compatible operating system (Linux, OSX, BSD)
- POSIX extensions for PHP
- PCNTL extensions for PHP
<?php
//require_once dirname(__DIR__). '/Autoloader.php';
require_once __DIR__. '/vendor/autoload.php';
use PHPForker\Container;
//imitate...
$totalContainer = 2;
for($i = 1; $i <= $totalContainer; $i++)
{
$name = "demo-" . $i;
$socket_name = "tcp://0.0.0.0:2" . str_pad($i, 3, '0', STR_PAD_LEFT);
$box = new Container($socket_name);
$box->setPublicProps([
'name' => $name,
'count' => 2,
'user' => 'root',
]);
}
Container::start();