src/PipelineProcessor.php
protected function doProcessing()
    {
        $this->prepareProcessContext();


        // initialization process pipeline

        $initSteps = $this->initProcessSteps();

        if ( ! empty($initSteps)) {

            $this->context = app(Pipeline::class)
                 ->send($this->context)
                 ->through($initSteps)
                 ->then(function (ProcessContextInterface $context) {

                    return $context;
                 });

            $this->afterInitSteps();
        }


        // main pipeline (actual processing)

        $steps = $this->processSteps();

        if ($this->databaseTransaction) DB::beginTransaction();

        try {

            $this->context = app(Pipeline::class)
                 ->send($this->context)
                 ->through($steps)
                 ->then(function(ProcessContextInterface $context) {

                    if ($this->databaseTransaction) DB::commit();

                    return $context;
                 });

        } catch (Exception $e) {

            if ($this->databaseTransaction) DB::rollBack();

            $this->onExceptionInPipeline($e);

            throw $e;
        }

        $this->afterPipeline();


        $this->populateResult();
    }
protected function doProcessing()
    {
        $this->prepareProcessContext();


        // initialization process pipeline

        $initSteps = $this->initProcessSteps();

        if ( ! empty($initSteps)) {

            $this->context = app(Pipeline::class)
                 ->send($this->context)
                 ->through($initSteps)
                 ->then(function (ProcessContextInterface $context) {

                    return $context;
                 });

            $this->afterInitSteps();
        }


        // main pipeline (actual processing)

        $steps = $this->processSteps();

        if ($this->databaseTransaction) DB::beginTransaction();

        try {

            $this->context = app(Pipeline::class)
                 ->send($this->context)
                 ->through($steps)
                 ->then(function(ProcessContextInterface $context) {

                    if ($this->databaseTransaction) DB::commit();

                    return $context;
                 });

        } catch (Exception $e) {

            if ($this->databaseTransaction) DB::rollBack();

            $this->onExceptionInPipeline($e);

            throw $e;
        }

        $this->afterPipeline();


        $this->populateResult();
    }
protected function doProcessing ( ) { $ this -> prepareProcessContext ( ) ; // initialization process pipeline $ initSteps = $ this -> initProcessSteps ( ) ; if ( ! empty ( $ initSteps ) ) { $ this -> context = app ( Pipeline :: class ) -> send ( $ this -> context ) -> through ( $ initSteps ) -> then ( function ( ProcessContextInterface $ context ) { return $ context ; } ) ; $ this -> afterInitSteps ( ) ; } // main pipeline (actual processing) $ steps = $ this -> processSteps ( ) ; if ( $ this -> databaseTransaction ) DB :: beginTransaction ( ) ; try { $ this -> context = app ( Pipeline :: class ) -> send ( $ this -> context ) -> through ( $ steps ) -> then ( function ( ProcessContextInterface $ context ) { if ( $ this -> databaseTransaction ) DB :: commit ( ) ; return $ context ; } ) ; } catch ( Exception $ e ) { if ( $ this -> databaseTransaction ) DB :: rollBack ( ) ; $ this -> onExceptionInPipeline ( $ e ) ; throw $ e ; } $ this -> afterPipeline ( ) ; $ this -> populateResult ( ) ; }
Performs the actual processing
Performs the actual processing