中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

Yii2主題(Theme)用法詳解
來(lái)源:易賢網(wǎng) 閱讀:1768 次 日期:2016-08-11 14:11:07
溫馨提示:易賢網(wǎng)小編為您整理了“Yii2主題(Theme)用法詳解”,方便廣大網(wǎng)友查閱!

本文實(shí)例講述了Yii2主題(Theme)用法。分享給大家供大家參考,具體如下:

首先看看主要的配置方式:

'components' => [

  'view' => [

    'theme' => [

      'pathMap' => ['@app/views' => '@app/themes/basic'],

      'baseUrl' => '@web/themes/basic',

    ],

  ],

],

Yii中的主題功能主要由yii\base\Theme類(lèi)來(lái)實(shí)現(xiàn),它的主要思想是:先定義好一個(gè)一一對(duì)應(yīng)的字符串映射數(shù)組,然后對(duì)給定的字符串按照數(shù)組中的映射關(guān)系進(jìn)行字符串替換。

有如下映射:

$pathMap=[

    '@app/a' => '@app/aaa',

    '@app/b' => '@app/bbb',

    '@app/c' => [

        '@app/ccc/xxx',

        '@app/ccc/yyy',

      ],

];

對(duì)字符串 @app/a/site/index.php,由上面的映射關(guān)系可知會(huì)把@app/a替換為@app/aaa,生成結(jié)果為@app/aaa/site/index.php。

但要注意,這個(gè)還不是最終的結(jié)果。由于在Yii中是對(duì)文件路徑的操作,所以如果@app/aaa/site/index.php這個(gè)文件存在的話(huà),則會(huì)返回這個(gè)路徑,否則返回原路徑即:@app/a/site/index.php

如果有字符串@app/c/site/index.php,由于上面的映射知道@app/c對(duì)應(yīng)2個(gè)替換項(xiàng),Yii會(huì)從前開(kāi)始依次替換,先生成@app/ccc/xxx/site/index.php,如果這個(gè)文件存在,則返回這個(gè)路徑,否則繼續(xù)替換。

如果所有的替換結(jié)果都不存在對(duì)應(yīng)的文件,那么最后返回原路徑。

同時(shí)寫(xiě)多個(gè)替換的目標(biāo)值有這么一個(gè)好處:實(shí)現(xiàn)主題的繼承。

現(xiàn)在有一套默認(rèn)的主題default,如果現(xiàn)在要增加一套黑色的主題,有兩個(gè)辦法可以實(shí)現(xiàn)。

第一種:把所有的default中的視圖全部復(fù)制一份到blank目錄中。

第二種:只復(fù)制一份layout布局文件到blank目錄中,然后在布局文件中修改整體顏色。然后設(shè)置為:

$pathMap=[

    '@app/c' => [

        '@app/ccc/blank',

        '@app/ccc/default',

      ],

];

好處看到了吧,如果在blank中沒(méi)有找到文件,會(huì)從default中來(lái)查找,也就是說(shuō)blank中的文件會(huì)覆蓋default中存在的文件,從而實(shí)現(xiàn)了主題的繼承。

主題中的屬性:

$pathMap:這個(gè)就是用來(lái)設(shè)置替換映射關(guān)系的。

'pathMap' =>[

    '@app/views' => [

        '@app/themes/blank',

        '@app/themes/default',

    ],

    '@app/modules' => '@app/themes/default/modules',

    '@app/widgets' => '@app/themes/default/widgets'

],

這三個(gè)分別對(duì)views、modules和widgets應(yīng)用主題。

$baseUrl:這個(gè)用來(lái)設(shè)置要訪(fǎng)問(wèn)的資源的url(結(jié)尾不加“/”)

$basePath:設(shè)置資源所在的文件目錄

主題中的方法:

public function init()

{

    parent::init();

    //如果沒(méi)有設(shè)置$pathMap映射,則使用$basePath,

    if (empty($this->pathMap)) {

        /*

         * 如果$basePath也沒(méi)有設(shè)置,則出異常。

         * 也就是說(shuō) $pathMap和$basePath至少要設(shè)置一個(gè),如果兩個(gè)都設(shè)置了,優(yōu)先使用$pathMap

         */

      if (($basePath = $this->getBasePath()) === null) {

        throw new InvalidConfigException('The "basePath" property must be set.');

      }

      //設(shè)置當(dāng)前模塊的路徑和$basePath的映射關(guān)系

      $this->pathMap = [Yii::$app->getBasePath() => [$basePath]];

    }

}

