CronExpressionGenerator
v1.10.2
Cron Expressionジェネレーターは、PHPアプリケーション用の美しいツールです。もちろん、このパッケージの主な機能は、Cron式を生成する機能です。
Cron Expressionsジェネレーター
事前に構築された表現
カスタム式
よく文書化されています
よくテストされています
Laravelと互換性があります
PHP 8.0以上
Composer経由でパッケージをインストールできます。
作曲家には、butschster/cron-expression-generatorが必要です
それでおしまい!
butschstercronexpressiongenerator;を使用します; croncronexpression; $ generator = new Generator(); //または$ generator = new Generator(new Cronexpression( ' * * * * *')); //または$ generator :: create(); // create(); // 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 * *') - > everytwominutes(); // */2 */3 * * *
// everymentyecho $ generator-> everyminute(); // * * * * //すべてのventecho $ generator-> everevenminute(); // */2 * * * * // 2 minutesecho $ generator-> everytwominutes(); // */2 * * * * // 3 minutesecho $ generator-> everyThreeMinutes(); // */3 * * * * // 4 minuterecho $ generator-> everyfourminutes(); // */4 * * * // 5分間ごとにgenerator-> everyfiveminutes(); // */5 * * * * // 10 minulesecho $ generator-> everytenminutes(); // */10 * * * * //すべての15分間$ generator-> everyfifteenminutes(); // */15 * * * * //すべての00および30 minutereCho $ generator-> everythertyminutes(); // 0,30 * * * * // every minuteecho $ generator-> set(new butschstercronexpressionpartsminuteseveryminute()); // * * * * * echo $ generator-> set(new butschstercronexpressionpartsminuteseveryminute(2)); // * */2 * * * //特定のMinutesEcho $ generator-> set(new butschstercronexpressionpartsminutesspecificminutes(2、3、10)); // * 2,3,10 * * * // MinutesEcho $ generator-> set(new butschstercronexpressionpartsminutesbetweenminutes(0、30)); // * 0-30 * * *
// 00 minuterecho $ generator-> hourly()で1時間ごとに; // 0 * * * * // 15分で1時間ごとに15分間$ generator-> hourlyat(15); // 15 * * * * // 15、30、45 MinulesEcho $ generator-> hourlyat(15、30、45)で1時間ごとに; // 15,30,45 * * * * // 2時間ごとにecho $ generator-> everytwohours(); // 0 */2 * * * // 3時間ごとにgenerator-> everythreehours(); // 0 */3 * * * // 4時間ごとに発電機 - > everyfourhours(); // 0 */4 * * // 6時間ごとに発電機 - > everysixhours(); // 0 */6 * * * // 1、2、3 Houlesecho $ generator-> set(new butschstercronexpressionpartshoursspecifichours(1、2、3)); // * 1,2,3 * * * // 3時間ごとに$ generator-> set(new butschstercronexpressionpartshourseveryhour()); // * * * * * echo $ generator-> set(new butschstercronexpressionpartshourseveryhour(3)); // * */3 * * * // hoursecho $ generator-> set(new butschstercronexpressionpartshoursbetweenhours(0、12)); // * 0-12 * * *
//毎日00:00echo $ generator-> daily(); // 0 0 * * * //毎日01:00echo $ generator-> daily(1); // 0 1 * * * //毎日03:00、15:00、23:00echo $ generator-> Daily(3、15、23); // 0 3,15,23 * * * * //毎日13:00echo $ generator-> dailyat(13); // 0 13 * * * //毎日13:25:generator-> dailyat(13、25); // 25 13 * * * //毎日03:00、15:00echo $ generator-> twicedaily(3、15); // 0 3,15 * * * * //毎日03:05、15:05ECHO $ generator-> twicedailyat(3、15、5); // 5 3,15 * * * //最終日の毎月00:00ECHO $ generator-> lastDayofmonth(); // 0 0 l * * //最終日12:00echo $ generator-> lastDayofmonth(12)に毎月; // 0 12 l * * //最終日の毎月12:30:30ECHO $ GENERATOR-> LASTDAYOFMONTH(12、30); // 30 12 l * * //毎月、00:00echo $ generator-> lastweekdayofmonth()に毎月毎月; // 0 0 lw * * //最後の平日の12:00echo $ generator-> lastweekdayofmonth(12)に毎月; // 0 12 lw * * //毎月12:30:30ECHO $ generator-> lastweekdayofmonth(12、30)の毎月(12、30); // 30 12 lw * * // 1、2、3 daysecho $ generator-> set(new butschstercronexpressionPartsdaysspecificdays(1、2、3)); // * * 1,2,3 * * echo $ generator-> set(new butschstercronexpressionpartsdayseveryday()); // * * * * // 3 daysecho $ generator-> set(new butschstercronexpressionpartsdayseveryday(3)); // * * */3 * * // Daysecho $ generator-> set(new butschstercronexpressionpartsdaysbetweendays(0、12))の間。 // * * 0-12 * * //最終日の月の日ECHO $ generator-> set(new butschstercronexpressionpartsdayslast dayofmonth()); // * * l * *
//毎週MondayeCho $ generator-> weekly(); // 0 0 * * 0 //毎週月曜日と木曜日に発電機 - > weekly(ジェネレーター::月曜日、ジェネレーター::木曜日); // 0 0 * * 1,4 //毎週weekdaysecho $ generator-> daily() - > weekdays(); // 0 0 * * 1-5 //週末に毎週secho $ generator-> daily() - > weekends(); // 0 0 * * 6,0 // // 0 0 * * 1 // orecho $ generator-> weeklyonmonday(); // orecho $ generator-> weeklyonmonday(8、6); // 6 8 * * 1 // // 0 0 * * 2 // orecho $ generator-> weeklyontuesday(); //毎週水曜日のcho $ generator-> daily() - >水曜日(); // 0 0 * * 3 // orecho $ generator-> weeklyonwednesday(); //毎週木曜日のcho $ generator-> daily() - > thursdays(); // 0 0 * * 4 // orecho $ generator-> weeklyonthursday(); // everyfuriedecho $ generator-> daily() - > fridays(); // 0 0 * * 5 // orecho $ generator-> weeklyonfriday(); // // 0 0 * 6 // orecho $ generator-> weeklyonsaturday(); // every Sundayecho $ generator-> daily() - > sundays(); // 0 0 * * 0 // orecho $ generator-> weeklyonsunday(); // every mondayecho $ generator-> weeklyon(generator :: monday); // 0 0 * * 1 //毎週月曜日の午前8時のecho $ generator-> weeklyon(ジェネレーター::月曜日8); // 0 8 * * 1 //毎週月曜日08:06:06ECHO $ GENERATOR-> WEEKLYON(GENERATOR :: MONDACE、8、6); // 6 8 * * 1 //毎日1週間のeCHO $ generator-> set(new butschstercronexpressionPartsdaysdaysofweekeverydaydayofweek()); // * * * * // 2日ごとの2日ごとにECHO $ generator-> set(new butschstercronexpressionPartsdaysofweekeverydayofweek(2)); // * * * * */2 //毎週月曜日、水曜日、金曜日にcho $ generator-> set(new butschstercronexpressionpartsdaysofweekspecificdaysofweek(ジェネレーター::月曜日、ジェネレーター::水曜日、ジェネレーター::金曜日)); // * * * * 1,3,5 //週の間にeCho $ generator-> set(new butschstercronexpressionpartsdaysofweekbetweendayofweek(ジェネレーター::月曜日、ジェネレーター::金曜日)); // * * * * 1-5 //先週の月曜日、weekecho $ generator-> set(new butschstercronexpressionpartsdaysofweeklastdayofweek()); // * * * * * * * * * * * * * * *週金曜日の金曜日の金曜日、generator-> set(new butschstercronexpressionpartsdaysofweeklastdayofweek(generator ::金曜日)); // * * * * 5l //毎月の最初の月曜日に毎月の最初の月曜日ECHO $ generator-> set(new butschstercronexpressionPartsdaysofweeknthdayofweek()); // * * * 1#1 //毎月第3金曜日に毎月の金曜日にECHO $ generator-> set(new butschstercronexpressionPartsdaysdaysdaysdaysdaysdayofweek(Generator :: Friday、3)); // * * * 5#3
//毎月1日1日00:00ECHO $ GENERATOR-> monthly(); // 0 0 1 * * //毎月1秒の12:00echo $ generator-> monthly(12); // 00 12 1 * * //毎月12:30:30ECHO $ generator-> monthly(12、30)の1秒の1日。 // 30 12 1 * * //毎月15秒の12日目の12:00ECHO $ generator-> monthlyon(15、12); // 0 12 15 * * // 12:30:30ECHO $ GENERATOR-> monthlyon(15、12、30)の15秒の15秒の毎月; // 30 12 15 * * //毎月2回15、24日00:00echo $ generator-> twicemonthly(15、24); // 0 0 15,24 * * //毎月2回、15、24日10:00echo $ generator-> twicemonthly(15、24、10); // 0 10 15,24 * * //毎月2回、15、24日10:30:30:generator-> twicemonthly(15、24、10、30); // 30 10 15,24 * * //毎月、12、24、30日10:345ECHO $ GENERATOR-> DAYALAT(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-> yearlyon(generator :: apr); // 0 0 1 4 *//毎年yyyy-04-05 00:00echo $ generator-> yearlyon(generator :: apr、5); // 0 0 5 4 *//毎年yyyy-04-05 08:00echo $ generator-> yeanlyon(generator :: apr、5、8); // 0 8 5 4 *//毎年Yyyy-04-05 08:30ECHO $ GENERATOR-> YEARLYON(GENERATOR :: APR、5、8、30); // 30 8 5 4 *//毎月cheo $ generator-> set(new butschstercronexpressionpartsmonthseverymonth()); // * * * * // 2ヶ月ごとにcheo $ generator-> set(new butschstercronexpressionpartsmonthseverymonth(2)); // * * * */2 * //特定の月:4月とDecembereCho $ generator-> set(new butschstercronexpressionPartsmonthsspecificMonths(generator :: apr、generator :: dec)); // * * 4,12 * // 4月から12月までの間にcho $ generator-> set(new butschstercronexpressionpartsmonthsbetweenmonths(generator :: apr、generator :: dec)); // * * 4-12 * // QuarterlyeCho $ generator-> set(new 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(new butschstercronexpressionPartsDateTime($ date)); // 34 12 5 2 *
butschstercronexpressionpartsdaysspecificdaysを使用します。 */2 5,10,15,20,25,30 3,6,9,12 1,3,5,5,0ECHO $ GENERATOR-> YEARLY() - >月(ジェネレーター:: mar、ジェネレーター:: jun、ジェネレーター:: sep、ジェネレーター:: dec) - > daysofmonth(5、10、15、20、25、30) - > daysofweek(ジェネレーター::月曜日、ジェネレーター::水曜日、ジェネレーター::金曜日、ジェネレーター::日曜日) - > everytwohours() - > everyMinute(); // orecho $ generator-> set(new specizeMonths(generator :: mar、generator :: jun、generator :: sep、generator :: dec)、new speciedydays(5、10、15、20、 25、30)、New SpeciecyDaysOfeek(Generator :: Monday、Generator ::水曜日、ジェネレーター::金曜日、ジェネレーター::日曜日)、New EveryHour(2)、New everyminute() );
参照:https://github.com/dragonmantank/cron-expression#usage
echo $ generator-> monthlyon(15、12) - > getExpression() - > getNextrundate(); // DateTime
<?phpnamespace appconsole; Butschstercronexpressiongeneratorを使用します。イルミナテコンセコンスケジュールシューリングの使用を使用します。 {$ schedule-> command( 'emails:send taylor - force') - > cron(generator :: create() - > daily() ); } }
カスタム式クラスを作成するには、 ButschsterCronExpressionPartValueInterface
を実装する必要があります
ButschstercronexpressionPartValueInterfaceを使用します。CronCronexpressionを使用します;クラス四半期実装PartValueInterface {public updateExpression(cronexpression $ expression):void {$ expression-> setPart(cronexpression ::月、 '1-12/3'); } }
使用
echo butschstercronexpressiongenerator :: create() - > set(new Quarterly()); // * * * 1-12/3 *
butschstercronexpressionpartsdaysspecificdaysを使用します。butschstercronexpressionpartshoursspecifichoursを使用しますDateTimeInterface;クラスDATETIMEを実装しますpartValueInterface {public function __construct(private DateTimeInterface $ time) { } public function updateExpression(cronexpression $ expression):void {$ parts = [(int)$ this-> time-> format( 'i'))、new Specifichours((int)$ $ $ $ $ $ format( 'g'))、new specietydays((int)$ this-> time-> format( 'j'))、new specialMonths((int)$ this-> time-> format( 'n'))) ]; foreach($ parts as $ part){$ part-> updateExpression($ expression); } } }
使用
echo butschstercronexpressiongenerator :: create() - > set(new Datetime( '2021-02-05 12:34:26'))); // 34 12 5 2 *
作曲家テスト
Butschster
MITライセンス(MIT)。詳細については、ライセンスファイルをご覧ください。