a70537952 / imagecache
Requires
- php: >=5.3.0
- a70537952/image: dev-master|~2,>=2.2.0
- illuminate/cache: ~4|~5
- illuminate/filesystem: ~4|~5
- jeremeamia/superclosure: ~1|~2
Requires (Dev)
- mockery/mockery: ~0.9.2
- phpunit/phpunit: 3.*
README
Intervention Image Cache 扩展了 Intervention Image Class 软件包,使其能够实现图像缓存功能。
该库使用 Illuminate/Cache 软件包,可以轻松集成到 Laravel 框架 中。根据您的 Laravel 缓存配置,您可以选择使用文件系统、数据库、Memcached 或 Redis 作为临时缓冲存储。
原理很简单。每次对 Intervention Image 类的方法调用都会被缓存接口捕获并检查。如果这个特定的操作序列已经发生,数据将直接从缓存中加载,而不是进行资源密集型的图像操作。
安装
您可以使用 Composer 快速轻松地安装此软件包。
通过 Composer 需求此软件包
$ composer require intervention/imagecache
现在您可以通过需要 vendor/autoload.php
文件来 PSR-4 自动加载库。
Laravel 集成
Image Cache 类支持 Laravel 集成。在 Laravel 中使用库的最佳实践是添加 Intervention Image 类的 ServiceProvider 和 Facade。
打开您的 Laravel 配置文件 config/app.php
并添加以下行。
在 $providers
数组中添加此软件包的 service providers。
'providers' => array(
[...]
'Intervention\Image\ImageServiceProvider'
),
将此软件包的 facade 添加到 $aliases
数组中。
'aliases' => array(
[...]
'Image' => 'Intervention\Image\Facades\Image'
),
用法
最佳实践是通过 Intervention Image 类的静态方法 Image::cache
调用 Image Cache。
要创建缓存的图像,只需使用静态方法 Image::cache
并通过闭包传递图像处理。该方法将自动检测是否存在特定操作的缓存文件。
// run the operations on the image or read a file // for the particular operations from cache $img = Image::cache(function($image) { return $image->make('public/foo.jpg')->resize(300, 200)->greyscale(); });
作为可选的第二个参数,确定缓存文件的有效期(分钟)。作为可选的第三个参数,传递布尔值 true 以返回 Intervention Image 对象而不是图像流。
// determine a lifetime and return as object instead of string $img = Image::cache(function($image) { return $image->make('public/foo.jpg')->resize(300, 200)->greyscale(); }, 10, true);
许可
Intervention Imagecache 类采用 MIT 许可。