__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<?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'
);
}
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| AbstractField.php | File | 9.66 KB | 0664 |
|
| CronExpression.php | File | 20.46 KB | 0664 |
|
| DayOfMonthField.php | File | 4.77 KB | 0664 |
|
| DayOfWeekField.php | File | 5.62 KB | 0664 |
|
| FieldFactory.php | File | 1.37 KB | 0664 |
|
| FieldFactoryInterface.php | File | 121 B | 0664 |
|
| FieldInterface.php | File | 1.29 KB | 0664 |
|
| HoursField.php | File | 6.94 KB | 0664 |
|
| MinutesField.php | File | 2.64 KB | 0664 |
|
| MonthField.php | File | 1.3 KB | 0664 |
|