dkhru / yii2-image-store
组件,用于以简单的容量保存方式存储项目中的所有图片。
dev-master / 2.0.6.x-dev
2015-12-28 12:20 UTC
Requires
- yiisoft/yii2: *
This package is auto-updated.
Last update: 2024-09-11 03:08:01 UTC
README
组件,用于以简单的容量保存方式存储项目中的所有图片
功能
- 通过文件哈希保存唯一的图片,并与所有模型共享
- 删除时自动检查所有模型字段上的图片依赖项,如果没有依赖项则删除文件
- 自动创建自定义或预定义尺寸的图片变体
- 实现对图片文件的公共和受限访问。公共图片使用符号链接,受限图片使用Web控制器
- 自动附加行为
- 自动创建控制器映射和URL规则
安装
安装此扩展的首选方式是通过 composer。
运行以下命令之一:
php composer.phar require --prefer-dist dkhru/yii2-image-store "*"
或添加
"dkhru/yii2-image-store": "*"
到您的 composer.json
文件的 require 部分。
运行迁移以创建表:
./yii console migrate --migrationPath=@dkhru/imageStore/migrations
配置
添加到您的数据库和模型中需要存储图片的字段
Schema::TYPE_BIGINT . ' UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY'
一旦扩展安装完成,在 common/config/main 中添加组件,在 db 组件之后
'iStore'=>[
'class'=>'dkhru\imageStore\components\ImageStore',
'storePath'=>Yii::getAlias('@common/image-store'), // Path where files generated
'publicPath'=>Yii::getAlias('@storage'), // Path where link generated
'publicUrl'=>Yii::getAlias('@storageUrl'), // Url to nginx location for Public Path
'defaultVariants'=>[ // Default image size for resizing
[ 'width'=>800, 'height'=>600 ],
[ 'width'=>180, 'height'=>135 ],
],
'models'=>[ // array of models for attach behavior to
[
'class'=>\common\models\Image::className(), // model class
'fields'=>[ // array of fields in model for store images
'image_id'=>[],
],
],
[
'class'=>\common\models\User::className(),
'fields'=>[
'avatar_id'=>[
'variants'=>[ // image sizes for field if not set using defaultVariants
[ 'width'=>128, 'height'=>128 ],
],
],
],
],
]
]
要初始化组件,请运行
./yii istore/init
Create FK
Add stores
PHP Doc for add to common\models\Image class:
* @mixin \dkhru\imageStore\components\ImageBehavior
* @property \dkhru\imageStore\components\ImageStore $iStore
* @property \dkhru\imageStore\models\Image $image
PHP Doc for add to common\models\User class:
* @mixin \dkhru\imageStore\components\ImageBehavior
* @property \dkhru\imageStore\components\ImageStore $iStore
* @property \dkhru\imageStore\models\Image $image
此控制台命令创建外键,初始化数据库中的数据,并返回配置模型的 PHP 类文档
使用方法
组件在初始化时为配置模型附加行为,并映射控制台和Web控制器到引导界面
在目标模型中附加行为之后,您可以使用名为 <Field name>_image
的属性来使用与图片的关系。如果您只有一个名为 image_id 的字段,则必须简单地使用 image
而不是 <Field name>_image
要保存图片,请简单使用 YourModel->setImage(<UploadedFile>,<variants array>, <Field name>)
方法。然后保存图片,该方法为文件生成哈希并查找存储。如果某些图片已存储,则不存储它。生成未存储的变体,链接到 YourModel(设置 YourModel->image_id)并返回图片