Yii2源码分析(1) [ 技术分享 ]
入口文件:$application = new yii\web\Application($config);这里都做了什么?! 如图所示:debug进入到断点处。
接下来耐心和我一起看看YII源码是怎么处理的。。。走起~ 1:new yii\web\Application,进入到 yii\web\Application 看一下,哦,原来new yii\web\Application是继承了\yii\base\Application。在进入\yii\base\Application看看,哎呀,在这里发现了构造函数,那么new yii\web\Application();其实就是执行了这里的构造函数,在构造函数这里打入断点,继续贴图。
在构造函数里发现了:Yii::$app = $this; Yii::$app,Yii::$app,Yii::$app,Yii::$app,Yii::$app。。。这个是在写Yii的时候经常用到的,原来是在这里赋值的。 调试往下走一步,看看这个Yii::$app存的是什么东西:如下图:
yii\web\Application::__set_state(array(
'defaultRoute' => 'site',
'catchAll' => NULL,
'controller' => NULL,
'_homeUrl' => NULL,
'controllerNamespace' => 'app\\controllers',
'name' => 'My Application',
'version' => '1.0',
'charset' => 'UTF-8',
'language' => 'en-US',
'sourceLanguage' => 'en-US',
'layout' => 'main',
'requestedRoute' => NULL,
'requestedAction' => NULL,
'requestedParams' => NULL,
'extensions' => NULL,
'bootstrap' =>
array (
),
'state' => NULL,
'loadedModules' =>
array (
),
'_runtimePath' => NULL,
'_vendorPath' => NULL,
'params' =>
array (
),
'id' => NULL,
'module' => NULL,
'controllerMap' =>
array (
),
'_basePath' => NULL,
'_viewPath' => NULL,
'_layoutPath' => NULL,
'_modules' =>
array (
),
'_components' =>
array (
),
'_definitions' =>
array (
),
'_events' =>
array (
),
'_behaviors' => NULL,
))
这一堆是什么意思?一起来分析一下:由于我不知道哪些大家知道定义的意思是什么,哪些不知道,留言吧,我不做具体解释了。 大概说一下这个变量的位置。以及后面这些变量发生了什么变化(这个是重点) 把上面的数组结构整理一下:
array(
'defaultRoute' => 'site',
'catchAll' => NULL,
'controller' => NULL,
'_homeUrl' => NULL,
'controllerNamespace' => 'app\\controllers',
'name' => 'My Application',
'version' => '1.0',
'charset' => 'UTF-8',
'language' => 'en-US',
'sourceLanguage' => 'en-US',
'layout' => 'main',
'requestedRoute' => NULL,
'requestedAction' => NULL,
'requestedParams' => NULL,
'extensions' => NULL,
'bootstrap' =>
array (),
'state' => NULL,
'loadedModules' =>
array (),
'_runtimePath' => NULL,
'_vendorPath' => NULL,
'params' =>
array (),
'id' => NULL,
'module' => NULL,
'controllerMap' =>
array (),
'_basePath' => NULL,
'_viewPath' => NULL,
'_layoutPath' => NULL,
'_modules' =>
array (),
'_components' =>
array (),
'_definitions' =>
array (),
'_events' =>
array (),
'_behaviors' => NULL,
)
未完待续。。。
灰太狼
注册时间:2016-11-19
最后登录:2023-07-14
在线时长:76小时17分
最后登录:2023-07-14
在线时长:76小时17分
- 粉丝28
- 金钱3290
- 威望150
- 积分5550