reshadman / eloquent-faster
eloquent模型配置的简单非I/O缓存,例如修改器和访问器。
1.0.1
2015-06-15 16:52 UTC
Requires
- laravel/framework: 5.1.*
Requires (Dev)
- mockery/mockery: 1.0.*@dev
- phpunit/phpunit: ~4.6
This package is auto-updated.
Last update: 2024-09-12 07:02:46 UTC
README
eloquent模型访问器和修改器的简单非I/O缓存。
安装
composer require "reshadman/eloquent-faster"
使用方法
首先您需要将以下服务提供者添加到您的应用程序中
return [ //.. other config 'providers' => [ // other providers \Reshadman\EloquentFaster\EloquentFasterServiceProvider::class ] ];
然后运行以下artisan命令
php artisan eloquent:cache
用于清除缓存
php artisan eloquent:clear
如果您在PHP安装中使用了OPCACHE,则此类在每个脚本运行时不会使用I/O,因为opcache将代码加载到内存中。
问题
简单来说,问题始于这个问题。
目前,eloquent模型类包含一个用于获取器的缓存策略,它会首先获取所有类方法,然后通过正则表达式过滤它们。这只在每个唯一的eloquent最终对象上发生一次。获取器缓存容器仅填充了处理过的蛇形属性键。
每次创建新的模型类时,都会运行一个包含50到100次迭代的循环,并处理正则表达式。
难道不希望有类似
php artisan eloquent:cache
这样的命令吗?
运行单元测试
克隆仓库
git clone git@github.com:reshadman/eloquent-faster.git
然后运行composer update
现在您可以在仓库文件夹中运行phpunit。
vendor/bin/phpunit