blogdaren / phpforker
一个用PHP编写的简单多进程编程骨架,从Workerman中吸取了很多经验,移除了网络事件库的部分,通过个人编程实现了以下两个方面的目标:
v1.0.4
2020-03-10 16:49 UTC
Requires
- php: >=5.3
This package is auto-updated.
Last update: 2024-09-24 10:25:21 UTC
README
这是什么?
一个用PHP编写的简单多进程编程骨架,从Workerman中吸取了很多经验,移除了网络事件库的部分,通过个人编程实现了以下两个方面的目标:
帮助我们了解PHP多进程编程
帮助我们了解Workerman核心的工作原理
PHPForker是什么?
PHPForker是一个PHP多进程编程骨架,借鉴了Workerman的许多优秀编程思想,剥离了其中的网络事件库抽象部分,专注于多进程编程。为了便于直观调试和保持最轻的多进程骨架,因此简单内嵌了一个基于select多路复用技术的TCP & UDP Server。为了学习如此优秀的Workerman框架,作者亲自进行了实践,本项目旨在深入学习和分享。
理解PHP多进程编程的核心思想
理解Workerman内核的工作原理
特别说明
PHPForker仅是一个用于学习研究的实验性工作,因此不要在生产环境中使用它,除非您了解自己在做什么,最好使用官方Workerman。
特别说明
PHPForker只是一个用于学习研究的实验性项目,所以不要在生产环境中使用它,请使用官方Workerman,除非你知道自己在做什么。
安装
composer require blogdaren/phpforker
先决条件
- >= PHP 5.3
- POSIX兼容的操作系统(Linux, OSX, BSD)
- PHP的POSIX扩展
- PHP的PCNTL扩展
用法
<?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();