phlllpe/chain

Lib to create Chain of Responsibility

Maintainers

Details

github.com/phlllpe/chain

Source

Issues

Installs: 14

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Watchers: 1

Forks: 0

Open Issues: 0

pkg:composer/phlllpe/chain

v1.0.0 2021-12-27 22:17 UTC

This package is auto-updated.

Last update: 2025-09-28 06:53:11 UTC


README

Scrutinizer Code Quality Code Coverage Build Status Code Intelligence Status

HOW TO INSTALL

composer req phlllpe/chain

USAGE

  • Create a Handlers, example:
namespace Any\Handler;

use Chain\AbstractHandler;
use Chain\ContextInterface;

class MyHandler extends AbstractHandler 
{
    public function handle(ContextInterface $context)
    {
        // TO DO ANY ACTION HERE, WITH ANY TEST
        if ($context->get('any') == 'HERE') {
            $context->set('myClass', static::class);
        }
        
        return parent::handle($context);
    }
}
  • Define a sequence to setup/analyse your context with your handlers;
namespace Any\Service;

use Chain\Context;
use Any\Handler\{
    MainHandler,
    AddressHandler,
    BudgetHandler,
    FamilyHandler
};

class MyService
{

    public function __invoke()
    {
        $context = new Context();
        $context->set('name', 'Philipe Fernandes');
        
        $mainHandler = new MainHandler();
        $addressHandler = new AddressHandler();
        $budgetHandler = new BudgetHandler();
        $familyHandler = new FamilyHandler();
    
        $mainHandler
            ->setNext($addressHandler)
            ->setNext($budgetHandler)
            ->setNext($familyHandler)
            
        (new Runner())->run($mainHandler, $context);
    }
}