imt/yii-assetic

此扩展将Assetic集成到Yii中

安装次数: 2,286

依赖项: 0

建议者: 0

安全: 0

星标: 5

关注者: 2

分支: 2

类型:yii-extension

dev-master 2015-02-10 09:09 UTC

This package is not auto-updated.

Last update: 2024-09-24 02:21:50 UTC


README

Build Status Coverage Status Dependencies Status

IMTYiiAssetic

概述

此扩展将Assetic集成到Yii中。

注意,此扩展处于开发阶段。使用时请自行承担风险。

安装

1. 使用Composer(推荐)

要使用Composer安装IMTYiiAssetic,只需将以下内容添加到您的composer.json文件中

{
    "require": {
        "imt/yii-assetic": "dev-master"
    }
}

请勿忘记要求由Composer生成的vendor/autoload.php文件。

然后,您可以通过在包含composer.json文件的目录中运行Composer的update命令来安装新的依赖项

$ php composer.phar update imt/yii-assetic

现在,Composer将自动下载所有必需的文件,并为您安装它们。接下来,您只需更新您的main.php文件,并注册新的扩展

return array(
    // ...
    'aliases'    => array(
        // ...
        'IMT\YiiAssetic' => __DIR__ . '/../../vendor/imt/yii-assetic/src/',
        // ...
    ),
    // ...
    'components' => array(
        // ...
        'assetManager' => array(
            'class' => 'IMT\YiiAssetic\AssetManager',
            // ...
        ),
        'clientScript' => array(
            'class' => 'IMT\YiiAssetic\ClientScript',
            // ...
        ),
        // ...
    ),
    // ...
);

用法

此扩展的主要目标是提供一组丰富的Assetic过滤器供Yii使用。在开发此扩展时发现,将Assetic集成到Yii中并不容易。Yii发布了一个整个目录(而非指定的文件),并且没有提供任何将资源合并的机制。

此扩展覆盖了一些核心Yii类,并为覆盖的类提供了一些新属性。以下列出这些属性及其用法。

AssetManager

公共属性

cache

确定资源是否将被缓存。

debug

确定是否启用调试模式。

filtersByExt

一个映射,定义了文件扩展名和过滤器之间的关系。

return array(
    // ...
    'components' => array(
        // ...
        'assetManager' => array(
            'class'        => 'IMT\YiiAssetic\AssetManager',
            'filtersByExt' => array(
                'css' => array('css_rewrite'),
                // more filters by ext
            ),
            // ...
        ),
        // ...
    ),
    // ...
);
userFilters

用户定义的过滤器,可以用来覆盖核心过滤器。

return array(
    // ...
    'components' => array(
        // ...
        'assetManager' => array(
            'class'   => 'IMT\YiiAssetic\AssetManager',
            'filters' => array(
                // built-in Assetic filters has already registered
                'css_rewrite' => 'Assetic\Filter\CssRewriteFilter',
                'smth'        => array(
                    'factoryClass' => 'IMT\YiiAssetic\SmthFilterFactory',
                    // some options that will be passed to the filter factory
                ),
                // more filters
            ),
            // ...
        ),
        // ...
    ),
    // ...
);
workers

一个键值对数组:键是别名,值是类名。

return array(
    // ...
    'components' => array(
        'assetManager' => array(
            'class'   => 'IMT\YiiAssetic\AssetManager',
            'workers' => array(
                'smth' => 'IMY\YiiAssetic\SmthWorker',
                // more workers
            ),
            // ...
        ),
        // ...
    ),
    // ...
);

ClientScript

每个用户定义的包都有以下新属性

filtersByExt

一个映射,定义了文件扩展名和过滤器之间的关系。如果没有指定,将使用在AssetManager下定义的filtersByExt属性。

combineTo

确定资源是否将合并成一个资源。实际上它是一个文件名,应省略文件扩展名。

return array(
    // ...
    'components' => array(
        'clientScript' => array(
            'class'    => 'IMT\YiiAssetic\ClientScript',
            'packages' => array(
                'smth' => array(
                    'basePath'     => 'application.js.src.smth',
                    'css'          => array(
                        'css/file.css',
                        'css/file2.css',
                    ),
                    'filtersByExt' => array(
                        'css' => array('css_rewrite'),
                    ),
                    'combineTo'    => 'smth',
                ),
                // more packages
            ),
            // ...
        ),
        // ...
    ),
    // ...
);

测试

$ make test

贡献

有关详细信息,请参阅CONTRIBUTING

鸣谢

许可

此扩展在MIT许可下发布。有关完整的许可证信息,请参阅与源代码一起分发的LICENSE文件。