jrumbut/eloquent-memoize
EloquentMemoize
Memoization for Eloquent models.
Install
Via Composer
$ composer require jrumbut/eloquent-memoize
Usage
class MyModel extends MemoizingModel
{
protected static $memoized = ['slow_attribute'];
//Now only slow the first time it's accessed
public function getSlowAttribute($value)
{
sleep(3);
return ucwords($value);
}
}
-or-
class TraitModel extends Model
{
use Memoizes;
/**
* Initialize attributes
*
* @return void
*/
public static function boot()
{
parent::boot();
static::setMemoized(['slow']);
}
//Now only slow the first time it's accessed
public function getSlowAttribute($value)
{
sleep(3);
return ucwords($value);
}
}
Change log
Please see CHANGELOG for more information what has changed recently.
Testing
$ composer test
Contributing
Please see CONTRIBUTING and CONDUCT for details.
Security
If you discover any security related issues, please email joshua.rumbut@gmail.com instead of using the issue tracker.
Credits
- Joshua Rumbut
- Akihito Koriyama (akihito.koriyama@gmail.com) for the excellent PHP.Skeleton package
- All Contributors
License
The MIT License (MIT). Please see License File for more information.
Related Packages
martinbean/laravel-sluggable-trait
A trait you can apply to Eloquent models to have slugs automatically generated o...
49,105
24
isswp101/elasticsearch-eloquent
Elasticsearch functionality like Laravel Eloquent models.
25,142
112
Version History
| Version | Released | PHP | Laravel | License |
|---|---|---|---|---|
| v0.1.1 | >=5.5.0 | 5.1.*| | MIT | |
| v0.1.0 | >=5.5.0 | 5.1.* || | MIT |
Pre-releases (2)
| Version | Released | PHP | Laravel | License |
|---|---|---|---|---|
| v0.0.2-alpha | >=5.5.0 | 5.1.* || | MIT | |
| v0.0.1-alpha | >=5.5.0 | 5.1.* || | MIT |
