iutbay/yii2-imagecache

该软件包最新版本(0.2)没有提供许可证信息。

Yii2的ImageCache

安装次数: 20,533

依赖项: 0

建议者: 0

安全性: 0

星标: 21

关注者: 3

分支: 12

开放问题: 4

类型:yii2-extension

0.2 2014-12-04 07:39 UTC

This package is not auto-updated.

Last update: 2024-09-24 04:05:29 UTC


README

与Drupal中的Image模块类似,此扩展将根据需求调整您的图像尺寸 :-)。如果缩略图不存在,则Web服务器的重写规则将请求传递给Yii,然后由ImageCache动态生成文件。

工作进行中...

功能

  • 按需图像调整大小
  • 文本水印
  • 图像水印

安装

安装此辅助工具的首选方式是通过 composer

运行以下命令之一

php composer.phar require "iutbay/yii2-imagecache" "*"

或将其添加

"iutbay/yii2-imagecache" : "*"

到您应用程序的 composer.json 文件的要求部分。

配置

您应该在

  • 控制器中添加 ThumbAction
  • 修改您的应用程序配置
    • 添加 imageCache 组件,
    • 添加处理请求到缺失缩略图的URL规则。

添加 ThumbAction

您需要在控制器中添加 ThumbAction,以便imageCache可以处理对缺失缩略图的请求并在需要时创建它们。您可以使用 site 控制器

class SiteController extends Controller
{
  ...
  public function actions()
  {
      return [
        ...
        'thumb' => 'iutbay\yii2imagecache\ThumbAction',
        ...
      ];
  }
  ...
}

imageCache 组件配置

您应该在应用程序配置中添加 imageCache 组件

$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 配置

您应该启用美观的URL

https://yiiframework.cn/doc-2.0/guide-start-installation.html#configuring-web-servers

您应该修改您的 urlManager 配置

$config = [
    'components' => [
      ...
      'urlManager' => [
        'enablePrettyUrl' => true,
        'showScriptName' => false,
        'rules' => [
          ...
          'thumbs/<path:.*>' => 'site/thumb',
          ...
        ],
      ],
      ...
    ],
];

如何使用

<?= 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">