[ Index ] |
PHP Cross Reference of Joomla 4.2.2 documentation |
[Summary view] [Print] [Text view]
1 <?php 2 3 declare(strict_types=1); 4 5 namespace Cron; 6 7 use InvalidArgumentException; 8 9 /** 10 * CRON field factory implementing a flyweight factory. 11 * 12 * @see http://en.wikipedia.org/wiki/Cron 13 */ 14 class FieldFactory implements FieldFactoryInterface 15 { 16 /** 17 * @var array Cache of instantiated fields 18 */ 19 private $fields = []; 20 21 /** 22 * Get an instance of a field object for a cron expression position. 23 * 24 * @param int $position CRON expression position value to retrieve 25 * 26 * @throws InvalidArgumentException if a position is not valid 27 */ 28 public function getField(int $position): FieldInterface 29 { 30 return $this->fields[$position] ?? $this->fields[$position] = $this->instantiateField($position); 31 } 32 33 private function instantiateField(int $position): FieldInterface 34 { 35 switch ($position) { 36 case CronExpression::MINUTE: 37 return new MinutesField(); 38 case CronExpression::HOUR: 39 return new HoursField(); 40 case CronExpression::DAY: 41 return new DayOfMonthField(); 42 case CronExpression::MONTH: 43 return new MonthField(); 44 case CronExpression::WEEKDAY: 45 return new DayOfWeekField(); 46 } 47 48 throw new InvalidArgumentException( 49 ($position + 1) . ' is not a valid position' 50 ); 51 } 52 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Sep 7 05:41:13 2022 | Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer |