dev-master
9999999-devYii2 Cloudinary Component
MIT
The Requires
- php >=5.4.0
- yiisoft/yii2 ~2.0.6
- cloudinary/cloudinary_php dev-master
- mongosoft/yii2-upload-behavior *
by nikosid
extension yii2 yii yii 2 behavior cloudinary nikosid
Yii2 Cloudinary Component
This package contains Component and Behavior for upload and display files from Cloudinary service., (*1)
The preferred way to install this extension is through composer., (*2)
Either run, (*3)
php composer.phar require nikosid/yii2-cloudinary "dev-master"
or add, (*4)
"nikosid/yii2-cloudinary": "dev-master"
to the require
section of your composer.json., (*5)
You need to configure cloudinary component in your application config., (*6)
'components' => [ 'cloudinary' => [ 'class' => CloudinaryComponent::class, 'cloud_name' => 'YOUR_CLOUD_NAME', 'api_key' => 'YOUR_API_KEY', 'api_secret' => 'YOUR_API_SECRET', 'cdn_subdomain' => true,//optional 'useSiteDomain' => false, ], ],
By setting $useSiteDomain to true you can make URLs to your doman and than proxy them to cloudinary server. By default it's false., (*7)
location /YOUR_CLOUD_NAME/ { proxy_pass https://res.cloudinary.com; proxy_set_header Host res.cloudinary.com; }
This behavior allows you to add file uploading logic with ActiveRecord behavior., (*8)
Attach the behavior to your model class:, (*9)
public function behaviors() { return [ 'cloudinary' => [ 'class' => nikosid\cloudinary\CloudinaryBehavior::class, 'attribute' => 'picture', 'publicId' => Yii::$app->name . '/articles/main{id}', 'thumbs' => [ 'large' => ['secure' => true, 'width' => 848, 'height' => 536, 'crop' => 'fill'], 'medium' => ['secure' => true, 'width' => 555, 'height' => 536, 'crop' => 'fill'], 'small' => ['secure' => true, 'width' => 130, 'height' => 125, 'crop' => 'fill'], ], ], ]; }
Add validation rule:, (*10)
//For file upload public function rules() { return [ ['picture', 'image', 'extensions' => 'jpg, jpeg, gif, png', 'on' => ['insert', 'update']], ]; } //Or for url type field public function rules() { return [ ['url_picture', 'url',], ]; }
Example view file for upload file from local storage:, (*11)
<?php $form = ActiveForm::begin(); ?> <?= $form->field($model, 'picture')->fileInput() ?> <div class="form-group"> <?= Html::submitButton('Submit', ['class' => 'btn btn-primary']) ?> </div> <?php ActiveForm::end(); ?>
Example view file for upload file from url:, (*12)
<?php $form = ActiveForm::begin(); ?> <?= $form->field($model, 'url_picture')->textInput() ?> <div class="form-group"> <?= Html::submitButton('Submit', ['class' => 'btn btn-primary']) ?> </div> <?php ActiveForm::end(); ?>
File should be uploading fine., (*13)
You can also get generated thumbnail image url:, (*14)
echo $model->getThumb('medium');
You can also specify few attributes in priotiry order., (*15)
public function behaviors() { return [ 'cloudinary' => [ 'class' => CloudinaryBehavior::class, 'attribute' => 'picture,picture_url', 'publicId' => Yii::$app->name . '/articles/main{id}', 'thumbs' => [ 'large' => ['secure' => true, 'width' => 848, 'height' => 536, 'crop' => 'fill'], 'medium' => ['secure' => true, 'width' => 555, 'height' => 536, 'crop' => 'fill'], 'small' => ['secure' => true, 'width' => 130, 'height' => 125, 'crop' => 'fill'], ], ], ]; }
It means if user upload picture
Cloudinary get it, but if not, we also check picture_url and try to upload it, (*16)
MIT, (*17)
Yii2 Cloudinary Component
MIT
extension yii2 yii yii 2 behavior cloudinary nikosid