CronExpressionGenerator
v1.10.2
Cron Expression Generator - красивый инструмент для PHP -приложений. Конечно, основной особенностью этого пакета является возможность генерировать выражения Cron.
Cron Expression Generator
Предварительно построенные выражения
Пользовательские выражения
Хорошо задокументировано
Хорошо протестирован
Совместим с Laravel
PHP 8,0 и выше
Вы можете установить пакет через композитор:
Композитор требует генератора Butschster/Cron-Expression
Вот и все!
Используйте ButschsterCronexPressionGenerator; используйте CronCronexPression; $ Generator = new Generator (); // или $ Generator = New Generator (New CroNexPression (' * * * * *')); // или $ Generator = Generator :: Create ();/// / или $ generator = Generator :: Create (New CronexPression (' * * * * *'));
$ Expression = $ Generator-> getExpression (); // croncronexpression
echo $ Generator-> toexpression (); // * * * * * * echo (String) $ Generator; // * * * * * * echo (String) $ Generator-> getExpression (); // * * * * * * echo $ Generator-> getExpression ()-> getExpression (); // * * * * * *
echo $ Generator-> cron (' * */3 * * *' '); // * */3 * * * echo $ generator-> cron (' * */3 * * *')-> waytwominutes (); // */2 */3 * * *
// каждую минуту $ generator-> wayminute (); // * * * * * // Каждый ровный щедрый $ Generator-> wayEVENMINUTE (); // */2 * * * * // каждые две минуты $ generator-> waytwominutes (); // */2 * * * * // каждые три минуты $ Generator-> wanmThreeminutes (); // */3 * * * * // Каждые четыре минуты $ Generator-> everyfourminutes (); // */4 * * * * // каждые пять минут chear $ generator-> wayfiveminutes (); // */5 * * * * // Каждые десять минут $ generator-> everytenminutes (); // */10 * * * * // Каждые пятнадцать минут $ generator-> everyfteenminutes (); // */15 * * * * // Каждое 00 и 30 минут. // 0,30 * * * * // Каждую минуту $ Generator-> SET (новый ButschsterCronexPressionPartsminuteSeveryMinute ()); // * * * * * * echo $ Generator-> set (новый ButschsterCronexpressionPartsminuteseveryMinute (2)); // * */2 * * * // Конкретные минуты $ generator-> set (new ButschstercronexpressionPartsminutesspecificminutes (2, 3, 10)); // * 2,3,10 * * * // между минутами $ generator-> set (новый ButschsterCronexpressionPartsminutesbetweenMinutes (0, 30)); // * 0-30 * * *
// каждый час за 00 минут $ generator-> часовой (); // 0 * * * * // Каждый час за 15 минут $ Generator-> Hourlyat (15); // 15 * * * * // Каждый час в 15, 30, 45 минут cheacho $ generator-> часовой (15, 30, 45); // 15,30,45 * * * * // Каждые два часа $ generator-> wytwohours (); // 0 */2 * * * // Каждые три часа $ Generator-> wayThrehours (); // 0 */3 * * * // каждые четыре часа cheacho $ Generator-> everyfourhours (); // 0 */4 * * * // Каждые шесть часов cheacho $ Generator-> whysixhours (); // 0 */6 * * * // Каждое 1, 2, 3 часа $ Generator-> set (новый ButschsterCronexPressionPartShourspecifichours (1, 2, 3)); // * 1,2,3 * * * // Каждые три часа $ Generator-> set (новый ButschsterCronexPressionPartShourseveryHour ()); // * * * * * * echo $ Generator-> set (новый ButschsterCronexpressionPartShourseveryhour (3)); // * */3 * * * // между часами $ Generator-> set (новый ButschsterCronexpressionPartShoursbetWeeWhours (0, 12)); // * 0-12 * * *
// каждый день по адресу 00: 00echo $ generator-> daily (); // 0 0 * * * // Каждый день в 01: 00ECHO $ Generator-> Daily (1); // 0 1 * * * // Каждый день в 03:00, 15:00, 23: 00echo $ Генератор-> ежедневно (3, 15, 23); // 0 3,15,23 * * * // Каждый день в 13: 00ECHO $ Generator-> DAILYAT (13); // 0 13 * * * // Каждый день в 13:25. // 25 13 * * * // Каждый день в 03:00, 15: 00echo $ generator-> Quiceiantaily (3, 15); // 0 3,15 * * * // Каждый день в 03:05, 15: 05ECHO $ Generator-> BIDEATELAILYAT (3, 15, 5); // 5 3,15 * * * // Каждый месяц в последний день по адресу 00: 00echo $ generator-> lastdayOfmonth (); // 0 0 L * * // Каждый месяц в последний день в 12:00 $ generator-> lastdayOfmonth (12); // 0 12 l * * // Каждый месяц в последний день в 12:30 $ generator-> lastdayOfmonth (12, 30); // 30 12 L * * // Каждый месяц в последний будний день по адресу 00: 00echo $ generator-> last WheekdayOfmonth (); // 0 0 LW * * // Каждый месяц в последний будний день в 12: 00ECHO $ Generator-> LAST WHEEKDAYOFMONTH (12); // 0 12 LW * * // Каждый месяц в последний будний день в 12:30 $ Generator-> Last WheekdayOfmonth (12, 30); // 30 12 LW * * // Каждое 1, 2, 3 дня $ Generator-> SET (новый ButschsterCronexPressionPartsdayspecificifice (1, 2, 3)); // * * 1,2,3 * * echo $ Generator-> set (новый ButschsterCronexPressionPartsDaySeveryday ()); // * * * * * * // Каждые три дня $ Generator-> SET (новый ButschsterCronexPressionPartsDaySeveryday (3)); // * * */3 * * // между Daysecho $ Generator-> set (новый ButschsterCronexPressionPartsdaysbetweedendays (0, 12)); // * * 0-12 * * // Последний день месяца $ Generator-> SET (новый ButschsterCronexPressionPartsdaySlastdayOfmonth ()); // * * l * *
// каждую неделю в понедельник $ Generator-> Weekly (); // 0 0 * * 0 // каждую неделю в понедельник и четверг $ Generator-> Weekly (Generator :: Monday, Generator :: четверг); // 0 0 * * 1,4 // каждую неделю в будние дни генератор $-> Daily ()-> Weekdays (); // 0 0 * * * 1-5 // каждую неделю по выходным $ Generator-> Daily ()-> Weekends (); // 0 0 * * 6,0 // Каждый понедельник $ Generator-> Daily ()-> Mondays (); // 0 0 * * * 1 // orecho $ Generator-> Weeklyonmonday (); // orecho $ Generator-> Weeklyonmonday (8, 6); // 6 8 * * 1 // Каждый вторник $ Generator-> Daily ()-> вторник (); // 0 0 * * 2 // orecho $ Generator-> WeeklyOntuesday (); // каждую среду, $ Generator-> Daily ()-> Среда (); // 0 0 * * 3 // orecho $ Generator-> Weeklyonwednesday (); // Каждый четверг $ generator-> daily ()-> четверга (); // 0 0 * * 4 // orecho $ Generator-> Weeklyonthursday (); // каждую пятницу $ generator-> daily ()-> пятница (); // 0 0 * * 5 // orecho $ Generator-> Weeklyonfriday (); // каждую субботу $ generator-> daily ()-> суббота (); // 0 0 * * 6 // orecho $ Generator-> WeeklyonsatureDay (); // Каждое воскресенье $ Generator-> Daily ()-> Sundays (); // 0 0 * * 0 // orecho $ Generator-> WeeklyOnsunday (); // Каждый понедельник $ Generator-> Weeklyon (Generator :: Monday); // 0 0 * * 1 // Каждый понедельник в 8 утра echo $ Generator-> Weeklyon (Generator :: Monday, 8); // 0 8 * * 1 // Каждый понедельник в 08: 06ECHO $ Generator-> Weeklyon (Generator :: понедельник, 8, 6); // 6 8 * * 1 // Каждый день weekecho $ Generator-> set (новый ButschsterCronexpressionPartsdaysOfWeeKeveryDayOfweek ()); // * * * * * // Каждые два дня в неделю $ Generator-> SET (новый ButschsterCronexPressionPartsdaysOfWeeKeveryDayOfweek (2)); // * * * * * */2 // Каждый понедельник, среда, пятница $ Generator-> SET (новый ButschsterCronexPressionPartsdaysOfWeeKseCificeSOFWEEK (Generator :: Monday, Generator :: Среда, генератор :: пятница)); // * * * * * 1,3,5 // между днями недели $ Generator-> SET (новый ButschsterCronexPressionPartsdaysOfweekbetweEndayOfweek (Генератор :: понедельник, генератор :: пятница)); // * * * * * 1-5 // в последний понедельник weekecho $ Generator-> set (новый ButschsterCronexpressionPartsdaysofweeklastdayOfweek ()); // * * * * * 1L // в прошлую пятницу weekecho $ Generator-> set (новый ButschsterCronexpressionPartsdaysofweeklastdayOfweek (Генератор :: пятница)); // * * * * 5L // Каждый первый понедельник каждого месяца $ Generator-> set (новый ButschsterCronexPressionPartsdaysOfWeeKnthdayOfweek ()); // * * * * * 1#1 // Каждую третью пятницу каждого месяца $ Generator-> SET (новый ButschsterCronexPressionPartsdaysOfWeeKnthdayOfweek (Генератор :: пятница, 3)); // * * * * 5#3
// каждый месяц в 1-й день по адресу 00: 00echo $ Generator-> Monthly (); // 0 0 1 * * // Каждый месяц на 1-й день в 12:00 $ Generator-> Monthly (12); // 00 12 1 * * // Каждый месяц на 1-й день в 12:30 $ Generator-> месячный (12, 30); // 30 12 1 * * // Каждый месяц на 15-й день в 12:00 $ Generator-> Monthlyon (15, 12); // 0 12 15 * * // Каждый месяц в 15-й день в 12:30 $ Generator-> Monthlyon (15, 12, 30); // 30 12 15 * * // Каждый месяц два раза на 15, 24 дня в 00: 00эхо $ Generator-> Twicemonthly (15, 24); // 0 0 15,24 * * // Каждый месяц два раза на 15, 24 дня в 10: 00эхо $ Generator-> Twicemonthly (15, 24, 10); // 0 10 15,24 * * // Каждый месяц два раза на 15, 24 дня в 10: 30) Генератор $-> Twicemonthly (15, 24, 10, 30); // 30 10 15,24 * * // Каждый месяц три раза на 12, 24, 30 дней в 10: 345ECHO $ Generator-> Dailyat (10, 45)-> DaysOfmonth (12, 24, 30); // 45 10 12,24,30 * * // Каждый квартал yyyy-01,03,06,09-01 00: 00echo $ Generator-> Quarterly (); // 0 0 1 1-12/3 *// Каждый год yyyy-01-01 00: 00echo $ generator-> yearly (); // 0 0 1 1 *// Каждый год yyyy-04-01 00: 00echo $ generator-> Годовой (Generator :: Apr); // 0 0 1 4 *// Каждый год yyyy-04-05 00: 00echo $ Generator-> Годовой (Generator :: Apr, 5); // 0 0 5 4 *// Каждый год yyyy-04-05 08: 00echo $ Generator-> Годовой (Generator :: Apr, 5, 8); // 0 8 5 4 *// Каждый год yyyy-04-05 08: 30ECHO $ Generator-> Годовой (Generator :: Apr, 5, 8, 30); // 30 8 5 4 *// Каждый месяц $ generator-> set (новый ButschsterCronexpressionPartsmonthseverymonth ()); // * * * * * * // Каждые два месяца $ Generator-> set (новый ButschsterCronexpressionPartsmonthseverymonth (2)); // * * * */2 * // Конкретные месяцы: апрель и декабрьский генератор $-> SET (новый ButschsterCronexPressionPartsmonthspecificmonths (Generator :: Apr, Generator :: Dec)); // * * * * 4,12 * // в период с апреля и декабрь. // * * * * 4-12 * // Quarterlyecho $ Generator-> set (новый ButschsterCronexPressionPartsMonthSquarterly ()); // * * * 1-12/3 *
$ date = new DateTime ('2021-02-05 12:34:26'); // каждый год yyyy-02-05 12: 34Echo $ generator-> on ($ date); // 34 12 5 2 *// orecho $ generator-> set (новый ButschsterCronexPressionPartsDateTime ($ date)); // 34 12 5 2 *
Использовать ButschsterCronexPressionPartsdayspecificdays; использование ButschsterCronexpressionPartsdaysOfWeeksPecificeSpeekweek; Использование ButschsterCronexPressionPartShourseveryhour; use butschstercronexpressionPartsminuteSememinute; use ButschstercresspresspresspressionSminTheSememinute; 5,10,15,20,25,30 3,6,9,12 1,3,5,5,0ECHO $ Generator-> Годовой () -> Месяцы (генератор :: mar, генератор :: Jun, генератор :: Sep, Generator :: Dec) -> Дни дни (5, 10, 15, 20, 25, 30) -> DaysOfweek (Генератор :: понедельник, генератор :: Среда, генератор :: пятница, генератор :: воскресенье) -> waytwohours () -> wayminute (); // orecho $ generator-> set (new completymonths (generator :: mar, генератор :: jun, генератор :: sep, генератор :: dec), новые конкретные дни (5, 10, 15, 20, 25, 30), New CompletyDaysOfweek (Generator :: Monday, Generator :: Среда, генератор :: пятница, генератор :: воскресенье), New Camphour (2), новый Wayminute () );
См.: Https://github.com/dragonmantank/cron-expression#usage
echo $ Generator-> Monthlyon (15, 12)-> getExpression ()-> getNextrundate (); // DateTime
<? PhpNamespace AppConsole; Использование ButschsterCronexPressionGenerator; Используйте IlluminateConsoleschEdulingSchedule; Используйте illuminateFoundationConsoleKernel в качестве консоликернела; Использовать иллюминации SuperPortFacadesdb; класс endels extends endends endels explekernel {Защищенное расписание (расписание $ wareders) {$ grade-> command ('Электронные письма: отправить Taylor-force')-> cron (generator :: create ()-> daily () ); } }
Для создания пользовательского класса выражения вам необходимо реализовать ButschsterCronExpressionPartValueInterface
Использовать butschstercronexpressionPartValueInterface; используйте CronCronexPression; Классовая квартальная реализация partvalueInterface {public function updateExpression (cronexpression $ выражение): void {$ Expression-> setPart (cronexpression :: месяц, 1-12/3 '); } }
С использованием
echo butschstercronexpressiongenerator :: create ()-> set (new Quarterly ()); // * * * 1-12/3 *
Использовать ButschsterCronexPressionPartsdaysSpecificdays; использование ButschsterCronexpressionPartShoursSpecifichours; использование butschstercronexpressionPartsminutesspecificminutes; use butschstercronexpressionPartsmonthSpecificmonths; useShsterCressionParsePressionParsePressionParsePressionParsePressionParceSpressionParsePressionParspressionPartSmonthSpecificmonths; DateTimeInterface; Class DateTime реализует partvalueInterface {public function __construct (Private DateTimeInterface $ Time) { } public Function UpdateExpression (Cronexpression $ Expression): void {$ parts = [new Specianminutes ((int) $ this-> time-> format ('i')), новые Specifichours ((int) $ this-> time-> Format ('g')), новые конкретные дни ((int) $ this-> time-> format ('j')), new Специальные моны ((int) $ this-> time-> format ('n')) ]; foreach ($ parts as $ part) {$ part-> updateExpression ($ Expression); } } }
С использованием
echo butschstercronexpressionGenerator :: create ()-> set (new DateTime (new DateTime ('2021-02-05 12:34:26'))); // 34 12 5 2 *
Тест композитора
Бутшстер
Лицензия MIT (MIT). Пожалуйста, смотрите файл лицензии для получения дополнительной информации.