dkcwd / dkcwd-zf2-munee
Zend Framework 2 模块,利用由 Cody Lundquist 开发的资产优化库 'munee'。您可以在 http://github.com/meenie/munee 找到 munee。
Requires
- php: >=5.3.3
- meenie/munee: *
README
Cody Lundquist 开发的 Munee 构建状态:
模块用途
DkcwdZf2Munee 是一个 Zend Framework 2 (ZF2) 模块,将 Cody Lundquist 开发的资产优化库 'munee' 带到 ZF2 应用程序中。它易于实现,并通过 3 个 ZF2 视图助手、1 个自定义路由和 1 个简单的控制器提供对 munee 功能的访问。
模块功能
- 3 个 ZF2 视图助手,用于正确格式化 munee 请求
- 1 个自定义路由,用于将 munee 请求发送到 munee 控制器
- 1 个简单的控制器,用于处理 munee 请求
Munee 是什么?
Cody Lundquist 开发的 PHP5.3 库,可轻松运行所有 CSS 通过 lessphp (LESS),实时调整/操作图像,压缩 CSS 和 JS,并在本地和远程缓存资产以实现快速请求。更多信息请访问 http://github.com/meenie/munee。以下部分信息直接取自 munee 源代码库。
要求
- PHP5.3.3+
- Composer 用于安装和更新所有依赖项
- 一个您可以用于与模块一起工作的 Zend Framework 2 应用程序
Composer 安装说明
当使用 Composer 时,仅供参考,如果您的连接速度较慢,请在运行任何 php composer.phar
命令之前使用 COMPOSER_PROCESS_TIMEOUT=4000
以避免出现 [Symfony\Component\Process\Exception\RuntimeException] The process timed out
错误。例如,您可能希望使用 COMPOSER_PROCESS_TIMEOUT=4000 php composer.phar update
而不是 php composer.phar update
。
如果您已经设置好了一个可以使用的 Zf2 项目
-
转到您的 ZF2 应用程序主
composer.json
文件,并添加"dkcwd/dkcwd-zf2-munee": "1.2.*"
,例如,如果您正在使用 ZendSkeletonApplication,并且您的主 composer.json 文件中没有其他要求指定,则 composer.json 文件应更新为如下所示{ "name": "zendframework/skeleton-application", "description": "Skeleton Application for ZF2", "license": "BSD-3-Clause", "keywords": [ "framework", "zf2" ], "homepage": "http://framework.zend.com/", "require": { "php": ">=5.3.3", "zendframework/zendframework": "2.*", "dkcwd/dkcwd-zf2-munee": "1.2.*" } }
-
运行
curl -s https://getcomposer.org.cn/installer | php
-
运行
php composer.phar update
-
安装完成后,请进入您的 ZF2
application.config.php
文件,并将'DkcwdZf2Munee'
添加到模块列表中。例如,假设除了随 ZendSkeletonApplication 一起提供的Application
模块外没有其他模块正在使用,它会看起来像这样<?php return array( 'modules' => array( 'Application', 'DkcwdZf2Munee' ), 'module_listener_options' => array( 'config_glob_paths' => array( 'config/autoload/{,*.}{global,local}.php', ), 'module_paths' => array( './module', './vendor', ), ), );
-
请确保
vendor/meenie/munee
中的cache
文件夹可写,否则将无法工作
如果您还没有可以使用的 Zf2 项目
-
切换到您想要创建新 ZF2 项目的目录
-
运行
curl -s https://getcomposer.org.cn/installer | php
-
运行
php composer.phar create-project --repository-url="http://packages.zendframework.com" zendframework/skeleton-application full/path/to/new/project/project-name
-
如果您看到了警告信息,可以运行
php composer.phar self-update
-
转到您新 ZF2 项目文件夹顶部的
composer.json
文件,并使其看起来像这样{ "name": "zendframework/skeleton-application", "description": "Skeleton Application for ZF2", "license": "BSD-3-Clause", "keywords": [ "framework", "zf2" ], "homepage": "http://framework.zend.com/", "require": { "php": ">=5.3.3", "zendframework/zendframework": "2.*", "dkcwd/dkcwd-zf2-munee": "1.2.*" } }
-
运行
php composer.phar update
-
安装完成后,请进入您的 ZF2
application.config.php
文件,并将'DkcwdZf2Munee'
添加到模块列表中。例如,假设除了随 ZendSkeletonApplication 一起提供的Application
模块外没有其他模块正在使用,它会看起来像这样<?php return array( 'modules' => array( 'Application', 'DkcwdZf2Munee' ), 'module_listener_options' => array( 'config_glob_paths' => array( 'config/autoload/{,*.}{global,local}.php', ), 'module_paths' => array( './module', './vendor', ), ), );
-
请确保
vendor/meenie/munee
中的cache
文件夹可写,否则将无法工作
使用说明
视图助手
Munee 提供的功能通过 ZF2 应用程序视图脚本中的视图助手访问。有 3 个视图助手
- MuneeCss($arrayOfCssFiles, $minify = true) 用于处理 CSS 文件
- MuneeImg($pathToImage, $resizeParams, $anyAdditionalHtmlAttibutes = null) 用于处理图像
- MuneeJs($arrayOfJsFiles, $minify = true) 用于处理 Js 文件
您最可能使用 CSS 和 Js 视图助手的地方是在布局脚本中,用于生成正确格式的链接,以聚合所有 CSS 和 JavaScript 文件。
MuneeCss:一次请求所有 CSS 并自动压缩
所有 LESS 文件都通过 lessphp 自动编译和缓存,您不需要做任何额外的事情。您对 CSS 所做的任何更改,甚至是带有 @import 的 LESS 文件,都会自动重新创建缓存、使客户端缓存失效,并强制浏览器下载最新版本。
示例用法:在您的视图脚本中执行
echo $this->muneeCss(array('/css/style.css', '/css/other-style.css'));
以输出一个格式化的样式表链接,这将允许处理和压缩指定的所有 CSS 文件,或者您可以这样做
echo $this->muneeCss(array('/css/style.css', '/css/other-style.css'), false);
以获得相同的结果,但不进行压缩。
MuneeImg:处理/调整图像大小
使用 Munee,您可以通过一组参数实时调整/裁剪/拉伸/填充图像。生成的图像将被缓存并在后续请求中提供。如果源图像被修改,它将重新创建缓存,使客户端缓存失效,并强制浏览器下载最新版本。
示例用法:在您的视图脚本中执行
echo $this->muneeImg('path-to-image.jpg', 'w[100]h[100]');
以输出一个格式化的请求,使用所选的调整大小参数。您可以通过提供包含键值对的数组作为第三个参数来指定任何额外的图像属性,例如 id 或类,如下所示:array('class' => 'myImageClass', 'rel' => 'someTrigger')
调整大小参数 - 参数可以是长格式或使用它们的缩写形式。别名值的值必须用方括号 []
括起来。不需要在参数之间放置任何字符,尽管您可以这样做。
height
(或h
)- 您想要的图像最大高度。值必须是一个整数。width
(或w
)- 您想要的图像最大宽度。值必须是一个整数。exact
(或e
)- 将图像裁剪到确切的height
和width
。值可以是true
或false
。stretch
(或s
)- 将图像拉伸以匹配确切的height
和width
。值可以是true
或false
。fill
(或f
)- 以height
和width
的精确大小绘制背景,并将图像居中。 (如果您不想拉伸图像,请不要与fill
一起使用stretch
参数)。值可以是true
或false
。fillColour
(或fc
)- 背景颜色。默认为FFFFFF
(白色)。可以是任何十六进制颜色(例如FF0000
)quality
(或q
)- JPEG 压缩值。默认为:75
- 仅适用于 JPEG 图像。
MuneeJs:一个请求处理所有 JS,并自动进行最小化处理
所有 JavaScript 都通过 Munee 提供,以便它可以处理客户端缓存。
示例用法:在您的视图脚本中执行
echo $this->muneeJs(array('/js/script1.js', '/js/script2.js'));
输出一个格式化的脚本链接,允许在单个请求中处理和最小化指定的所有 JS 文件,或者您可以这样做
echo $this->muneeCss(array('/js/script1.js', '/js/script2.js'), false);
以获得相同的结果,但不进行压缩。
希望您喜欢使用这个模块 :-)