ste80pa / php-retejs
dev-main
2024-01-29 16:50 UTC
Requires
- php: >=7.0
- ext-json: *
Requires (Dev)
This package is auto-updated.
Last update: 2024-04-29 17:29:01 UTC
README
PHP retejs
Synopsis
PHP implementation of the Engine for ReteJS inspired by D3 Node Engine
Installation
composer require ste80pa/php-retejs
Usage example
<?php declare(strict_types=1); namespace Ste80pa\Retejs\Examples; include_once(__DIR__ . '/../../vendor/autoload.php'); use Ste80pa\Retejs\Engine\Engine; use Ste80pa\Retejs\Engine\EngineResolver; use Ste80pa\Retejs\Engine\Processor; use Ste80pa\Retejs\Engine\ReteLoader; use Ste80pa\Retejs\Engine\VersionComparerEqualOrGreater; use Ste80pa\Retejs\Engine\Worker\WorkerPool; use Ste80pa\Retejs\Examples\Base\Workers\Add; use Ste80pa\Retejs\Examples\Base\Workers\Add2; use Ste80pa\Retejs\Examples\Base\Workers\Number; use Ste80pa\Retejs\Examples\Base\Workers\Number2; use Ste80pa\Retejs\InputOutput\FileReader; // // Engines // $workerPool1 = (new WorkerPool()) ->add('add', new Add()) ->add('number', new Number()); $workerPool2 = (new WorkerPool()) ->add('add', new Add2()) ->add('number', new Number2()); $engine1 = new Engine('demo', '0.1.0', new VersionComparerEqualOrGreater(), $workerPool1); $engine2 = new Engine('demo2', '0.1.0', new VersionComparerEqualOrGreater(), $workerPool2); $engineResolver = (new EngineResolver()) ->add($engine1) ->add($engine2); $reader = new FileReader(); $loader = new ReteLoader(); $processor = new Processor($engineResolver); $result = $processor->process( $loader->load($reader->read(__DIR__ . '/demo.json')), []); echo 'the result is : ', $result->getOutput() . PHP_EOL; $result = $processor->process( $loader->load($reader->read(__DIR__ . '/demo2.json')), [] ); echo 'the result is : ', $result->getOutput() . PHP_EOL;