����JFIF��x�x����'
Server IP : 66.29.137.217 / Your IP : 3.137.150.203 Web Server : LiteSpeed System : Linux premium294.web-hosting.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64 User : gltevjme ( 1095) PHP Version : 7.0.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/gltevjme/bofirm.gltechlimited.com/vendor/league/pipeline/docs/ |
Upload File : |
--- layout: default permalink: /usage/ title: Usage --- # Using League\Pipeline ## Basic Example ~~~php use League\Pipeline\Pipeline; class TimesTwoStage { public function __invoke($payload) { return $payload * 2; } } class AddOneStage { public function __invoke($payload) { return $payload + 1; } } $pipeline = (new Pipeline) ->pipe(new TimeTwoStage) ->pipe(new AddOneStage); // Returns 21 $pipeline->process(10); ~~~ ## Re-usable Pipelines Because the PipelineInterface is an extension of the StageInterface pipelines can be re-used as stages. This creates a highly composable model to create complex execution patterns while keeping the cognitive load low. For example, if we'd want to compose a pipeline to process API calls, we'd create something along these lines: ~~~php $processApiRequest = (new Pipeline) ->pipe(new ExecuteHttpRequest) // 2 ->pipe(new ParseJsonResponse); // 3 $pipeline = (new Pipeline) ->pipe(new ConvertToPsr7Request) // 1 ->pipe($processApiRequest) // (2,3) ->pipe(new ConvertToResponseDto); // 4 $pipeline->process(new DeleteBlogPost($postId)); ~~~ ## Pipeline Builders Because Pipelines themselves are immutable, pipeline builders are introduced to facilitate distributed composition of a pipeline. The PipelineBuilder's collect stages and allow you to create a pipelines at any given time. ~~~php use League\Pipeline\PipelineBuilder; // Prepare the builder $pipelineBuilder = (new PipelineBuilder) ->add(new LogicalStage) ->add(new AnotherStage) ->add(new LastStage); // Build the pipeline $pipeline = $pipelineBuilder->build(); ~~~ ## Exception handling This package is completely transparent when dealing with exception. In no case will this package catch an exception or silence an error. Exception should be dealt with on a per-case basis. Either inside a __stage__ or at time when the pipeline processes a payload. ~~~php $pipeline = (new Pipeline) ->pipe(function () { throw new LogicException(); }); try { $pipeline->process($payload); } catch(LogicException $e) { // Handle the exception. } ~~~