1.入口指令碼 web/index.php
2.index.php檔案分析
<?php//定義是否開啟
debug
模式 展示除錯資訊
defined(
'yii_debug'
)ordefine(
'yii_debug'
,true);//
定義開發模式
prod | dev | test
defined(
'yii_env'
)ordefine(
'yii_env'
, 'dev');
//匯入
composer
的自動載入
require(
__dir__
. '/../../vendor/autoload.php');
//匯入
yii框架核心類
require(
__dir__
. '/../../vendor/yiisoft/yii2/yii.php');
//匯入引導程式 定義了部分別名
require(
__dir__
. '/../../common/config/bootstrap.php');
require(
__dir__
. '/../config/bootstrap.php');
//合併配置
, 後面的會覆蓋前面的
, 作為配置引數用於例項化
$config
= yii\helpers\arrayhelper::
merge
(require(
__dir__
. '/../../common/config/main.php'),
require(
__dir__
. '/../../common/config/main-local.php'),
require(
__dir__
. '/../config/main.php'),
require(
__dir__
. '/../config/main-local.php'))
;//啟動主體應用程式
(new$config
))->
run()
;
3.alias別名的定義
①預定義別名
②別名的定義
yii::setalias('@foo', $path)
yii::getalias('@foo')
③別名的使用場景
總結中...
4.類自動載入
①通過spl_autoload_register()註冊, 壓棧的效果使yii定義的自動載入函式生效, index.php載入了yii.php檔案如下
classyii註冊了其父類baseyii中的autoload函式為自動載入函式, 同時定義了父類中的屬性$classmap和$containerextends\yii\baseyii
spl_autoload_register([
'yii'
, 'autoload'],
true,
true)
;yii::
$classmap
=require(
__dir__
. '/classes.php');
yii::
$container
=newyii\di\container()
;
父類中的自動載入實現
public static functionautoload($classname)}
elseif(strpos(
$classname, '
\\') !==
false)
}else
include(
$classfile
);
Yii2 執行流程分析之 Controller
1.繼承與實現 controller 繼承於 component,並實現了 viewcontextinte ce 介面。在 controller 重要的有兩塊 action,view。2.actions public function actions 在自定義的 xxcontroller 類中可以看...
yii2框架 yii2自身的自動載入 三
上一節說完了composer的自動載入,下面我們來說一下yii2自身的自動載入。在我們的入口檔案,例如index.php,如下 comment out the following two lines when deployed to production defined yii debug or d...
yii2框架 yii2的asset資源包 十一
link license license use yii web assetbundle author qiang xue since 2.0 定義按需載入css方法,注意載入順序在最後 public static function addcss view,cssfile 將需要載入的檔案已陣列聚合...