yii2项目实战-资源包管理
更新于 2016年12月23日 by 白狼 被浏览了 1361 次

资源包管理是个啥东东呢,可能一听上去有些蒙,没听过没见过。其实这个是经常跟大家伙打交道的主儿,平时我们加载的css,js都得靠他,更常见的是yii内部很多小物件也都是利用他对资源进行管理的。我们后面也准备自己手动写一个上传的小物件,所以在开始本章之前,你先要认识到我们这节要说的知识的重要性。很重要哈,为此我们也会说的很详细,看完后若是有任何问题或者想要点赞的,最下面随便哈。

我们这里所谓的资源指就是静态文件css和js,不懂的我先提个醒。

有同学要疑问了,我更喜欢直接通过script标签和link标签引入js和css,没必要学这个。

我们使用yii框架无非也是便于实际开发,你php都会干啥还用yii呢?对吧。

我们通过程序自动管理资源包的好处,也是为了避免引入各种css,js,对于一些复杂的js可能还要手动去解决各种依赖,再或者我们要升级一些资源文件,难不成你还要一个一个的找,然后再去替换?甚是麻烦!

啰哩啰唆又双叒叕那么多,我们小碎步快速步入正题。

还要再啰嗦两句(一般上课前你们不都是喜欢哪些啰嗦的老师嘛),资源包是个啥东西我们目前只有一个模糊的印象,可眼见为实心里有个谱总是好的。

资源包就是一个类,一个包含着我们要发布的css和js以及一些依赖包的类,当然他还有一个英文名:Asset Bundles。我们来看一个简单的资源包的定义(其实yii自带的我们一开始就在使用了)。

打开backend\assets目录,找到AppAssets类,我们在该类原有的基础之上补充了几个属性

<?php

namespace backend\assets;

use yii\web\AssetBundle;

/**
 * Main backend application asset bundle.
 */
class AppAsset extends AssetBundle
{
    // public $sourcePath = '@common/widgets/upload';
    public $basePath = '@webroot';
    public $baseUrl = '@web';
    public $css = [
        'css/site.css',
    ];
    public $js = [
    ];
    public $depends = [
        'yii\web\YiiAsset',
        'yii\bootstrap\BootstrapAsset',
    ];
}

我们先来分析下上面的各项都是什么意思,然后再看看怎么使用这个资源包(就是上面这个类)。

1、定义的资源包要继承yii\web\AssetBundle类

2、我们先解释下资源发布的概念:就是把我们资源包所定义的资源,拷贝一份

继续阅读

还有65%的精彩内容,购买继续阅读