kkamkou/tp-minify

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

1.2 2013-07-20 12:19 UTC

This package is not auto-updated.

Last update: 2024-09-23 13:57:34 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

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

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

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