Skip to content

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 helping us study PHP Multi-Process programming & find out how Workerman core works.

master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

PHPForker

What is it

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 study PHP Multi-Process programming
  • Help us find out how Workerman core works

PHPForker是什么

PHPForker是一个PHP多进程编程骨架,借鉴了Workerman诸多优良编程思想,剥离了其中的网络事件库抽象部分,集中围绕多进程编程,为了便于直观的调试以及保持最轻的多进程骨架,所以简单的内嵌了一个基于select多路复用技术的 TCP & UDP Server。为了学习如此优秀的Workerman框架,金牛座亲自撸了一遍,本项目旨在深入学习和分享:

  • 学习PHP多进程编程思想
  • 学习Workerman内核工作原理

Special Note

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 Workerman.

Installation

composer require blogdaren/phpforker

Prerequisites

  • >= PHP 5.3
  • A POSIX compatible operating system (Linux, OSX, BSD)
  • POSIX extensions for PHP
  • PCNTL extensions for PHP

Usage

<?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();

Screenshot

demo1

demo2

demo3

demo4

demo6

demo5

Related links and thanks

About

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 helping us study PHP Multi-Process programming & find out how Workerman core works.

Topics

Resources

Packages

No packages published

Languages