reshadman/eloquent-faster
Eloquent Faster
Simple none-I/O cache for eloquent model accessor and mutators.
Installation
composer require "reshadman/eloquent-faster"
Usage
First you need to add the following service provider to your application
return [
//.. other config
'providers' => [
// other providers
\Reshadman\EloquentFaster\EloquentFasterServiceProvider::class
]
];
Then run the following artisan command
php artisan eloquent:cache
For clearing cache
php artisan eloquent:clear
If you use OPCACHE in your PHP installation, this class will not use I/O for each script run, as opcache loads code into memory.
Problem
Simply the problem begins from this issuge.
Currently the eloquent model class contains a cache strategy for getters which first fetches all class methods and runs a loop on them filtering them by a regular expression. This occurs only once per unique eloquent final object. The getter cache container is only filled up with the processed snake case attribute key.
Each time a new model class is created for first time a loop with 50 to 100 iterations with processing a regular expression is run.
Wouldn't it be cool to have something like
php artisan eloquent:cachefor this ?
Running unit tests
Clone the repo
git clone git@github.com:reshadman/eloquent-faster.git
Then run composer update
Now you can run phpunit in the repo folder.
vendor/bin/phpunit
Related Packages
Powerful PHP database abstraction layer (DBAL) with many features for database s...
Laravel Serializable Closure provides an easy and secure way to serialize closur...
Cli error handling for console/command-line PHP applications.
