Download the PHP package neelkanthk/laravel-schedulable without Composer
On this page you can find all versions of the php package neelkanthk/laravel-schedulable. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download neelkanthk/laravel-schedulable
More information about neelkanthk/laravel-schedulable
Files in neelkanthk/laravel-schedulable
Package laravel-schedulable
Short Description A Laravel package to add scheduling capability in Eloquent models.
License MIT
Informations about the package laravel-schedulable
Laravel Schedulable 
Schedule and Unschedule any eloquent model elegantly without cron job.
Salient Features:
-
Turn any Eloquent Model into a schedulable one by using trait in the model.
-
Schedule Models to a time in future and they will be returned in query results at specified date and time.
-
Reschedule and Unschedule at any time using simple methods.
-
Hook into the model's life cycle via custom model events provided by the package.
- Override the default column name and use your own custom column name.
Some example use cases when this package can be useful:
-
A Blog type application which allows bloggers to schedule their post to go public on a future date and time.
- An E-commerce website where the items in the inventory can be added at any time from the admin panel but they can be scheduled to be made available to the customers at a particular date and time.
Minimum Requirements
- Laravel 6.0
- PHP 7.2
Installation
Usage
1. Create a migration to add column in any table using package's method which creates a column with name .
NOTE: If you want to use any other column name then simply use the method as shown below in examples.
2. Use the trait in any Model.
NOTE: If you have used a custom column name in the migration then you have to specify that column in the Model as shown below.
Usage
1. Scheduling a model
2. Unscheduling a model
3. Events and Observers
The package provides four model events and Observer methods which the developers can use to hook in the model's lifecycle.
The method fires two events namely before saving the model and after saving the model.
The method fires two events namely before saving the model and after saving the model.
The above events can be caught in the Observer class as follows:
4. Fetching data using queries
We will assume below posts table as reference to the following examples:
id | title | created_at | updated_at | schedule_at |
---|---|---|---|---|
1 | Toy Story 1 | 2020-06-01 12:15:00 | NULL | NULL |
2 | Toy Story 2 | 2020-08-02 16:10:12 | NULL | 2020-08-10 10:10:00 |
3 | Toy Story 3 | 2020-10-10 10:00:10 | NULL | 2021-12-20 00:00:00 |
4 | Terminator 2 | 2020-10-11 00:00:00 | NULL | 2021-11-12 15:10:17 |
For the following examples, Suppose the current timestamp is 2020-10-18 00:00:00.
1. Default
By default all those models are fetched in which the column is having value or a timestamp less than or equal to the current timestamp.
So a eloquent query
will return Toy Story 1 and Toy Story 2
2. Retrieving scheduled models in addition to the normal.
To retrieve scheduled models in addition to the normal models, use the method.
The above query will return all the four rows in the above table.
3. Retrieving only scheduled models without normal.
To retrieve only scheduled models use the method.
The above query will return Toy Story 3 and Terminator 2.
4. Do not apply any functionality provided by .
In some cases you may not want to apply the trait at all. In those cases use the method in your query.
A general use case example.
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Security
If you discover any security-related issues, please email [email protected] instead of using the issue tracker.
Credits
- Neelkanth Kaushik
- All Contributors