CronExpressionGenerator
v1.10.2
O gerador de expressão de Cron é uma ferramenta bonita para aplicativos PHP. Obviamente, a principal característica deste pacote é a capacidade de gerar expressões CRON.
Gerador de expressões CRON
Expressões pré -construídas
Expressões personalizadas
Bem documentado
Bem testado
Compatível com Laravel
Php 8.0 e acima
Você pode instalar o pacote via compositor:
O compositor requer butschster/cron-expressão-gerador
É isso!
Use butschstercronexpressionGenerator; use croncronexpression; $ gerador = new generator (); // ou $ generator = new gerador (new cronexpression (' * * * *')); // ou $ gerador = generator :: create (); / ou $ gerador = gerador :: create (new cronexpression (' * * * * *'));
$ expressão = $ gerador-> getExpression (); // croncronexpression
echo $ gerador-> toExpression (); // * * * * * eco (string) $ gerador; // * * * * * eco (string) $ gerador-> getExpression (); // * * * * * eco $ gerator-> getExpression ()-> getExpression (); // * * * * *
echo $ gerador-> cron (' * */3 * * *'); // * */3 * * * echo $ gerador-> cron (' * */3 * *')-> everywominutes (); // */2 */3 * * *
// cada minuto $ gerador-> EveryMinute (); // * * * * * // Todo minuto $ gerador // */2 * * * * // A cada dois minutos do gerador $ gerator-> Evertwominutes (); // */2 * * * * // A cada três minutos do gerador // */3 * * * * // A cada quatro minutos do $ gerador-> todos os finais (); // */4 * * * * // A cada cinco minutos do gerador // */5 * * * * // a cada dez minutos do gerador // */10 * * * * // a cada quinze minutos. // */15 * * * * // a cada 00 e 30 minutos. // 0,30 * * * * // Cada minuto $ gerator-> set (novo butschstercronexpressionPartsMinuteSeveryminUte ()); // * * * * * ECHO $ gerador-> set (new butschstercronexpressionPartsMinuteseveryminute (2)); // * */2 * * * // MiniSecho específico $ generator-> set (novo butschstercronexpressionPartsMinutessPecificMinutes (2, 3, 10)); // * 2,3,10 * * * // Entre o MiniSecho $ gerador-> set (novo butschstercronexpressionPartsMinutsBetwerwing Minutes (0, 30)); // * 0-30 * * *
// a cada hora a 00 Minutesecho $ gerador-> horário (); // 0 * * * * // a cada hora a 15 minutos do gerador- gerador-> hourlyat (15); // 15 * * * * // a cada hora a 15, 30, 45 minutos, gerador $ gerador-> hourlyat (15, 30, 45); // 15,30,45 * * * * // A cada duas horas do Gerador // 0 */2 * * * // A cada três horas do Gerador $ gerador-> tudo. // 0 */3 * * * // A cada quatro horas do gerador // 0 */4 * * * // A cada seis horas do gerador // 0 */6 * * * // a cada 1, 2, 3 horas do gerador-> conjunto (novo butschstercronexpressionPartshoursSpecifichours (1, 2, 3)); // * 1,2,3 * * * // A cada três horas do Gerator- Gerator-> Set (novo butschstercronexpressionPartshuryveryhour ()); // * * * * * eco $ gerador-> set (new butschstercronexpressionpartshuryveryhour (3)); // * */3 * * * // Entre o HourseCho $ gerador-> set (novo butschstercronexpressionPartshoursbetweehours (0, 12)); // * 0-12 * * *
// Todos os dias às 00: 00ECHO $ gerador-> Daily (); // 0 0 * * * // todos os dias às 01: 00ECHO $ gerador-> diariamente (1); // 0 1 * * * // todos os dias às 03:00, 15:00, 23: 00ECHO $ gerador-> diariamente (3, 15, 23); // 0 3,15,23 * * * // todos os dias às 13: 00ECHO $ gerador-> Dailyat (13); // 0 13 * * * // todos os dias às 13: 25ECHO $ gerador-> Dailyat (13, 25); // 25 13 * * * // todos os dias às 03:00, 15: 00ECHO $ gerador-> Twedelaily (3, 15); // 0 3,15 * * * // Todos os dias às 03:05, 15: 05ECHO $ gerador-> twikeDailyat (3, 15, 5); // 5 3,15 * * * // Todo mês no último dia às 00: 00ECHO $ gerador-> LastDayofmonth (); // 0 0 l * * // Todo mês no último dia às 12: 00ECHO $ gerador-> LastDayofmonth (12); // 0 12 l * * // Todo mês no último dia às 12: 30ECHO $ gerador-> LastDayofmonth (12, 30); // 30 12 l * * // Todo mês no último dia da semana às 00: 00ECHO $ gerador-> LastWeekdayofmonth (); // 0 0 LW * * // Todo mês no último dia da semana às 12: 00ECHO $ gerador-> LastWeekdayofmonth (12); // 0 12 lw * * // Todo mês no último dia da semana às 12: 30ECHO $ gerador-> LastWeekdayofmonth (12, 30); // 30 12 lw * * // a cada 1, 2, 3 dias de programa $ generator-> set (novo butschstercronexpressionPartsDays Especific Days (1, 2, 3)); // * * 1,2,3 * * ECHO $ gerador-> set (novo butschstercronexpressionPartsDaySeveryday ()); // * * * * * // A cada três dias do Gerator-> set (novo butschstercronexpressionPartsdaySeveryday (3)); // * * */3 * * // Entre Daysecho $ generator-> set (novo butschstercronexpressionPartsDaysBetweendays (0, 12)); // * * 0-12 * * // Último dia do mês do Monthecho $ gerador-> set (novo butschstercronexpressionPartsDaysLastDayofmonth ()); // * * l * *
// Toda semana na segunda-feira, $ generator-> semanalmente (); // 0 0 * * 0 // Toda semana na segunda-feira e quinta-feira $ gerador-> semanalmente (gerador :: segunda-feira, gerador :: quinta-feira); // 0 0 * * 1,4 // Toda semana no WeekDaySecho $ generator-> Daily ()-> Days da semana (); // 0 0 * * 1-5 // Toda semana no fim de semana do Gerador $ Gerador-> Daily ()-> Fins de semana (); // 0 0 * * 6,0 // TODAS AO SEGUNDAÇÃO $ gerator-> Daily ()-> segundas-feiras (); // 0 0 * * 1 // ORHO $ gerator-> WeeklyonMonday (); // ORHO $ gerator-> WeeklyonMonday (8, 6); // 6 8 * * 1 // TODAS TERMONACO $ gerador-> Daily ()-> Terças-feiras (); // 0 0 * * 2 // ORHO $ gerador-> semanal semanal (); // Toda quarta-feira $ gerator-> Daily ()-> quartas-feiras (); // 0 0 * * 3 // ORHO $ gerador-> weeklyonwednesday (); // Toda quinta-feira $ generator-> Daily ()-> quintas-feiras (); // 0 0 * * 4 // ORHO $ gerador-> weeklyonthursday (); // TODAS AS FRIDADECHO $ GERERATER-> DIÁRIO ()-> sextas-feiras (); // 0 0 * * 5 // ORHO $ gerador-> semanalmente // 0 0 * * 6 // ORHO $ gerador-> Weeklyonsaturday (); // Todo Sundayecho $ gerador-> Daily ()-> Sundays (); // 0 0 * * 0 // ORHO $ gerador-> weeklyonsunday (); // Todo Segunda-feira $ generator-> Weeklyon (gerador :: segunda-feira); // 0 0 * * 1 // Toda segunda-feira às 8h Echo $ gerador-> Weeklyon (gerador :: segunda-feira, 8); // 0 8 * * 1 // Toda segunda-feira às 08: 06ECHO $ gerador-> Weeklyon (gerador :: segunda, 8, 6); // 6 8 * * 1 // Todos os dias da semana $ gerator-> set (novo butschstercronexpressionPartsDaysOfWeeKeveryDayofWeek ()); // * * * * * // A cada dois dias de um Weekecho $ gerador-> set (novo butschstercronexpressionPartsDaysOfWeeKeverydayofWeek (2)); // * * * * */2 // Toda segunda-feira, quarta-feira, sexta-feira $ generator-> set (novo butschstercronexpressionPartsDaysOfWeeksPificedDaysOfWeek (Gerador :: Segunda-feira, Gerador :: quarta-feira, gerador :: sexta-feira); // * * * * 1,3,5 // Entre os dias de um Weekecho $ gerador-> set (novo butschstercronexpressionPartsDaysOfWeekBetweendoyofweek (gerador :: segunda-feira, gerador :: sexta-feira)); // * * * * 1-5 // Última segunda-feira de um Weekecho $ generator-> set (novo butschstercronexpressionPartsDaysOfWeekLastDayofWeek ()); // * * * * 1L // última sexta-feira de um Weekecho $ generator-> set (novo butschstercronexpressionPartsDaysOfWeekLastDayofWeek (gerador :: sexta-feira)); // * * * * 5L // Toda primeira segunda-feira de cada mês de me mês gerador-> set (novo butschstercronexpressionPartsDaysOfWeeNhDdayOfWeek ()); // * * * * 1#1 // Cada terceira sexta-feira de cada mês de me mês gerador-> conjunto (novo butschstercronexpressionPartsDaysofWeeNhDdayOfWeek (gerador :: sexta-feira, 3)); // * * * * 5#3
// Todo mês no 1 dia, às 00: 00ECHO $ gerador-> mensal (); // 0 0 1 * * // Todo mês no 1 dia às 12: 00ECHO $ gerador-> mensal (12); // 00 12 1 * * // Todo mês em 1 dia às 12: 30ECHO $ gerador-> mensalmente (12, 30); // 30 12 1 * * // Todo mês no dia 15-st às 12: 00ECHO $ gerador-> Monthlyon (15, 12); // 0 12 15 * * // Todo mês no dia 15-st às 12: 30ECHO $ gerador-> Monthlyon (15, 12, 30); // 30 12 15 * * // Todo mês duas vezes em 15, 24 dias às 00: 00ECHO $ gerador-> Twicemonly (15, 24); // 0 0 15,24 * * // Todo mês duas vezes em 15, 24 dias às 10: 00ECHO $ gerador-> Twicemonly (15, 24, 10); // 0 10 15,24 * * // Todo mês duas vezes em 15, 24 dias às 10: 30ECHO $ gerador-> Twicemonly (15, 24, 10, 30); // 30 10 15,24 * * // Todo mês três vezes em 12, 24, 30 dias às 10: 345ECHO $ gerador-> Dailyat (10, 45)-> DaysOnth (12, 24, 30); // 45 10 12,24,30 * * // A cada trimestre AAAA-01,03,06,09-01 00: 00ECHO $ gerador-> trimestral (); // 0 0 1 1-12/3 *// todos os anos AAAA-SUM-01-01 00: 00ECHO $ gerador-> anualmente (); // 0 0 1 1 *// todos os anos AAAA-04-01 00: 00ECHO $ gerador-> anualmente (gerador :: abr); // 0 0 1 4 *// Todos os anos AAAA-04-05 00: 00ECHO $ gerador-> anualmente (gerador :: abril, 5); // 0 0 5 4 *// Todos os anos AAAA-04-05 08: 00ECHO $ gerador-> anualmente (gerador :: 5 de abril, 8); // 0 8 5 4 *// Todos os anos AAAA-04-05 08: 30ECHO $ gerador-> anualmente (gerador :: 5 de abril, 5, 8, 30); // 30 8 5 4 *// Todo mês de programa $ generator-> set (novo butschstercronexpressionPartsmonthSevermoMonth ()); // * * * * * // A cada dois meses, $ generator-> set (novo butschstercronexpressionPartsmonthSevermoMonth (2)); // * * * */2 * // meses específicos: abril e dezembro $ generator-> set (novo butschstercronexpressionPartsMmonthsSpecific Monthonths (gerador :: abr, gerador :: dez)); // * * * 4,12 * // Entre abril e dezembro $ generator-> set (novo butschstercronexpressionPartsmonthsbetween Months (gerador :: abril, gerador :: dez)); // * * * 4-12 * // trimestrlyecho $ generator-> set (novo butschstercronexpressionPartsmonthsquarterly ()); // * * * 1-12/3 *
$ date = new DateTime ('2021-02-05 12:34:26'); // todos os anos sim-02-05 12: 34echo $ gerador-> on ($ data); // 34 12 5 2 *// ORHO $ gerador-> set (novo butschstercronexpressionPartsDateTime ($ DATE)); // 34 12 5 2 *
use butschstercronexpressionPartsDays -específicos; use butschstercronexpressionPartsDaysOfweekspecificados do dia da semana; use butschstercronexpressionPartshuryveryHour; use butschstercronexpressionparttsminutesemminute; uso; 5,10,15,20,25,30 3,6,9,12 1,3,5,0echo $ gerador-> anual () -> meses (gerador :: mar, gerador :: jun, gerador :: set, gerador :: dez) -> DaysOfmonth (5, 10, 15, 20, 25, 30) -> DaysOfWeek (gerador :: Segunda -feira, gerador :: quarta -feira, gerador :: sexta -feira, gerador :: domingo) -> EverywoHours () -> EveryMinute (); // ORECHO $ GERERATER-> SET (NOVO ESPECÍCIO (GERERADOR :: mar, gerador :: jun, gerador :: set, generator :: dez), novos dias específicos (5, 10, 15, 20, 25, 30), Novo específico DaysOfWeek (gerador :: Segunda -feira, gerador :: quarta -feira, gerador :: sexta EveryMinute () );
Veja: https://github.com/dragonmantank/cron-expression#usage
echo $ gerador-> mensalon (15, 12)-> getExpression ()-> getNextrundate (); // DateTime
<? phpnamespace appConsole; use butschstercronexpressionGenerator; use iluminatatoConsolesChedulingschedule; use iluminatefoundationConsolekernel como consolekernel; use iluminatesupportfacadesdb; classe kernel estende o consolekernel {agendamento protegido (agendamento da agenda de programação (agendamento da agenda de seguradores) $ AGRONGEMENTE) {$ cronograma-> comando ('emails: send Taylor-force')-> cron (gerador :: create ()-> Daily () ); } }
Para criar uma classe de expressão personalizada, você precisa implementar ButschsterCronExpressionPartValueInterface
use butschstercronexpressionPartValueInterface; use o croncronexpression; classe implementa o PartValueInterface {public function updateExpression (cronexpression $ expressão): void {$ expressão-> setpart (cronexpression :: mês, '1-12/3'); } }
Usando
eco butschstercronexpressionGenerator :: create ()-> set (novo trimestrly ()); // * * * 1-12/3 *
use ButschsterCronExpressionPartsDaysSpecificDays;use ButschsterCronExpressionPartsHoursSpecificHours;use ButschsterCronExpressionPartsMinutesSpecificMinutes;use ButschsterCronExpressionPartsMonthsSpecificMonths;use ButschsterCronExpressionPartValueInterface;use CronCronExpression;use DateTimeInterface;class DateTime implementa PartValueInterface {Public Function __construct (private DateTimeInterface $ TIME) { } Função pública Updatexpression (cronexpression $ expressão): void {$ partes = [novo específico formato ('g')), novos dias específicos ((int) $ this-> time-> formato ('j')), novo Monthas específicas ((int) $ this-> time-> formato ('n')) ]; foreach ($ partes como $ parte) {$ parte-> updateExpression ($ expressão); } } }
Usando
eco butschstercronexpressionGenerator :: create ()-> set (new DateTime (new DateTime ('2021-02-05 12:34:26'))); // 34 12 5 2 *
Teste do compositor
butschster
A licença do MIT (MIT). Consulte o arquivo de licença para obter mais informações.