加纳尼亚 / 沙姆斯克
1.0.1
2022-07-20 19:27 UTC
Requires
- php: ^8.1.0
- morilog/jalali: 3.*
Requires (Dev)
- phpunit/phpunit: 9.5
This package is auto-updated.
Last update: 2024-09-21 00:44:23 UTC
README

沙姆斯克
可能你遇到过这样的情况:你想在你的项目中使用CronJob,但发现无法管理太阳历中的确切日期。
例如,cron job允许你在特定的星期几、月份运行你的脚本!但CronJob支持公历。对于太阳日期来说,这毫无用处或准确性较低!
此包允许你在PHP代码内部解决这个问题。
此包支持
PHP 8.1+
。
安装
通过Composer
$ composer require ghaninia/shamsic
使用方法
你需要在服务器上配置cron job,下面的crontab命令将自动每分钟激活cron任务。
* * * * * php output.php
'*'是一个通配符,表示“每次”。如果你对CronJob表达式没有背景知识,或者对此感到困惑,请参考链接 crontab。
.---------------- minute (0 - 59) | .------------- hour (0 - 23) | | .---------- day of month (1 - 31) | | | .------- month (1 - 12) | | | | .---- day of week (0 - 6) | | | | | * * * * * command to be executed
cronJob的最后三个表达式用于月份中的日期、月份和星期几(我们的主要问题)。
现在,打开Cron Job将要执行的文件(例如output.php)。
use GhaniniaIR\Shamsic\Schedule; ### At every minute on saturday in farvardin. (new Schedule) ->call(function(){ echo "test"; }) ->cron("* * * 1 2"); ### At every minute on every day-of-week from saturday through thursday in khordad. (new Schedule) ->call(function(){ echo "test"; }) ->cron("* * * 3 1-5"); ... ### After writing all the schedules, you must run them Schedule::run();
如果你想检查你的表达式是否有效
(new ExecuteExpression("* * * * *"))->isValid();