Zend Framework 2 模块,使用 Steve (mrclay) Clay 的 Minify 库来混淆样式和脚本

1.1 2016-02-02 09:15 UTC

This package is not auto-updated.

Last update: 2024-09-20 09:21:36 UTC


README

此模块使用 Steve (mrclay) Clay 的 Minify 库进行样式和脚本混淆。

安装

Composer

  • 安装 Composer
  • "kkamkou/tp-minify": "dev-master" 添加到 composer.json 文件的 require 部分
  • 执行 composer update
  • 'modules' => array('TpMinify', ...) 添加到您的项目的 application.config.php 文件中。 重要事项是确保 "TpMinify" 在任何其他模块之前。
  • 打开(仅为例子)Frontend/config/module.config.php 并添加以下配置模板
'TpMinify' => array(
    'serveOptions' => array(
        'minApp' => array(
            'groups' => array(
                'css' => array(
                    '//../module/Frontend/public/css/buttons.css',
                    '//../module/Frontend/public/css/forms.css'
                ),
                'js' => array(
                    '//js/common.js'
                )
            )
        )
    )
)
  • 将样式放入 Head 部分
$this->headLink()->prependStylesheet($this->basePath('/min?g=css'))
$this->headScript()->prependFile($this->basePath('/min?g=js'))
// or
$this->headLink()->prependStylesheet($this->basePath('/min?f=example.css'))

选项

带有变量描述的源代码。例如

// $min_cacheFileLocking
'TpMinify' => array('cacheFileLocking' => ...);
// $min_serveOptions['bubbleCssImports']
'TpMinify' => array('serveOptions' => array('bubbleCssImports' => ...));
// etc.

如何操作

如何处理 /module/YourModule/public/images/ 目录?

a. 创建指向此模块的符号链接(/public/images/modules/YourModule)并启用 手动重写

'TpMinify' => array(
    'serveOptions' => array(
        'rewriteCssUris' => false,
        'minifierOptions' => array(
            'text/css' => array('prependRelativePath' => '/images/modules/YourModule/')
        )
    )
)

b. 如果需要,添加 symlinks 选项,该选项在 配置文件此处 有描述。

'minifierOptions' => array(
    'text/css' => array(
        'symlinks' => array(
            '//fonts' => Module::DIR . '/public/fonts'
        )
    )
)
是否可以压缩内联脚本?

启用 HeadScript 视图助手

'TpMinify' => array(
    'helpers' => array(
        'headScript' => array(
            'enabled' => true,
            'options' => array() // serveOptions here if needed
        )
    )
)
// and use it in your templates
<?$this->headScript()->captureStart()?>
$(function() {
    console.log('hello');
});
<?$this->headScript()->captureEnd()?>
我有两个或更多模块,如何处理?
  1. 将公共内容放入 global.php
  2. 并将模块相关的内容放入每个模块的 module.config.php
  3. 为组使用前缀:例如 backend-cssfrontend-css 等。

许可证

MIT 许可证 (MIT)

版权所有 © 2013-2014 Kanstantsin Kamkou

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

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

软件按“原样”提供,不提供任何形式的保证,明示或暗示,包括但不限于适销性、针对特定目的的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是否基于合同、侵权或其他行为,源于、因或与软件或其使用或其他方式有关。