public function applyTo($path)

//這個(gè)就是按照 $pathMap中的定義的映射關(guān)系來(lái)對(duì)$path進(jìn)行替換字符串的

public function applyTo($path)

{

    //對(duì)路徑中的"/"、“\”進(jìn)行統(tǒng)一替換

    $path = FileHelper::normalizePath($path);

    foreach ($this->pathMap as $from => $tos) {

       //映射數(shù)組中的來(lái)源(舊值)

      $from = FileHelper::normalizePath(Yii::getAlias($from)) . DIRECTORY_SEPARATOR;

      //如果在$path中有可替換的舊值

      if (strpos($path, $from) === 0) {

        $n = strlen($from);

        //對(duì)目標(biāo)值循環(huán),

        foreach ((array) $tos as $to) {

          $to = FileHelper::normalizePath(Yii::getAlias($to)) . DIRECTORY_SEPARATOR;

          //把$path中的$from替換為$to

          $file = $to . substr($path, $n);

          //如果是文件,直接返回

          if (is_file($file)) {

            return $file;

          }

        }

      }

    }

    return $path;

}

希望本文所述對(duì)大家基于Yii框架的PHP程序設(shè)計(jì)有所幫助。

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:Yii2主題(Theme)用法詳解
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢(xún)回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門(mén)公布的正式信息和咨詢(xún)?yōu)闇?zhǔn)!

2026上岸·考公考編培訓(xùn)報(bào)班

  • 報(bào)班類(lèi)型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢(xún) | 簡(jiǎn)要咨詢(xún)須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專(zhuān)用圖標(biāo)
