| Server IP : 104.26.3.156 / Your IP : 216.73.216.185 Web Server : nginx/1.27.1 System : Linux us-1 5.15.0-131-generic #141-Ubuntu SMP Fri Jan 10 21:18:28 UTC 2025 x86_64 User : vinodai ( 3134) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system,proc_open,popen,parse_ini_file,show_source MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /storage/v1396/wwwindicidolscom/public_html/wp-content/plugins/give/src/FormMigration/ |
Upload File : |
<?php
namespace Give\FormMigration;
use Give\FormMigration\Contracts\FormMigrationStep;
use Give\FormMigration\DataTransferObjects\FormMigrationPayload;
class Pipeline
{
protected $steps = [];
protected $payload;
protected $beforeStep;
protected $afterStep;
public function __construct(array $steps)
{
$this->steps = $steps;
}
public function beforeEach(callable $beforeStep): Pipeline
{
$this->beforeStep = $beforeStep;
return $this;
}
public function afterEach(callable $afterStep): Pipeline
{
$this->afterStep = $afterStep;
return $this;
}
public function process(FormMigrationPayload $payload): StepProcessor
{
$processor = new StepProcessor($payload);
foreach ($this->steps as $stepClass) {
if ($this->beforeStep) call_user_func($this->beforeStep, $stepClass, $payload);
$_payload = unserialize(serialize($payload));
$processor(new $stepClass($payload));
if ($this->afterStep) call_user_func($this->afterStep, $stepClass, $payload, $_payload);
}
return $processor;
}
}