康诺科 / laravel-imagecast
简化将图像存储到数据库的过程
0.1.1
2022-02-20 15:29 UTC
Requires
- php: ^7.4|^8.0|^9.0
- illuminate/contracts: ^9.0
- intervention/image: ^2.5
- kornrunner/blurhash: ^1.2
- spatie/laravel-package-tools: ^1.4.3
Requires (Dev)
- brianium/paratest: ^6.4
- nunomaduro/collision: ^6.0
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^7.0
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.1
- pestphp/pest-plugin-parallel: ^1.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
- spatie/laravel-ray: ^1.26
README
本包旨在简化管理Laravel图像的代码。
Alpha版本
注意!本包仍在开发中,我们仍在寻找最佳的应用模式,在此过程中,开发可能会破坏您的应用程序,我们不建议在生产环境中使用此应用程序,直到本包完全发布。
安装
Laravel版本
您可以通过composer安装此包
composer require konnco/laravel-imagecast
您可以使用以下命令发布配置文件
php artisan vendor:publish --provider="Konnco\ImageCast\ImageCastServiceProvider" --tag="laravel-imagecast-config"
这是已发布的配置文件的内容
return [ 'disk' => env('IMAGECAST_DISK', 'public'), 'path' => 'images', 'blurhash' => env('IMAGECAST_BLURHASH', false) ];
用法
很简单!只需将 Image
应用到图像类型属性中,例如
导入这些文件
use Konnco\ImageCast\Casts\Image;
并实现如下
protected $casts = [ 'avatar' => Image::class, ];
您还可以为每个字段应用自定义配置,例如
protected $casts = [ 'avatar' => Image::class.":80,images/account/avatar,jpg", 'banner' => Image::class.":80,images/account/avatar,png", ];
参数 :quality,savePath,extension
。对于 savePath
变量,您可能希望插入随机变量,如日期作为文件夹名称,您可以参考以下示例
protected $casts = [ 'avatar' => Image::class.":80,images/account/avatar/{date:Y-m-d},jpg", ];
定义所有这些配置后,您可以开始上传图像,例如
$user = New User(); $user->name = $request->name; $user->avatar = $request->photo; $user->save();
您可以用所有这些支持类型填充头像字段
- string - 文件系统中图像的路径。
- string - 图像的URL(必须启用allow_url_fopen)。
- string - 二进制图像数据。
- string - Data-URL编码的图像数据。
- string - Base64编码的图像数据。
- resource - 类型为gd的PHP资源。(当使用GD驱动程序时)
- object - Imagick实例(当使用Imagick驱动程序时)
- object - Intervention\Image\Image实例
- object - SplFileInfo实例(用于处理Laravel通过Symfony\Component\HttpFoundation\File\UploadedFile上传的文件)
URL生成器
使用ImageCast URL生成器,您可以通过URL仅定义图像的宽度和高度,如果您已经习惯了cloudinary,您会感谢这个包。
我们应该配置Laravel的404处理器。打开 App\Exceptions\Handler
并在 render
方法中添加以下代码。
use Konnco\ImageCast\ImageCastExceptionHandler; public function render($request, Throwable $exception) { return new ImageCastExceptionHandler($exception, request()->url(), function(){ return parent::render($request, $exception); }); }
我们已经在 ImageCast
中添加了辅助函数,定义如下
return $user->avatar->toUrl();
Base64
您还可以使用此方法将图像转换为Base64图像
return $user->avatar->toBase64();
想法
我们非常感谢您对这个包的想法和贡献 :)
测试
composer test
更改日志
有关最近更改的更多信息,请参阅 更改日志
贡献
有关详细信息,请参阅 贡献指南
安全漏洞
请查阅 我们的安全策略 了解如何报告安全漏洞。
鸣谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅 许可证文件