vcomedia / vco-zf-minify
Zend Framework 2 headScript 和 headLink 视图助手包装器,用于压缩 CSS 和 JS。
dev-master
2016-09-13 06:00 UTC
Requires
- php: >=5.3.3
- mrclay/minify: >=2.2
- vcomedia/vco-zf-mediapath: dev-master
- zendframework/zendframework: >=2.2
This package is not auto-updated.
Last update: 2024-09-28 18:53:06 UTC
README
此模块扩展了默认的 headScript、inlineScript 和 headLink 视图助手,提供了一种简单的方法,为基于 Zend Framework 2 的应用程序添加 CSS/JS 压缩功能。目前,使用 Steve (mrclay) Clay 的 Minify 库进行所有压缩。然而,可以覆盖压缩服务工厂以提供替代压缩服务(例如,Google 的 Closure Compiler),我们计划很快将其作为一个选项包括在内。
安装
Composer
- 安装 Composer
- 使用 Composer 在您的应用程序的 vendor 目录中安装模块。在您的
composer.json
文件中添加以下行。
{ "require": { "vcomedia/vco-zf-minify": "dev-master" } }
- 执行
composer update
- 在您的 ZF2 的
application.config.php
文件中启用模块。
return array( 'modules' => array( 'VcoZfMinify' ) );
- 将
vco-zf-minify/config/module.vco-zf-minify.local.php.dist
文件复制并粘贴到您的config/autoload
文件夹中,并使用您的配置设置进行自定义。请确保从您的文件中删除.dist
。您的module.vco-zf-minify.local.php
可能看起来像以下示例
<?php return array( 'VcoZfMinify' => array( 'docRootDir' => 'public/', //path to docRoot relative to app root - (preceeding and trailing slashes ignored) 'cacheDir' => 'cache/', //cache folder in documentRoot - (preceeding and trailing slashes ignored) 'minifyCSS' => array( 'enabled' => true ), 'minifyJS' => array( 'enabled' => true ) ) );
- 将样式和脚本添加到您的布局文件中(也可以通过控制器添加)
echo $this->headLink() ->prependStylesheet('some/cssfile1.css', 'all') ->prependStylesheet('some/cssfile2.css', 'all') ->prependStylesheet('some/cssfile3.css', 'all'); echo $this->headScript() ->prependFile('some/jsfile1.js') ->prependFile('some/jsfile2.js') ->prependFile('some/jsfile3.js'); echo $this->inlineScript() ->prependFile('some/jsfile1.js') ->prependFile('some/jsfile2.js') ->prependFile('some/jsfile3.js');
如果启用压缩,输出将类似于
<link href="/cache/2f262b5f19b4ea014c71b946e40a59d5.css?v=1441224700" media="all" rel="stylesheet" type="text/css"> <script type="text/javascript" src="/cache/73df60b254e54f657ac5d9e7bf7bed4d.js?v=1440633356"></script>
选项
可以按文件禁用压缩
$this->headScript()->setAllowArbitraryAttributes(true) ->prependFile('some/path.js', 'text/javascript', array('minify' => false));
注意
- 任何带有条件的文件都不会被压缩。
$this->headScript()->appendFile('js/ie6.js', 'text/javascript', array('conditional' => 'IE6',)); $this->headLink()->appendStylesheet('/css/ie6.css', 'screen', 'IE6');
- 每个 CSS 媒体类型(例如,'screen'、'print'、'all' 等)将生成一个单独的压缩 CSS 文件。
许可
MIT 许可证 (MIT)
版权所有 (c) 2015 Vahag Dudukgian
特此授予任何获得此软件及其相关文档副本(“软件”)的人免费使用软件的权利,不受限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许软件的接受者为此目的而使用软件,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和不侵犯他人权利的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论该责任是基于合同、侵权或其他原因,是否因本软件或其使用或其他交易而产生。