亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 編程 > PHP > 正文

Yii2.0源碼分析之主題(Theme)

2020-03-22 20:28:02
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
  • 主題功能大家并不陌生,在Yii中同樣也提供了主題功能。

    原文鏈接:http://www.yiifans.com/forum.php?mod=viewthread&tid=61

    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è)置要訪問(wèn)的資源的url(結(jié)尾不加“/”)$basePath:設(shè)置資源所在的文件目錄

    a

    主題中的方法:

    html' target='_blank'>public function init()

    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;}

    原文鏈接:http://www.yiifans.com/forum.php?mod=viewthread&tid=61

    PHP編程

    鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

  • 發(fā)表評(píng)論 共有條評(píng)論
    用戶(hù)名: 密碼:
    驗(yàn)證碼: 匿名發(fā)表
    亚洲午夜久久久久久久久电影网| 日韩成人伦理电影在线观看| 久久精品国产99精品国产亚洲性色| 色爱精品视频一区| 97国产精品视频| 黄色片在线免费观看| 欧美多人野外伦交| 成人免费看的视频| 国产精品欧美综合| 你懂的网站在线观看网址| av电影在线免费观看| 国产哺乳奶水91在线播放| 日本中文在线视频| 久久精品国产精品亚洲精品| 精品无码人妻一区二区三| 欧美三级午夜理伦三级中文幕| 国产精品久久久久久久久搜平片| 天堂在线观看一卡二卡三卡四卡| 丁香啪啪综合成人亚洲| 久99久精品视频免费观看| 久久久久久久电影一区| 成年人视频免费在线播放| 免费黄色成人| 亚洲视频手机在线观看| 国产一级免费在线观看| 黑人精品一区二区| 日韩精品一区二区三区视频在线观看| 精品在线免费观看| 伊人久久大香线蕉综合影院首页| 日韩欧美在线视频| 久久精品噜噜噜成人av农村| 国产又猛又黄的视频| 欧美啪啪网站| 三级国产三级在线| 欧美激情 一区| 污污软件在线观看| 国产一级又黄| 成年人免费网站| 国产又粗又硬又长| 精品人妻在线播放| 亚洲电影有码| 久久久久成人精品| 中文天堂网在线www| 日本h在线观看| 茄子视频成人免费观看| 97人妻精品一区二区三区| 天天插天天射天天干| 粉嫩一区二区三区四区公司1| 亚洲二区视频在线| 欧美三级电影网址| 99在线免费观看视频| 艳母动漫在线看| 午夜亚洲激情| 91麻豆视频在线观看| 亚洲国产成人精品综合99| 国产精华一区二区三区| 国产九九视频一区二区三区| 在线激情小视频| a级毛片免费观看在线| 男女男精品网站| 欧洲精品99毛片免费高清观看| 欧美精品与人动性物交免费看| 樱空桃在线播放| 丁香六月婷婷综合| 男男做爰猛烈叫床爽爽小说| 国产美女一区| 久久久夜精品| 久久国产成人午夜av影院宅| 成人资源在线| 午夜精品免费视频| 宅男噜噜噜66国产精品免费| 日本亚洲欧美在线| 欧美性xxxx在线播放| 欧美男男gaygay1069| 四虎永久在线精品免费一区二区| 亚洲国产999| 偷拍日韩校园综合在线| 级毛片内射视频| 综合精品久久久| 99这里只有精品视频| 91年精品国产| 综合欧美国产视频二区| 亚洲人体大胆视频| 黄色在线观看视频网站| 亚洲成人性视频| 亚洲娇小娇小娇小| 欧美亚洲高清一区二区三区不卡| 黄色三级生活片| 国产精品久久久久久久av| 97婷婷涩涩精品一区| 欧美日韩免费在线视频| 性欧美video另类hd尤物| 亚洲色成人一区二区三区小说| 国产亚洲视频在线| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美不卡一区二区三区| 羞羞答答国产精品www一本| 激情视频在线观看免费| 国产精品毛片一区视频| 91国产丝袜播放在线| 91极品尤物在线播放国产| 麻豆精品久久久| vam成人资源在线观看| 欧美午夜不卡在线观看免费| 一级黄色香蕉视频| 色乱码一区二区三区熟女| 久久久久国色av免费观看性色| 亚洲午夜一级| 久久人人爽人人爽爽久久| 少妇无套内谢久久久久| 三妻四妾完整版在线观看电视剧| 亚洲欧洲国产日韩| 99精品欧美一区二区三区综合在线| 天堂俺去俺来也www久久婷婷| 日韩精品欧美激情一区二区| 国产成人亚洲精品自产在线| 国产亚洲一区二区三区啪| 精品国产欧美成人夜夜嗨| 九九久久精品这里久久网| 天天骑天天干| 欧美性videosxxxxx| 日本三级视频在线播放| 久久99国产精品久久99大师| 天堂a√中文在线| 麻豆成人在线看| caoporn成人| 日韩欧美高清一区| 人妖一区二区三区| 性久久久久久久久久久| 乱码第一页成人| 国产精品欧美激情在线播放| 亚洲精品国产一区二区三区四区在线| 亚洲丝袜另类动漫二区| 欧美亚洲视频一区| 国产成人a亚洲精v品无码| 亚洲图片欧美日产| 97精品国产综合久久久动漫日韩| 可播放的18gay1069| 精品人妻一区二区色欲产成人| 网友自拍区视频精品| 国产日韩精品一区二区浪潮av| 久久亚洲精品国产精品紫薇| free性欧洲69| 国产偷国产偷亚洲高清97cao| 制服.丝袜.亚洲.中文.综合| 欧美精品乱码视频一二专区| 亚洲午夜小视频| 亚洲国产欧美一区二区三区丁香婷| 欧美不卡高清| 亚洲h视频在线观看| 麻豆精品国产91久久久久久| 久久久久久国产精品视频| 午夜视频在线看| www.98色噜噜噜| 精品一区二三区| 日本在线中文字幕一区| 午夜在线观看91| aaaa一级片| 免费成人你懂的| 国产又粗又猛视频免费| 亚洲综合天堂网| 91av在线免费播放| 7777精品伊人久久久大香线蕉经典版下载| 精品成人一区二区三区免费视频| 久久精品视频18| 久久久一二三区| 日韩www在线| 涩涩涩视频在线观看| 亚洲欧美aaa| 久久综合激情| 免费在线观看的av网站| 激情网站在线观看| 激情五月综合婷婷| 三级亚洲高清视频| 国产视频一区二区三区在线播放| 亚洲女同女同女同女同女同69| 久久美女艺术照精彩视频福利播放| 久久亚洲精品欧美| 精品精品国产三级a∨在线| 国产成人a级片| 天堂…中文在线最新版在线| 国产农村妇女毛片精品| 免费视频网站www| 性久久久久久久久久久| 精品一区二区在线欧美日韩| 欧美日韩亚洲在线观看| 91极品视频在线| 亚洲精品欧美专区| 91在线精品一区二区三区| 精品久久久久亚洲| 东方aⅴ免费观看久久av| 成人免费一级片| 久久人妻一区二区| 992tv国产精品成人影院| 久久久久久久极品| 在线观看日韩视频| 欧美日韩在线看| 国产日韩欧美综合一区| 97在线视频人妻无码| 日本三级日本三级日本三级极| 欧美日韩三级在线| 国产一区二区三区在线看麻豆| 韩国日本美国免费毛片| 一本色道久久综合狠狠躁篇怎么玩| 久久久精品国产| 欧美网站大全在线观看| 国产a一区二区| 精品中文字幕不卡在线视频| 国产一级免费看| 久久草av在线| 激情久久av一区av二区av三区| 欧美日韩激情小视频| 3d动漫精品啪啪1区2区免费| 欧美中文在线免费| 美女把尿口扒开让男人桶在线观看| 日韩av一二三| 国产欧美在线播放| 成人性色生活片| 欧美精品三级在线观看| 在线观看成人免费| 欧美日本在线一区| 久久超级碰视频| 蜜臀久久精品| 五月婷婷免费视频| 日韩成人精品在线观看| 欧美日韩亚洲国产精品| 国产手机视频在线观看| 亚洲AV无码成人精品区东京热| 亚洲国产精品va在线看黑人| 在线成人福利| 日本japanese极品少妇| 午夜日韩在线电影| 久久精品官网| 成人国产精品一区二区| 在线观看免费p片视频网站地址| 成年人看的免费视频| 国产av一区二区三区传媒| porn亚洲| 中文字幕色呦呦| 国产区卡一卡二卡三乱码免费| 中文精品视频| 91精品一区国产高清在线gif| 亚洲自拍中文字幕| 亚洲高清久久久久久| 精品久久久久久亚洲综合网站| 无码人妻一区二区三区精品视频| 国产片在线观看| 亚洲第一会所| 无码人妻av免费一区二区三区| 亚洲精品国产综合久久| 国产精品乱码人人做人人爱| 91精品国产综合久久国产大片| 2025中文字幕| 91国产精品一区| 欧美伊久线香蕉线新在线| 国产午夜精品全部视频播放| 国产精品无圣光一区二区| 干日本少妇首页| 国产精品∨欧美精品v日韩精品| 美女视频一区在线观看| 久久精品国产99久久99久久久| 国产主播一区二区三区四区| 大桥未久av一区二区三区| 日本福利午夜视频在线| 潘金莲一级淫片aaaaa免费看| 免费a在线观看播放| 日本视频在线观看免费| 日韩视频一区在线观看| 精品人妻午夜一区二区三区四区| 久久99国产精品自在自在app| 中文字幕日韩精品久久| 成人少妇影院yyyy| 国产成人无码一二三区视频| 一区二区三区|亚洲午夜| 国产亚洲一区二区三区在线播放| 91麻豆精品国产91| 中文字幕一区二区三区人妻电影| 视频一区 中文字幕| 久久久久青草大香线综合精品| 国产精品天干天干在线综合| 欧美成人精品在线视频| 日日骚欧美日韩| 欧美日产在线观看| 亚洲精品国产无码| 久热这里只精品99re8久| 国产精品论坛| 国产精品影视| 成人免费视频77777| 欧美日韩一区二区三区在线电影| 久久久久九九精品影院| 日本高清视频免费看| 色狠狠一区二区三区香蕉| 91久久爱成人| 九色|91porny| 午夜国产福利在线观看| 色黄久久久久久| 成年人视频大全| 国产一区二区高清视频| 国产精品视频免费播放| 搞黄在线观看| 清纯唯美亚洲经典中文字幕| 久草视频在线资源站| av在线不卡精品| 电影一区二区在线观看| 欧美国产一级片| 校园春色亚洲色图| 国产精品久久久爽爽爽麻豆色哟哟| 99久久99久久免费精品蜜臀| 国产精品外国| 日韩精品在线看| 欧美中文字幕一区二区三区亚洲| 亚洲国产精品一区二区尤物区| 成年大片免费视频播放二级| 欧美不卡视频一区| 亚洲一区二区在| 成人性生活视频免费看| 亚洲成av人片在线观看无码| 日本黄色片一级片| 精品美女在线观看| 亚洲欧美综合在线观看| 天天天天天天天干| 视频国产一区二区| 亚洲激情免费观看| 亚洲在线日韩| 成人在线观看免费视频| 麻豆影视在线观看_| 国产一级在线观看www色| 福利二区91精品bt7086|