/scion

A processing model to implement nonbloking HTTP server

Primary LanguagePHPGNU General Public License v3.0GPL-3.0

scion

Build Status Total Downloads License

A processing model to implement nonbloking server

It is verey common in HTTP

It merges Middlewares and View

Concepts

  • Process
  • Unit
  • Dataflow

Process

Process is a php function

Unit

Unit is a list of process.

An unit add a login and flow to process.

Default flow is sequensial, so, all process executed sequensially.

Labeled process

You may label a process for an special goal.

Build in label:

  • condition: jumbs to the end of unit if the return value is false.

Note: condition processes are not joined to the data flow, but handnle flows.

Dataflow

TO send data to the successor processes a container is used.

Each process can access resources which produced in previus process.

The backward data flow is generated by return values.

How to install

composer install pluf/scion

Quick start

Create a simple index.php

add the following code

<?php
$unitTracker = new UnitTracker([
	function($a, $b){
		return $a+$b;
	}
]);
echo 'result is:' . $unitTracker->doProcess(['a'=>1, 'b'=>4]);

run the code

php index.php

The resullt will be:

$>php index.php
result is: 5
$>

Learn More

Learn more at these links:

Contributors

Please see CONTRIBUTING for details.

Code Contributors

This project exists thanks to all the people who contribute. Contribute.