Spamworldpro Mini Shell
Spamworldpro


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/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //home/corals/old/app/code/Soon/DataSync/Model/Job/JobAbstract.php
<?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);
    }
}

Spamworldpro Mini