CronExpressionGenerator
v1.10.2
CRON Expression Generator es una herramienta hermosa para aplicaciones PHP. Por supuesto, la característica principal de este paquete es la capacidad de generar expresiones Cron.
Generador de expresiones cron
Expresiones previas a la construcción
Expresiones personalizadas
Bien documentado
Bien probado
Compatible con Laravel
Php 8.0 y superior
Puede instalar el paquete a través del compositor:
El compositor requiere Butschster/Cron-Expression-Generator
¡Eso es todo!
Use ButschsterCronExpressionGenerator; use Croncronexpression; $ generador = new Generator (); // o $ Generator = New Generator (new Cronexpression (' * * * * *')); // o $ Generator = Generator :: Create ();////;//; / o $ generador = generador :: create (nuevo cronexpression (' * * * * *'));
$ expresión = $ generador-> getExpression (); // Croncronexpression
echo $ generador-> toExpression (); // * * * * * echo (string) $ generador; // * * * * * echo (string) $ generador-> getExpression (); // * * * * * echo $ generador-> getExpression ()-> getExpression (); // * * * * *
echo $ generador-> cron (' * */3 * * *'); // * */3 * * * echo $ generador-> cron (' * */3 * * *')-> EveryTWomInutes (); // */2 */3 * * *
// cada minuto eco $ generador-> EveryMinute (); // * * * * * // Cada generador uniforme de MinuteCo $ // */2 * * * * // Cada dos minutos eco $ generador-> Everytwominutes (); // */2 * * * * // Cada tres minutos eco $ generador-> eythreeMinutes (); // */3 * * * * // Cada cuatro minutos ECHO $ GENERATOR-> EveryfourMinutes (); // */4 * * * * // Cada cinco minutos ECHO $ Generator-> EveryFivemInutes (); // */5 * * * * // Cada diez minutos, eco $ generador-> eythenminutes (); // */10 * * * * // Cada quince minutos eco $ generador-> cada fifteenMinutes (); // */15 * * * * // cada 00 y 30 minutos eco $ generador-> eyos threinTymines (); // 0,30 * * * * // Cada minutocho $ generador-> set (nuevo butschsterCronexpressionPartsMineseveryMinute ()); // * * * * * echo $ generador-> set (new ButschsterCronexpressionPartsMineseveryMinute (2)); // * */2 * * * // Minutes específicos $ generador-> set (nuevo butschsterCronExpressionPartsMinTessPecificMinutes (2, 3, 10)); // * 2,3,10 * * * // Entre MinuteseCo $ Generator-> set (nuevo ButschsterCronexPressionPartsminutesBetMinutes (0, 30)); // * 0-30 * * *
// cada hora a 00 minutos eco $ generador-> Hourly (); // 0 * * * * // cada hora a 15 minutos ECHO $ Generator-> Hourlyat (15); // 15 * * * * // cada hora a las 15, 30, 45 minutos ECHO $ Generator-> Hourlyat (15, 30, 45); // 15,30,45 * * * * // Cada dos horas de eco $ generador-> Everytwohours (); // 0 */2 * * * // Cada tres horas de eco $ generador-> eythreeHours (); // 0 */3 * * * // Cada cuatro horas en el generador $ Generator-> EveryfourHours (); // 0 */4 * * * // cada seis horas de eco $ generador-> eysixhours (); // 0 */6 * * * // Cada 1, 2, 3 horascho-eco $ generador-> set (nuevo butschsterCronexpressionPartShoursSpecifichours (1, 2, 3)); // * 1,2,3 * * * // Cada tres horas ECHO $ Generator-> set (nuevo butschsterCronExpressionPartShourseveryhour ()); // * * * * * echo $ generador-> set (new ButschsterCronExpressionPartSeveryVeryHour (3)); // * */3 * * * // Entre Sougseco $ generador-> set (nuevo butschsterCronExpressionPartShoursBetweurs (0, 12)); // * 0-12 * * *
// todos los días a 00: 00Co $ generador-> diary (); // 0 0 * * * // todos los días a las 01: 00eCo $ Generator-> Daily (1); // 0 1 * * * // todos los días a las 03:00, 15:00, 23: 00Co $ Generator-> Daily (3, 15, 23); // 0 3,15,23 * * * // todos los días a las 13: 00Co $ generador-> Dailyat (13); // 0 13 * * * // todos los días a 13: 25eCho $ generador-> Dailyat (13, 25); // 25 13 * * * // todos los días a las 03:00, 15: 00Co $ generador-> TwateAyily (3, 15); // 0 3,15 * * * // todos los días a las 03:05, 15: 05eCho $ Generator-> TwateAyAlyat (3, 15, 5); // 5 3,15 * * * // todos los meses en el último día a las 00: 00Co $ generador-> LastdayOfMonth (); // 0 0 l * * // todos los meses en el último día a las 12: 00Co $ Generator-> LastdayOfMonth (12); // 0 12 l * * // todos los meses en el último día a las 12: 30eCo $ Generator-> LastdayOfMonth (12, 30); // 30 12 l * * // todos los meses el último día de la semana a las 00: 00Co $ generador-> LastweekdayOfMonth (); // 0 0 lw * * // todos los meses el último día de la semana a las 12: 00Co $ generador-> LastweekdayOfMonth (12); // 0 12 LW * * // Todos los meses el último día de la semana a las 12: 30eCo $ Generator-> LastweekdayOfMonth (12, 30); // 30 12 lw * * // Cada 1, 2, 3 días eco $ generador-> set (nuevo butschsterCronexpressionPartsdaysspecificdays (1, 2, 3)); // * * 1,2,3 * * echo $ generador-> set (nuevo butschstercronexpressionpartsdayseveryday ()); // * * * * * // Cada tres días eco $ generador-> set (nuevo butschstercronexpressionpartsdayseveryday (3)); // * * */3 * * // entre Dayseco $ Generator-> set (nuevo ButschsterCronexPressionPartsdaySBetWeendays (0, 12)); // * * 0-12 * * // Último día del mes de Mese $ generador-> set (nuevo butschsterCronExpressionpartsdayslastdayOfMonth ()); // * * l * *
// todas las semanas el lunesco $ generador-> semanal (); // 0 0 * * 0 // todas las semanas los lunes y jueves ECHO $ Generator-> Weekly (Generator :: Lunes, Generator :: Jueves); // 0 0 * * 1,4 // todas las semanas en WeekdaySeCho $ Generator-> Daily ()-> Weekdays (); // 0 0 * * 1-5 // todas las semanas en WeekendSeco $ Generator-> Daily ()-> Weekends (); // 0 0 * * 6,0 // todos los lunesco $ generador-> diary ()-> lunes (); // 0 0 * * 1 // orecho $ generador-> semanalyonmenday (); // orecho $ generador-> semanalyonmenday (8, 6); // 6 8 * * 1 // todos los martes-eco $ generador-> diary ()-> martes (); // 0 0 * * 2 // Orecho $ Generator-> WeeklyEntuesday (); // Todos los miércoles ECHO $ Generator-> Daily ()-> miércoles (); // 0 0 * * 3 // orecho $ generador-> semanalyonwednesday (); // todos los juevescho $ generador-> diary ()-> jueves (); // 0 0 * * 4 // ORECHO $ GENERATOR-> Weeklyonthursday (); // Todos los viernescho $ generador-> diary ()-> viernes (); // 0 0 * * 5 // orecho $ generador-> semanalyonfriday (); // todos los sábadoscho $ generador-> diary ()-> sábados (); // 0 0 * * 6 // orecho $ generador-> semanalyonsaturday (); // todos los domingos $ generador-> diary ()-> domings (); // 0 0 * * 0 // orecho $ generador-> semanalyonsunday (); // todos los luneseco $ generador-> semanal (generador :: lunes); // 0 0 * * 1 // todos los lunes a las 8 a.m. echo $ generador-> semanal (generador :: lunes, 8); // 0 8 * * 1 // todos los lunes a las 08: 06eCo $ Generator-> Weeklyon (Generador :: Lunes, 8, 6); // 6 8 * * 1 // Todos los días de una semana ECHO $ Generator-> set (nuevo ButschsterCronExpressionPartsdaysofweeKeryDayOfWeek ()); // * * * * * // Cada dos días de una semana ECHO $ Generator-> set (nuevo ButschsterCronexPressionPartsdaysofweeKeryDayOfWeek (2)); // * * * * */2 // todos los lunes, miércoles, viernes-eco $ generador-> set (nuevo butschstercronexpressionpartsdaysofweekspecificdaysofweek (generador :: lunes, generador :: miércoles, generador :: viernes)); // * * * * 1,3,5 // Entre los días de una semana en el generador $ Generator-> set (nuevo ButschsterCronexPressionPartsdaysofweekBetWeendayOfWeek (Generador :: Lunes, Generator :: Friday)); // * * * * 1-5 // el lunes pasado de una semana ECHO $ Generator-> set (nuevo butschsterCronExpressionPartsdaysofweeklastdayofweek ()); // * * * * 1L // El viernes pasado de una semana ECHO $ Generator-> set (nuevo ButschsterCronExpressionPartsdaysofweeklastdayofweek (Generator :: Friday)); // * * * * 5L // Todos los primeros lunes de cada mes de generador $ generador-> set (nuevo butschsterCronExpressionPartsdaysofweeknthdayofweek ()); // * * * * 1#1 // cada tercer viernes de cada mes de Monte $ generador-> set (nuevo butschsterCronexpressionPartsdaysofweeknthdayofweek (generador :: viernes, 3)); // * * * * 5#3
// todos los meses en el día de 1 ° a 00: 00Co $ Generator-> Monthly (); // 0 0 1 * * // todos los meses en el día 1-st a las 12: 00Co $ Generator-> Monthly (12); // 00 12 1 * * // todos los meses en el día de 1 ° a 12: 30eCo $ generador-> mensual (12, 30); // 30 12 1 * * // todos los meses en el día de 15 stes a las 12: 00Co $ Generator-> Monthlyon (15, 12); // 0 12 15 * * // todos los meses en el día de 15 stes a las 12: 30eCo $ Generator-> Monthlyon (15, 12, 30); // 30 12 15 * * // Todos los meses dos veces en 15, 24 días a 00: 00Co $ Generator-> TwiCemonthly (15, 24); // 0 0 15,24 * * // Todos los meses dos veces en 15, 24 días a las 10: 00Co $ generador-> twicemonthly (15, 24, 10); // 0 10 15,24 * * // Todos los meses dos veces en 15, 24 días a 10: 30eCo $ Generator-> TwiCemonthly (15, 24, 10, 30); // 30 10 15,24 * * // Todos los meses tres veces el 12, 24, 30 días a 10: 345eChO $ Generator-> Dailyat (10, 45)-> Días de Month (12, 24, 30); // 45 10 12,24,30 * * // Cada trimestre YYYY-01,03,06,09-01 00: 00ECHO $ Generator-> Quarterly (); // 0 0 1 1-12/3 *// Todos los años yyyy-01-01 00: 00Co $ generador-> anual (); // 0 0 1 1 *// Todos los años yyyy-04-01 00: 00Co $ Generator-> YLYLYON (Generator :: APR); // 0 0 1 4 *// Todos los años yyyy-04-05 00: 00Co $ Generator-> Anuallyon (generador :: abr, 5); // 0 0 5 4 *// Todos los años yyyy-04-05 08: 00Co $ Generator-> Andylyon (Generator :: abr, 5, 8); // 0 8 5 4 *// Todos los años yyyy-04-05 08: 30eCho $ generador-> anuallyon (generador :: abr, 5, 8, 30); // 30 8 5 4 *// cada mes de generador $ generador-> set (nuevo butschstercronexpressionpartsmonthseVersymonth ()); // * * * * * // cada dos meses eco $ generador-> set (nuevo butschsterCronexpressionPartsMonthseVershymonth (2)); // * * * */2 * // meses específicos: abril y diciembreco $ generador-> set (nuevo butschsterCronExpressionPartsMonthsSpecificMonths (Generator :: APR, Generator :: dec)); // * * * 4,12 * // entre abril y diciembreco $ generador-> set (nuevo butschsterCronExpressionPartsMonthsbetweenmonths (Generator :: APR, Generator :: dec)); // * * * 4-12 * // Quarterlyecho $ generador-> set (nuevo butschsterCronExpressionPartsMonthSquarterly ()); // * * * * 1-12/3 *
$ date = new DateTime ('2021-02-05 12:34:26'); // Todos los años aaa-02-05 12: 34eCho $ generador-> on ($ date); // 34 12 5 2 *// orecho $ generador-> set (nuevo butschsterCronExpressionPartsDateTime ($ date)); // 34 12 5 2 *
Use ButschsterCronExpressionPartsdaysSpecificdays; use ButschsterCronexPressionPartsdaySOfWeekSpecificdaySOfWeek; use ButschsterCronExpressionPartShourseVeryHour; use ButSchsterCronexPressionPartSeSeSpenSeSeveryMinuty; use ButschsterChterCraNexPartsSpartsMonthsThsThsMonthsThsThsThsThsThsThsThsThsThsThsThsThsThsThsThsThs; 5,10,15,20,25,30 3,6,9,12 1,3,5,0CO $ generador-> anual () -> meses (generador :: mar, generador :: jun, generador :: sep, generador :: dec) -> Días de Month (5, 10, 15, 20, 25, 30) -> daysofweek (generador :: lunes, generador :: miércoles, generador :: viernes, generador :: domingo) -> EveryTwohours () -> EveryMinute (); // orecho $ generador-> set (nuevo especificaciones específicas (generador :: mar, generador :: jun, generador :: sep, generador :: dec), nuevos días específicos (5, 10, 15, 20, 20, 25, 30), New SpecectdaySOfWeek (Generador :: Lunes, Generador :: Miércoles, Generador :: Viernes, Generador :: Domingo), Nuevo EveryHour (2), Nuevo Todos los minutos () );
Ver: https://github.com/dragonmantank/cron-expression#usage
echo $ generador-> Monthlyon (15, 12)-> getExpression ()-> getNextrundate (); // DateTime
<? Phpnamespace AppConsole; use ButschsterCronexpressionGenerator; use IlluminateConsolesChedulingSchedule; use IlluminateFoundationConsoleKernel como Consolekernel; Use IlluminateUpportFacadesDB; Class Kernel extiende Consolekernel {Anexo de función protegida (cronograma $ programado) {$ programar-> comando ('correos electrónicos: enviar taylor --force')-> cron (generador :: create ()-> diary () ); } }
Para crear una clase de expresión personalizada, necesita implementar ButschsterCronExpressionPartValueInterface
Use ButschsterCronExPressionPartValueInterface; use CronCronexpression; class trimestralmente implementos PartValueInterface {public Function UpdateExpression (Cronexpression $ Expression): void {$ expresion-> setPart (cronexpression :: mes, '1-12/3'); } }
Usando
echo butschsterCronexpressionGenerator :: create ()-> set (new Quarterly ()); // * * * * 1-12/3 *
use ButschsterCronExpressionPartsDaysSpecificDays;use ButschsterCronExpressionPartsHoursSpecificHours;use ButschsterCronExpressionPartsMinutesSpecificMinutes;use ButschsterCronExpressionPartsMonthsSpecificMonths;use ButschsterCronExpressionPartValueInterface;use CronCronExpression;use DateTimeInterface; class DateTime implementa PartValueInterface {Función pública __construct (private DateTimeinterface $ TIME) { } Función pública UpdateExpression (cronexpression $ expresion): void {$ piezas = [new Epecificminutes ((int) $ this-> time-> format ('i')), new SpecifICHours ((int) $ this-> time->>> Formato ('G')), New Specectdays ((int) $ this-> time-> format ('j')), nuevo Especificaciones ((int) $ this-> time-> format ('n')) ]; foreach ($ piezas como $ parte) {$ par-> updateExpression ($ expresión); } } }
Usando
Echo ButschsterCronExpressionGenerator :: Create ()-> set (nuevo DateTime (nuevo DateTime ('2021-02-05 12:34:26'))); // 34 12 5 2 *
prueba del compositor
butchster
La licencia MIT (MIT). Consulte el archivo de licencia para obtener más información.