日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

yii 2.0 代码阅读 小记

發布時間:2023/12/31 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 yii 2.0 代码阅读 小记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.\yii\base\object

設置了get/set屬性...使用getName()獲取屬性名..構造函數中使用config初始化屬性

2.\yii\base\Component 繼承自Object
額外擁有behaviors和events屬性

get,會比object多查找自己的behaviors中的屬性

set,on開通的會綁定事件,as開頭的會添加行為,最后會查找所有的behaviors,并設置屬性


__call 會調用所有behaviors中是否有該方法


event on 添加事件,off移除事件,trigger觸發事件

?

Yii中這個Behaviour是Event Handler的另一種表現形式而已,對事件的處理函數進行了封裝
attachBehavior detachBehavior

?

Component::__construct 或者Object::__construct 的時候.就是綁定了屬性
------------------------------------------


3.\yii\base\Event中提供了很多靜態方法供外部使用.如on off trigger
同時.擁有 name,sender觸發者,handled觸發結果是個boolean值,用于停止觸發.data,觸發數據

trigger 可以觸發父級的事件..具體看代碼

<pre>
if (is_object($class)) {
$class = get_class($class);
} else {
$class = ltrim($class, '\\');
}
do {
if (!empty(self::$_events[$name][$class])) {
foreach (self::$_events[$name][$class] as $handler) {
$event->data = $handler[1];
call_user_func($handler[0], $event);
if ($event instanceof Event && $event->handled) {
return;
}
}
}
} while (($class = get_parent_class($class)) !== false);
</pre>


4.\yii\base\Behavior

封裝了事件處理方法,當添加一個行為的時候,就是綁定了該behavior中的多個事件

5.yii\base\Module


從模塊中使用__get..可以直接獲取模塊中的組件

getComponent...會在第一次的時候實例化組件

setComponent 只是將組件的類名保存起來

preloadComponents 會通過配置中的preload屬性的id使用getComponent實例化..同時使用getModule進行模塊實例化并保存

?

getModule 如果是加載子模塊,會先加載父模塊..再加載子模塊.

setModule 將模塊名字保存到_modules中


_basePath 模塊路徑,沒有在配置中設置的話,就會反射類名使用dirname取得目錄名

_controllerPath 沒有設置的話會_basePath/controllers

_viewPath 沒有設置的話會是_basePath/views

_layoutPath 沒有設置的話會是 _viewPath/layouts


defaultRoute="default" 默認路由

?


runAction($route,$params)--------------- Yii::$app->controller

1.createController(route) 返回控制器和action
2.$controller->runAction($actionID, $params);返回結果
3.在動作執行完后,會重設Yii::$app->controller為原來的控制器


createController($route)

1.route為空的話.使用defaultRoute 即是default
2.對route進行分割..獲取id(模塊id||控制器id)和action
3.如果確實有getModule(id).則使用module創建控制器
4.controllerMap有該id則創建控制器
5.根據controllerPath,查找是否有該控制器.有的話則實例化.并將id和模塊傳入構造函數.
6.返回控制器和action.

?


6.yii\base\Controller


runAction ---- Yii::$app->requestedAction---- $this->action
1.使用createAction創建動作.
2.會觸發actionEvent中的Application::EVENT_BEFORE_ACTION事件,這里可操作事件的isValid屬性.
3.會執行該控制器所屬模塊的beforeAction方法$this->module->beforeAction..觸發自身的self::EVENT_BEFORE_ACTION事件
4.會執行該控制器的$this->beforeAction方法..
5.如果上面三個都是返回true的話,則 $action->runWithParams($params);
6.執行控制器的afterAction函數,觸發自身的self::EVENT_AFTER_ACTION事件
7.執行模塊的afterAction函數
8.觸發Application::EVENT_AFTER_ACTION事件

9.在動作執行完后,會重設$controller->action為原來的動作


createAction

1.action為空的話.為defaultAction為 index

2.如果$actionMap中含有的話則..實例化動作

3.action+動作id..如果控制器中有該方法,則創建InlineAction($id,$this,$methodName)


7.yii\base\Application

