reshadman/eloquent-faster

eloquent模型配置的简单非I/O缓存,例如修改器和访问器。

1.0.1 2015-06-15 16:52 UTC

This package is auto-updated.

Last update: 2024-09-12 07:02:46 UTC


README

eloquent模型访问器和修改器的简单非I/O缓存。

Build Status Scrutinizer Code Quality Latest Stable Version Total Downloads

安装

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