Package Data | |
---|---|
Maintainer Username: | createnl |
Maintainer Contact: | alex@create.nl (Alex Lisenkov) |
Package Create Date: | 2017-08-01 |
Package Last Update: | 2017-08-03 |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-11-23 03:05:02 |
Package Statistics | |
---|---|
Total Downloads: | 3,761 |
Monthly Downloads: | 0 |
Daily Downloads: | 0 |
Total Stars: | 2 |
Total Watchers: | 2 |
Total Forks: | 0 |
Total Open Issues: | 0 |
A package to add expiration date to database records.
$ composer require createnl/expires
$table->dateTime('expires_at')->nullable()->default(null);
class Model extends Eloquent
{
use Createnl\Expires\Expirable
/**
* Indicates if the model should set an auto expire
*
* @var bool
*/
protected static $autoExpire = true;
/**
* Indicates if the model should reset the expiration date on model update
*
* @var bool
*/
protected static $autoExtend = true;
/**
* The amount of interval to be added to the
* Please see ISO_8601 durations for correct markups
*
* @var string (\DateInterval)
*/
protected static $autoExpireDate = 'P5Y';
}
// Get records with expired
$model->withExpired() : Builder;
// Get only expired records
$model->onlyExpired() : Builder;
// Update expiration date
$model->setExpiration(Carbon $date) : Model;
// Remove expiration date
$model->unExpire() : Model;
// Check if record is expired
$model->isExpired() : bool;
// Get carbon object of expiration date
$model->expiresAt() :? Carbon;
// Extend expiration by defined interval
$model->extendExpiration() : Model;
// Disable automatic setting of expiration date
Model::disableExpiring() : void;
// Enable automatic setting of expiration date
Model::enableExpiring() : void;
/**
* @override
* Get Carbon object of parsed expiration date.
*
* @return Carbon
*/
public function expirationDate() : Carbon
{
// @todo: Manipulate expiration date
$interval = new \DateInterval(self::$autoExpireDate);
return $this->freshTimestamp()->add($interval);
}
Please see CHANGELOG for more information on what has changed recently.
$ composer test
Please see CONTRIBUTING and CONDUCT for details.
If you discover any security related issues, please email alex@create.nl instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.