Yii2如何引入第三方類庫

在Yii2中如何恰當(dāng)?shù)囊雑s、css對(duì)于新手而言是一件較為棘手的事情。很多時(shí)候我們對(duì)幫助文檔以及廣大網(wǎng)友的教程理解不深,而導(dǎo)致引入失敗,耗費(fèi)了大量的時(shí)間。尤其是對(duì)于我們使用bower或composer下載的第三方庫而言。因此,在本文中,我們將介紹如何引入第三方的類庫。該方法誠實(shí)有效,且筆者鑒于是仿照Yii源碼所得,厚顏認(rèn)為較為恰當(dāng),不當(dāng)之處且做笑資,不必直面指出。

假入我們要引入的bootstrap-switch類庫目前處于vendor文件夾下面,我們直觀的考慮能夠使用AssetBundle引入。在yii2的高級(jí)模板里邊已經(jīng)有了這么個(gè)文件,后端文件的內(nèi)容大致為

class AppAsset extends AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web';
    public $css = [
        'css/site.css',
    ];
    public $js = [

    ];
    public $depends = [
        'yii\web\YiiAsset',
        'yii\bootstrap\BootstrapAsset',
    ];


}

像往常引入單獨(dú)的js文件一樣,我們自然的使用

public $js = [
            '@vendor/....';
    ];

But,發(fā)現(xiàn)這個(gè)路徑?jīng)]有被正確的解析出來,那好,我們手動(dòng)解析,

public $js = [
            Yii::getAlias('@vendor/....');
    ];

But,錯(cuò)誤繼續(xù),這不能作為js的默認(rèn)值。這可如何是好,本人才淺,著實(shí)迷糊了半天。后來想到y(tǒng)ii2自身也引入了一些js、css類庫,我何不仿照它來做。打開vendor/yiisoft/yii2/web/YiiAsset.php,內(nèi)容大致為

class YiiAsset extends AssetBundle
{
    public $sourcePath = '@yii/assets';
    public $js = [
        'yii.js',
    ];
    public $depends = [
        'yii\web\JqueryAsset',
    ];
}

瞬間恍然大悟,原來他對(duì)不同位置的類庫單獨(dú)定義了一些AssetBundle,而在sourcePath的默認(rèn)值中可以使用別名。那么依葫蘆畫瓢子,就這樣

class SwitchAsset extends AssetBundle {

    public $sourcePath = '@vendor/bower/bootstrap-switch/dist';

    public $js = [
        'js/bootstrap-switch.min.js',
    ];

    public $css = [
        'css/bootstrap3/bootstrap-switch.min.css',
    ];
}

然后在需要引入這個(gè)庫的視圖文件中加入

SwitchAsset::register($this);

完美一擊。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,703評(píng)論 4 61
  • 嗯哼嗯哼蹦擦擦~~~ 轉(zhuǎn)載自:https://github.com/Tim9Liu9/TimLiu-iOS 目錄 ...
    philiha閱讀 5,272評(píng)論 0 6
  • 博瑜閱讀 300評(píng)論 0 0
  • 這天,我們搬新家,朋友們都興高采烈地來家里吃飯,我也很高興,但傷神的是,崽崽已經(jīng)連續(xù)拉肚子好幾天,今天似乎嚴(yán)重了,...
    往者不諫5閱讀 369評(píng)論 2 2
  • 時(shí)間回退到2014年清明節(jié)小長假 2014年4.5號(hào) 放假當(dāng)天下午你發(fā)來微信,假期一起出去玩撒,市內(nèi)或市外都可以。...
    sweetrandy閱讀 136評(píng)論 0 3

友情鏈接更多精彩內(nèi)容