比模塊多了錯誤處理.和注冊了CoreComponents

log errorHandler formatter i18n urlManager view

?

?

initExtensions

會將擴展文件中的別名設置

?


run();

觸發 EVENT_BEFORE_REQUEST

執行handleRequest(請求組件)獲取響應..

觸發 EVENT_AFTER_REQUEST

$response->send();

8. yii\web\Application

注冊了核心組件 request response session user assetManager

defaultRoute 為site

$_homeUrl 主頁地址.可設置.不設置為scripturl

?

handleRequest

1.設置@webroot和@web為scriptfile和baseurl
2.使用請求組件解析url返回路由..或者使用catchAll返回路由..catchAll可以作為一個動作進行特殊處理例如,網站關閉則xxx.不關閉則使用$request->resolve()

3.執行 runAction.如果返回的數據繼承與Response.則直接返回.

4.如果返回的數據不是response則把數據設置為response的data.再返回

?

?

?

總結

以上是生活随笔為你收集整理的yii 2.0 代码阅读 小记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 貂蝉被到爽流白浆在线观看 | 91超碰人人| 日本丰满少妇做爰爽爽 | 亚色成人 | 国产激情视频在线 | 久久久久亚洲av无码专区桃色 | 日韩在线视频一区二区三区 | 成人在线精品 | 国产成人无码精品亚洲 | 日韩一卡二卡在线 | 国产网址在线观看 | 久久视奸 | 看一级片 | 97成人资源 | 国产成人在线免费观看视频 | 亚洲男人的天堂在线观看 | 热久久中文字幕 | 亚洲精品国产精品乱码不99热 | 伊人久久一区二区 | 葵司av在线 | 中文字幕在线视频一区 | 91精品国产综合久久香蕉922 | 欧美系列第一页 | 艳情五月 | 亚洲热久久 | 狠狠干天天 | 国产成人精品一区二区无码呦 | 精品国产乱码一区二区 | 一区二区三区欧美视频 | 又嫩又硬又黄又爽的视频 | 国产又黄又粗又爽 | 精品在线视频免费 | 亚洲 欧洲 日韩 | 邻家有女4完整版电影观看 欧美偷拍另类 | 动漫美女露胸网站 | 日韩欧美一区二区在线 | 日本黄色特级片 | 伊人超碰在线 | 一级黄色大片 | 亚洲精品久久久中文字幕痴女 | 久久久久久久久久久久国产 | 欧美自拍偷拍一区二区 | 日韩一级久久 | 极品美女被c | 欧洲xxxxx| 伊人日韩 | 中文字幕日韩在线观看 | 裸体喂奶一级裸片 | 日韩麻豆视频 | 免费无遮挡无码永久视频 | 用力插视频 | www.youjizz.com视频| 成人小视频在线看 | 欧美性大战xxxxx久久久 | 国产51页| 欧美日韩中文字幕在线视频 | 亚洲天堂av免费在线观看 | 美国成人免费视频 | 国产人妖ts | 1024av在线| 中文字幕乱轮 | 久久久久国产精品夜夜夜夜夜 | 久久99久久99精品免观看软件 | 久99视频| 久久久久久久久电影 | 免费中文字幕日韩欧美 | 国产一级免费视频 | 国产高清视频在线免费观看 | 日韩毛片免费看 | 国色天香av| 亚洲国产高清视频 | 久久久久18 | 黄色大片毛片 | 香蕉视频一区二区三区 | 午夜宫 | 91视频二区 | 在线视频观看免费 | 在线播放第一页 | 日韩免费观看视频 | 超黄网站在线观看 | 亚洲熟妇一区二区 | 美女毛片视频 | 日本大尺度做爰呻吟舌吻 | 美日韩久久 | 国产又粗又长又黄的视频 | 日韩欧美亚洲一区 | 黄色一级视频免费看 | 国产96在线 | 亚洲 | 毛片免费全部无码播放 | 久久精品美乳 | 日本久操视频 | 国产91福利 | 99草在线视频 | 久久男人的天堂 | 欧美少妇色图 | 级毛片 | 成人二区三区 | av噜噜噜| 久久久久免费视频 |