聯(lián)系電話(huà):0871-65099533/13759567129 獲取招聘考試信息及咨詢(xún)關(guān)注公眾號(hào):hfpxwx
咨詢(xún)QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專(zhuān)用圖標(biāo)
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
欧美激情一级片一区二区| 亚洲精品美女在线| 国产亚洲欧美日韩精品| 亚洲男人第一网站| 国产精品揄拍一区二区| 久久精品免费播放| 亚洲国产视频直播| 欧美日产国产成人免费图片| 一区二区免费在线视频| 国产精品综合网站| 美女黄毛**国产精品啪啪| 一区二区电影免费观看| 国产精品丝袜白浆摸在线| 久久久久久久综合| 最新热久久免费视频| 国产精品久久久久免费a∨大胸| 欧美一级片一区| 亚洲国产欧美不卡在线观看| 欧美调教视频| 久久久免费精品| 亚洲一区二区三区在线观看视频| 国内精品99| 国产精品家教| 欧美成人性生活| 亚洲欧美精品suv| 亚洲国产精品一区制服丝袜| 国产精品久久久久久久久免费樱桃 | 在线中文字幕不卡| 国产日韩欧美在线看| 久久在线免费| 欧美一区二区三区免费视| 有码中文亚洲精品| 国产欧美日本一区二区三区| 欧美国产一区二区在线观看| 亚欧成人在线| 一区二区三区精品国产| 最近看过的日韩成人| 国产亚洲福利一区| 国产精品乱人伦中文| 欧美理论在线| 欧美成人国产| 老色鬼精品视频在线观看播放| 亚洲一级片在线观看| 亚洲精品一区二区在线| 在线播放日韩| 国产一区在线看| 国产伦精品一区二区| 国产精品a久久久久久| 欧美日韩精品二区| 蜜臀av一级做a爰片久久| 久久精品在线视频| 久久久综合精品| 久久女同互慰一区二区三区| 久久国产精品久久久久久电车| 亚洲在线国产日韩欧美| 亚洲在线播放| 欧美尤物巨大精品爽| 欧美一区二区在线播放| 欧美在线欧美在线| 久久久免费精品视频| 老**午夜毛片一区二区三区| 毛片一区二区| 欧美精品色网| 欧美视频一区二区三区| 国产精品久久久久77777| 国产精品视频99| 国产视频亚洲精品| 尤物精品国产第一福利三区 | 最新国产精品拍自在线播放| 亚洲成人在线免费| 亚洲高清不卡在线| 91久久黄色| 亚洲国产精品久久久久婷婷884| 在线成人欧美| 亚洲精品在线观看免费| 一本久道久久综合狠狠爱| 亚洲自拍三区| 亚洲欧美一区在线| 久久久噜噜噜久噜久久| 欧美高清视频| 国产精品在线看| 激情欧美一区| 一本色道婷婷久久欧美| 午夜精品久久久久久久白皮肤 | 久久精品在线观看| 蜜桃av一区| 国产精品成人在线观看| 国产在线麻豆精品观看| 亚洲自拍偷拍色片视频| 午夜在线成人av| 久久夜色精品国产欧美乱| 欧美日韩国产丝袜另类| 国产美女精品免费电影| 91久久精品国产| 欧美一区二区三区在线| 欧美精品久久久久久久久老牛影院| 国产精品久久久久久久9999| 依依成人综合视频| 亚洲在线一区| 欧美日本免费| 激情综合自拍| 欧美诱惑福利视频| 欧美日韩四区| 亚洲精品欧洲| 久热这里只精品99re8久| 国产精品福利av| 91久久国产综合久久| 久久激情综合网| 国产精品高潮呻吟久久av无限| 在线欧美日韩精品| 欧美制服第一页| 国产精品日本一区二区| 亚洲麻豆国产自偷在线| 另类人畜视频在线| 狠狠综合久久| 欧美亚洲在线视频| 国产精品vip| 日韩午夜免费视频| 欧美国产日产韩国视频| 亚洲动漫精品| 久久在线免费视频| 在线观看国产日韩| 久久手机精品视频| 韩日欧美一区二区三区| 欧美精品在线一区二区| 国内成人精品视频| 午夜精品久久久久久久久久久| 欧美日韩视频在线第一区| 影视先锋久久| 乱人伦精品视频在线观看| 国内成+人亚洲+欧美+综合在线| 欧美怡红院视频| 国产喷白浆一区二区三区| 亚洲午夜久久久| 欧美日韩中文字幕在线| 一道本一区二区| 欧美三级在线| 亚洲午夜久久久久久久久电影院 | 欧美国产国产综合| 一区二区视频在线观看| 久久久久国产精品午夜一区| 国内一区二区三区在线视频| 久久免费视频观看| 亚洲电影中文字幕| 欧美精品久久久久久久| 中文一区二区| 国产精品日韩一区| 久久av资源网| 亚洲国产精品热久久| 欧美日韩国产a| 亚洲网友自拍| 国产一区二区0| 蜜臀va亚洲va欧美va天堂| 亚洲精品久久久蜜桃| 欧美亚日韩国产aⅴ精品中极品| 亚洲影院免费| 伊人精品久久久久7777| 国产精品卡一卡二卡三| 欧美一级大片在线免费观看| 国产亚洲一区二区三区在线播放| 久久久久久9999| 亚洲国语精品自产拍在线观看| 欧美日韩福利在线观看| 欧美在线亚洲综合一区| 亚洲激情电影在线| 国产精品v欧美精品v日本精品动漫| 欧美一级一区| 一本色道久久综合亚洲精品高清 | 国产精品毛片a∨一区二区三区| 欧美一区二区视频网站| 亚洲福利视频专区| 国产精品videosex极品| 久久久久久亚洲精品中文字幕 | 亚洲最新视频在线| 国产精品一区2区| 欧美高清你懂得| 欧美伊人久久久久久久久影院| 亚洲激情电影在线| 国产婷婷色综合av蜜臀av | 毛片精品免费在线观看| 一区二区高清在线| 黄页网站一区| 国产精品一级在线| 欧美色道久久88综合亚洲精品| 久久免费观看视频| 亚洲欧美大片| 国产精品99久久久久久久久| 一区免费观看| 国产欧美日韩综合一区在线观看| 欧美精品高清视频| 乱中年女人伦av一区二区| 欧美一区二区性| 亚洲欧美国产日韩天堂区| 日韩视频在线免费| 在线视频国产日韩| 激情久久一区| 精品电影一区| 狠狠色噜噜狠狠色综合久| 国产日韩精品久久| 国产麻豆一精品一av一免费|