vcomedia/vco-zf-minify

Zend Framework 2 headScript 和 headLink 视图助手包装器,用于压缩 CSS 和 JS。

dev-master 2016-09-13 06:00 UTC

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

特此授予任何获得此软件及其相关文档副本(“软件”)的人免费使用软件的权利,不受限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许软件的接受者为此目的而使用软件,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和不侵犯他人权利的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论该责任是基于合同、侵权或其他原因,是否因本软件或其使用或其他交易而产生。