<?php

namespace Refinery29\Piston\Middleware;

use Refinery29\Piston\Response;

class PipelineProcessor
{
    /**
     * @param Subject $subject
     *
     * @return Response
     */
    public function processPipeline(Subject $subject)
    {
        $response = $subject->getSubject()
            ->buildPipeline()
            ->process($subject);

        return $response instanceof Response ? $response : $subject->getResponse();
    }
}

<?php

namespace Refinery29\Piston\Middleware;

use Refinery29\Piston\Response;

abstract class PipelineProcessor
{
    /**
     * @param Subject $subject
     *
     * @return Response
     */
    public static function processPipeline(Subject $subject)
    {
        $response = $subject->getSubject()
            ->buildPipeline()
            ->process($subject);

        return $response instanceof Response ? $response : $subject->getResponse();
    }
}

Make class abstract, function static
Make class abstract, function static
