clapp / imagerepository
1.0.0-alpha1
2017-09-07 15:37 UTC
Requires
- php: ^5.5.9|~7.0
- illuminate/contracts: ^5.2
- intervention/image: ^2.3
Requires (Dev)
- illuminate/filesystem: ^5.2
- league/flysystem-memory: ^1.0
- phpunit/phpunit: ~4.8
- satooshi/php-coveralls: dev-master
This package is not auto-updated.
Last update: 2024-09-14 20:04:04 UTC
README
使用示例(在 Laravel 中)
use Clapp\ImageRepository\ImageRepository; use Clapp\ImageRepository\ImageMissingOrInvalidException; class User { protected $profilePictureRepository = null; public function __construct(/* ... */){ $this->profilePictureRepository = new ImageRepository('profile-pictures/'); /* ... */ } public function getProfilePicture($width=500, $height=500) { try { return $this->profilePictureRepository->get(array_get($this->attributes, 'profile_picture'), $width, $height); }catch(ImageMissingOrInvalidException $e){ return $this->profilePictureRepository->get(resource_path('assets/images/placeholder.png'), $width, $height); } } public function setProfilePictureAttribute($pictureContents){ $value = $pictureContents; if (!empty($value)){ $value = $this->profilePictureRepository->put($value); } $this->attributes['profile_picture'] = $value; } }
API 参考
ImageRepository::__construct($storagePrefix = "", $storageDisk = null, $cacheDisk = null, ImageManager $imageManager = null)ImageRepository::put($imageContents)ImageRepository::get($key, $width = 500, $height = 500)ImageRepository::remove($key)ImageRepository::flush()
ImageRepository::__construct($storagePrefix = "", $storageDisk = null, $cacheDisk = null, ImageManager $imageManager = null)
创建一个新的 ImageRepository 实例。
参数
$storagePrefix:string一个前缀,允许在相同的 $storageDisk 和 $cacheDisk 上有多个集合 - 例如"user-profile-pictures"$storageDisk:Illuminate\Contracts\Filesystem\Filesystem一个磁盘,用于存储原始图像$cacheDisk:Illuminate\Contracts\Filesystem\Filesystem一个磁盘,用于存储生成的图像缩略图$imageManager:Intervention\Image\ImageManager用于图像处理的 ImageManager
ImageRepository::put($imageContents)
将图像存储到 ImageRepository 实例中。
参数
$imageContents:mixedIntervention\Image\ImageManager::make() 可以解析的任何图像格式
返回
string$key,可以用于从get()中检索图像
ImageRepository::get($key, $width = 500, $height = 500)
参数
$key:string从put()中来的 key OR 你本地磁盘上的图像文件的一个绝对路径(用于占位符)$width:int将图像适配到这个宽度(默认:500)$height:int将图像适配到这个高度(默认:500)
返回
string从 $cacheDisk 基础生成的图像的路径 - 可以立即用于 laravel 的asset()函数
ImageRepository::get($key, Closure $transform, Closure $transformId)
参数
$key:string从put()中来的 key OR 你本地磁盘上的图像文件的一个绝对路径(用于占位符)$transform:Closure使用这个函数来对图像应用自定义转换$transformId:Closure使用这个函数来为自定义转换生成一个唯一的字符串 - 相同的转换应该有相同的唯一字符串
示例
$image = $repo->get($key, function($image){ $image->resize(123, null, function($constraint){ $constraint->aspectRatio(); }); return $image; }, function(){ return "123_auto"; });
返回
string从 $cacheDisk 基础生成的图像的路径 - 可以立即用于 laravel 的asset()函数