Skip to content

Do you want CronJob to follow the solar date?You need this package to solve this problem.

Notifications You must be signed in to change notification settings

ghaninia/shamsic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Shamsic

Maybe it happened to you that you wanted to use CronJob in your project and you realized that you cannot manage the exact dates that are in the solar calendar.

For example, cron job allows you to run your script on specific days of the week, month! But CronJob supports the Gregorian calendar.It is useless or can be done with low accuracy for the solar date!

This package allows you to solve this problem inside the PHP code.

This package supports PHP 8.1+.


Install

Via Composer

$ composer require ghaninia/shamsic

How to use

You need to configure the cron job on the server ,The crontab command shown below will activate the cron tasks automatically every minutes:

* * * * * php output.php

'*' is a wildcard, meaning "every time". If you don't have any background about CronJob expressions and don't clear for you, follow the link crontab.

.---------------- minute (0 - 59) 
|  .------------- hour (0 - 23)
|  |  .---------- day of month (1 - 31)
|  |  |  .------- month (1 - 12) 
|  |  |  |  .---- day of week (0 - 6) 
|  |  |  |  |
*  *  *  *  *  command to be executed

The last three expressions of the cronJob are for the day of the month, the month and the day of the week. (Our main problem)

Now, open the file that will be executed by Cron Job (for this example 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();

If you want to check that your expression is valid or not :

(new ExecuteExpression("* * * * *"))->isValid();

About

Do you want CronJob to follow the solar date?You need this package to solve this problem.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published