i07 / php-simple-threads
A very simplistic approach on parallel processing with PHP
0.1.0
2018-03-05 10:54 UTC
Requires
- php: >=7.0
Requires (Dev)
- jakub-onderka/php-parallel-lint: ^0.9
- phpunit/phpunit: ^5.7
This package is not auto-updated.
Last update: 2025-03-07 23:35:24 UTC
README
A simplistic approach on parallel processing with PHP.
PHPSimpleThreads offers a simple way of starting and handling multiple php-cli processes within your PHP application.
Installation
Installation via composer:
composer install i07/php-simple-threads
Usage
PHPSimpleThreads will execute 'workers' from the workers folder in your project root folder. A basic worker should have the following structure.
include(__DIR__."/../vendor/autoload.php"); class myWorker extends \SimpleThreads\Factory\WorkerFactory { public function doWork($arguments) { //do some work here and return the result of the task $mywork = $this->myWorkFunction($arguments); return $mywork; } private function myWorkFunction($arguments) { //do stuff based on the $arguments return $result; } } new myWorker($myDescription);
save the file as myWorker.php in the workers directory.
Example on how to start the workers:
index.php
include("vendor/autoload.php"); $my_workers = [ [ "id" => "Worker1", "command" => "myWorker", "payload" => "argument-string" ], [ "id" => "Worker2", "command" => "myWorker", "payload" => [ "option1" => "value1", "argument" => "array" ] ] ]; $myPool = new \SimpleThreads\Pool($my_workers); $myPool->run(); // SimpleThreads will hold an object with all workers results, the get the results of all workers: $results = $myPool->getOutput(); var_dump($results);
$results will be an array of objects with all data needed to process the response from each worker.