![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/app/code/Soon/DataSync/Model/Job/ |
<?php /** * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * @author Hervé Guétin <[email protected]> <@herveguetin> * @copyright Copyright (c) 2017 Agence Soon (http://www.agence-soon.fr) */ namespace Soon\DataSync\Model\Job; use Soon\DataSync\Model\SyncInterface; /** * Class JobAbstract * @package Soon\DataSync\Model\Job * * @method job(JobInterface $job) * @method glob(string $path): SyncInterface * @method dataOfType(string $format, array $config = []): SyncInterface * @method from(string $transfer, array $config = []): SyncInterface * @method fromOnce(string $transfer, array $config = []): SyncInterface * @method to(string $transfer, array $config = []): SyncInterface * @method archive($path = null): SyncInterface * @method treatWith(\Closure $closure): SyncInterface * @method go(): SyncInterface * @method reset() */ abstract class JobAbstract implements JobInterface { /** * @var SyncInterface */ protected $sync; /** * @var array */ private $options; public function __construct( SyncInterface $sync ) { $this->sync = $sync; } /** * Run the job */ public function run() { $this->sync->job($this); $this->sync(); } /** * This method holds the actual business logic for a job */ abstract protected function sync(); /** * @return string * @throws \Exception */ public function getCode(): string { return str_replace('\\', '_', static::class); } /** * @param string $property * @return mixed */ public function which(string $property) { if (property_exists($this, $property)) { return $this->{$property}; } return $this->sync->which($property); } /** * @param array $options */ public function setOptions(array $options) { $this->options = $options; } public function getOptions() { return $this->options; } /** * @param string $key * @return mixed */ public function getOption(string $key) { return (isset ($this->options[$key])) ? $this->options[$key] : null; } /** * @param string $name * @param array $arguments * @return mixed */ function __call($name, $arguments) { return $this->sync->{$name}(...$arguments); } }