sieulog / yii2-imagecache
ImageCache for Yii2
Installs: 53
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 12
Type:yii2-extension
Requires
This package is not auto-updated.
Last update: 2024-12-21 19:21:23 UTC
README
Like the Image module in Drupal, this extension will resize your images on demand :-). If a thumb doesn't exist, the web server's rewrite rules will pass the request to Yii which in turn hands it off to ImageCache to dynamically generate the file.
WIP...
Features
- image resize on demand
- text watermark
- image watermark
Installation
The preferred way to install this helper is through composer.
Either run
php composer.phar require "iutbay/yii2-imagecache" "*"
or add
"iutbay/yii2-imagecache" : "*"
to the require section of your application's composer.json
file.
Configuration
You should :
- Add
ThumbAction
in one of your controller. - Modify your application configuration :
- add imageCache component,
- add url rule to handle request to missing thumbs.
Add ThumbAction
You need to add ThumbAction
in one of your controller so that imageCache can handle requests to missing thumbs and create them on demand. You could use site
controller :
class SiteController extends Controller { ... public function actions() { return [ ... 'thumb' => 'iutbay\yii2imagecache\ThumbAction', ... ]; } ... }
imageCache component config
You should add imageCache component in your application configuration :
$config = [ 'components' => [ ... 'imageCache' => [ 'class' => 'iutbay\yii2imagecache\ImageCache', 'sourcePath' => '@app/web/images', 'sourceUrl' => '@web/images', //'thumbsPath' => '@app/web/thumbs', //'thumbsUrl' => '@web/thumbs', //'sizes' => [ // 'thumb' => [150, 150], // 'medium' => [300, 300], // 'large' => [600, 600], //], ], ... ], ];
urlManager config
You should enable pretty urls :
http://www.yiiframework.com/doc-2.0/guide-start-installation.html#configuring-web-servers
You should modify your urlManager configuration :
$config = [ 'components' => [ ... 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ ... 'thumbs/<path:.*>' => 'site/thumb', ... ], ], ... ], ];
How to use
<?= Yii::$app->imageCache->thumb('@web/images/2014/test.jpg') ?> // <img src="/your-app/thumbs/2014/test_thumb.jpg" alt=""> <?= Yii::$app->imageCache->thumb('@web/images/2014/test.jpg', 'medium') ?> // <img src="/your-app/thumbs/2014/test_medium.jpg" alt=""> <?= Yii::$app->imageCache->thumb('@web/images/2014/test.jpg', 'medium', ['class'=>'img']) ?> // <img src="/your-app/thumbs/2014/test_medium.jpg" alt="" class="img">