404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@3.145.77.68: ~ $
<?php

declare(strict_types=1);

namespace Cron;

use InvalidArgumentException;

/**
 * CRON field factory implementing a flyweight factory.
 *
 * @see http://en.wikipedia.org/wiki/Cron
 */
class FieldFactory implements FieldFactoryInterface
{
    /**
     * @var array Cache of instantiated fields
     */
    private $fields = [];

    /**
     * Get an instance of a field object for a cron expression position.
     *
     * @param int $position CRON expression position value to retrieve
     *
     * @throws InvalidArgumentException if a position is not valid
     */
    public function getField(int $position): FieldInterface
    {
        return $this->fields[$position] ?? $this->fields[$position] = $this->instantiateField($position);
    }

    private function instantiateField(int $position): FieldInterface
    {
        switch ($position) {
            case CronExpression::MINUTE:
                return new MinutesField();
            case CronExpression::HOUR:
                return new HoursField();
            case CronExpression::DAY:
                return new DayOfMonthField();
            case CronExpression::MONTH:
                return new MonthField();
            case CronExpression::WEEKDAY:
                return new DayOfWeekField();
        }

        throw new InvalidArgumentException(
            ($position + 1) . ' is not a valid position'
        );
    }
}

Filemanager

Name Type Size Permission Actions
AbstractField.php File 9.66 KB 0644
CronExpression.php File 19.67 KB 0644
DayOfMonthField.php File 4.77 KB 0644
DayOfWeekField.php File 5.62 KB 0644
FieldFactory.php File 1.37 KB 0644
FieldFactoryInterface.php File 121 B 0644
FieldInterface.php File 1.29 KB 0644
HoursField.php File 6.94 KB 0644
MinutesField.php File 2.62 KB 0644
MonthField.php File 1.3 KB 0644