reliqarts / guided-image
Requires
- php: ^8.2
- ext-fileinfo: *
- ext-json: *
- anhskohbo/no-captcha: @dev
- illuminate/support: ^11.1
- intervention/image: ^3.7
- reliqarts/laravel-common: ^8.0
Requires (Dev)
- laravel/pint: ^1.15
- orchestra/testbench: ^9.0
- phpro/grumphp: ^2.5
- phpspec/prophecy-phpunit: ^2.0
- phpunit/phpunit: ^11.0
- yieldstudio/grumphp-laravel-pint: ^1.0
- dev-main
- v5.1.1
- v5.1.0
- v5.0.0
- v4.4.2
- v4.4.1
- v4.4.0
- v4.3.0
- v4.2.6
- v4.2.5
- v4.2.4
- v4.2.3
- v4.2.2
- v4.2.1
- v4.2.0
- v4.1.0
- v4.0.0
- v3.3.1
- v3.3.0
- v3.2.2
- v3.2.1
- v3.2.0
- v3.0.1
- v3.0.0
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v2.0.0-beta.6
- v2.0.0-beta.5
- v2.0.0-beta.4
- v2.0.0-beta.3
- v2.0.0-beta.2
- v2.0.0-beta.1
- v2.0.0-beta
- v1.1.1
- v1.1.0
- v1.0.12
- v1.0.11
- v1.0.10
- v1.0.9
- v1.0.8
- v1.0.7
- v1.0.6
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
This package is auto-updated.
Last update: 2024-07-08 00:14:53 UTC
README
Laravel Guided Image
Guided Image是基于Intervention Image的Laravel图像工具包。
主要功能
- 即时图像缩放
- 即时缩略图生成
- 图像上传
- 智能图像重用;减少重复上传和空间资源浪费。
Guided Image可以无缝集成到您现有的图像模型中。
引导路由
该包提供生成缩放/裁剪/占位图像的路由。
- 路由可配置,您可以设置任何中间件和前缀。
- 生成的图像将缓存到磁盘,以避免频繁访问的图像的重复生成并减少开销。
图像文件重用
针对不同模型实例使用相同图像的情况。
- 该包提供安全删除功能,允许图像被分离,并且只有在不被其他地方使用时才从磁盘删除。
- 使用可覆盖的方法来决定何时将图像视为可安全删除的。
安装与使用
安装
使用Composer安装;在控制台
composer require reliqarts/laravel-guided-image
或在composer.json中require
{ "require": { "reliqarts/laravel-guided-image": "^5.0" } }
然后在您的终端中运行composer update
以将其拉入。
最后,发布包资源和配置
php artisan vendor:publish --provider="ReliqArts\GuidedImage\ServiceProvider"
您可以选择使用guidedimage-config
标签仅发布配置
php artisan vendor:publish --provider="ReliqArts\GuidedImage\ServiceProvider" --tag="guidedimage-config"
设置
设置所需的环境变量,以便包知道您的图像模型、控制器等。
示例环境配置
GUIDED_IMAGE_MODEL=Image
GUIDED_IMAGE_CONTROLLER=ImageController
GUIDED_IMAGE_ROUTE_PREFIX=image
GUIDED_IMAGE_SKIM_DIR=images
这些变量和其他变量在config文件中有解释。
好了!👌
使用方法
要使用Guided Image,您必须从您的Image模型中这样做。😏
实现ReliqArts\GuidedImage\Contract\GuidedImage
契约并使用ReliqArts\GuidedImage\Concern\Guided
特质,例如
use Illuminate\Database\Eloquent\Model; use ReliqArts\GuidedImage\Concern\Guided; use ReliqArts\GuidedImage\Contract\GuidedImage; class Image extends Model implements GuidedImage { use Guided; // ... properties and methods }
查看示例。
从您的ImageController实现ReliqArts\GuidedImage\Contract\ImageGuide
契约并使用ReliqArts\GuidedImage\Concern\Guide
特质,例如
use ReliqArts\GuidedImage\Contract\ImageGuide; use ReliqArts\GuidedImage\Concern\Guide; class ImageController extends Controller implements ImageGuide { use Guide; }
查看示例。
功能
安全删除图像(解耦并条件删除图像)
通过调用remove方法删除图像实例。例如
$oldImage->remove($force);
$force
是可选的,默认为false
。
链接生成
您可以像这样检索到缩放或裁剪图像的引导链接
// resized image: $linkToImage = $image->routeResized([ '550', // width '_', // height, 'null' is OK '_', // keep aspect ratio? true by default, 'null' is OK '_', // allow upsize? false by default, 'null' is OK ]); // thumbnail: $linkToImage = $image->routeThumbnail([ 'crop', // method: crop|fit '550', // width '_', // height ]);
注意:在上面的示例中,_
解析为null
。
有关模型函数的更多信息,请查看GuidedImage契约。
有关控制器函数的更多信息,请查看ImageGuide契约。
路由
您的实际路由将严重依赖于您的自定义配置。以下是一个路由可能看起来像的示例
|| GET|HEAD | image/.dum//{width}-{height}/{color?}/{fill?} | image.dummy | App\Http\Controllers\ImageController@dummy | web |
|| GET|HEAD | image/.res/{image}//{width}-{height}/{aspect?}/{upSize?}| image.resize | App\Http\Controllers\ImageController@resized | web |
|| GET|HEAD | image/.tmb/{image}//m.{method}/{width}-{height} | image.thumb | App\Http\Controllers\ImageController@thumb | web |
|| GET|HEAD | image/empty-cache | image.empty-cache | App\Http\Controllers\ImageController@emptyCache | web |