1 | <?php namespace Cerbero\Workflow\Pipes; |
||
11 | abstract class AbstractPipe implements PipeInterface { |
||
12 | |||
13 | /** |
||
14 | * @author Andrea Marco Sartori |
||
15 | * @var Illuminate\Contracts\Container\Container $container Service container. |
||
16 | */ |
||
17 | protected $container; |
||
18 | |||
19 | /** |
||
20 | * Set the dependencies. |
||
21 | * |
||
22 | * @author Andrea Marco Sartori |
||
23 | * @param Illuminate\Contracts\Container\Container $container |
||
24 | * @return void |
||
|
|||
25 | */ |
||
26 | public function __construct(Container $container) |
||
30 | |||
31 | /** |
||
32 | * Handle the given job. |
||
33 | * |
||
34 | * @author Andrea Marco Sartori |
||
35 | * @param mixed $job |
||
36 | * @param Closure $next |
||
37 | * @return mixed |
||
38 | */ |
||
39 | public function handle($job, Closure $next) |
||
40 | { |
||
41 | $this->callBefore($job); |
||
42 | |||
43 | $handled = $next($job); |
||
44 | |||
45 | $this->callAfter($handled, $job); |
||
46 | |||
47 | return $handled; |
||
48 | } |
||
49 | |||
50 | /** |
||
51 | * Call the before method. |
||
52 | * |
||
53 | * @author Andrea Marco Sartori |
||
54 | * @param Cerbero\Jobs\Job $job |
||
55 | * @return void |
||
56 | */ |
||
57 | protected function callBefore($job) |
||
61 | |||
62 | /** |
||
63 | * Call a method if it exists and resolve its dependencies. |
||
64 | * |
||
65 | * @author Andrea Marco Sartori |
||
66 | * @param string $method |
||
67 | * @param array $parameters |
||
68 | * @return void |
||
69 | */ |
||
70 | private function callIfExists($method, array $parameters = []) |
||
71 | { |
||
72 | if(method_exists($this, $method)) |
||
73 | { |
||
74 | $this->container->call([$this, $method], $parameters); |
||
75 | } |
||
76 | } |
||
77 | |||
78 | /** |
||
79 | * Call the after method. |
||
80 | * |
||
81 | * @author Andrea Marco Sartori |
||
82 | * @param mixed $handled |
||
83 | * @param Cerbero\Jobs\Job $job |
||
84 | * @return void |
||
85 | */ |
||
86 | protected function callAfter($handled, $job) |
||
90 | |||
91 | } |
||
92 |
Adding a
@return
annotation to a constructor is not recommended, since a constructor does not have a meaningful return value.Please refer to the PHP core documentation on constructors.