slim-image-resize, 用于瘦框架的图像调整中间件

分享于 

5分钟阅读

GitHub

  繁體 雙語
Image Resize Middleware for Slim Framework
  • 源代码名称:slim-image-resize
  • 源代码网址:http://www.github.com/tuupola/slim-image-resize
  • slim-image-resize源代码文档
  • slim-image-resize源代码下载
  • Git URL:
    git://www.github.com/tuupola/slim-image-resize.git
    Git Clone代码到本地:
    git clone http://www.github.com/tuupola/slim-image-resize
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/tuupola/slim-image-resize
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    图像调整中间件的大小为 Slim

    这个中间件实现了基于图像文件名的自动图像调整。

    AuthorSoftware LicenseBuild StatusHHVM StatusCoverage

    安装

    你可以使用 Composer 安装最新版本。

    
    $ composer require tuupola/slim-image-resize
    
    
    
    

    配置

    配置选项作为 array 传递。 没有强制参数。

    $app=newSlimSlim();$app->add(newSlimMiddlewareImageResize());

    你可以配置允许的图像扩展名和高速缓存文件夹。 缓存文件夹必须是服务器进程可以写的。 图像质量仅适用于jpg图像。 显示的选项选项 below 也是中间件使用的默认选项。

    $app=newSlimSlim();$app->add(newSlimMiddlewareImageResize(["extensions"=> ["jpg", "jpeg", "png", "gif"],"cache"=>"cache","quality"=>90]));

    缓存

    为了使缓存工作,你还必须将下面的内容添加到你的 。htaccess文件中。 这些规则应该在Slim重写规则之前添加。 文件夹 NAME 必须与你作为中间件配置选项传递的相同。 缓存重写规则只在第一个请求被PHP服务。 所有后续请求都由缓存文件夹中的static 文件提供。

    
    # Check for cached image in cache folder.
    
    
    RewriteCond %{REQUEST_METHOD} ^GET$
    
    
    RewriteCond %{DOCUMENT_ROOT}/cache/%{REQUEST_URI} -f
    
    
    RewriteRule ^(.*)$/cache/$1 [L,QSA]
    
    
    
    

    如果你的瘦应用程序安装到子文件夹中,请改为使用以下重写规则。 本示例假定子文件夹被称为 example

    
    RewriteBase/example
    
    
    
    # Check for cached image in cache folder.
    
    
    RewriteCond %{REQUEST_METHOD} ^GET$
    
    
    RewriteCond %{DOCUMENT_ROOT}/example/cache/%{REQUEST_URI} -f
    
    
    RewriteRule ^(.*)$/example/cache/example/$1 [L,QSA]
    
    
    
    RewriteCond %{REQUEST_FILENAME}!-f
    
    
    RewriteRule ^ index.php [QSA,L]
    
    
    
    

    用法

    通过配置中间件,你可以通过更改文件名来创建不同大小的图像。

    <!-- This is the original image --><imgsrc="images/viper.jpg"><!-- Images below will be resized --><imgsrc="images/viper-400x200.jpg">
    <imgsrc="images/viper-x200.jpg">
    <imgsrc="images/viper-200x.jpg">
    <imgsrc="images/viper-100x100.jpg">

    HTML 上面 将生成以下图像。

    Original400x200x200200x100x100

    安全性

    默认情况下,可以创建任意大小的图像。 如果同时缓存图像,你应该限制允许哪些大小的中间件创建。 否则,就可以发出不同大小的图像大小的请求。

    $app=newSlimSlim();$app->add(newSlimMiddlewareImageResize(["sizes"=> ["400x200", "x200", "200x", "100x100"]]));

    如果你有不同大小的不同数量,也可以使用密钥签名图像。

    $app->add(newSlimMiddlewareImageResize(["secret"=>"s11kr3t"]));

    你必须在图像名称中包含签名。

    <imgsrc="images/viper-400x200-175ecbf97b7faebb.jpg">

    使用以下代码生成 上面 映像的签名。

    $sha1=sha1("400x200:s11kr3t");$signature=substr($sha1, 0, 16);

      framework  图像  sli  中间件  SLIM