[TOC]
# 全局封裝的公共方法
定義在`\app\common\controller\Controller`內,每個應用都可以調用的方法。
## initialize:初始化方法
~~~
protected function initialize() {
parent::initialize();// 自己寫的該方法一定要調用父方法 否則....
}
~~~
app\common\controller\Controller::initialize 是整個項目的每個請求都可以先執行到的代碼 如果你有整個項目每次請求都希望先執行的代碼,可以往這里面寫
app\common\controller\Admin::initialize 是整個后臺應用的每個請求都可以先執行到的代碼 如果你有后臺應用每次請求都希望先執行的代碼,可以往這里寫
...
app\admin\controller\你的控制器::initialize 是當前控制器中的每個請求都可以先執行到的代碼 記住一定要調父方法
## protected function assign($name, $value) 傳遞變量到模板
~~~
$this->assign('變量名', 值); // 模板中就可以 $變量名 獲取到了
~~~
這些變量名已被使用,你不要再使用了:
`root`:訪問到當前項目的相對根域名
`absroot`:訪問到當前項目的決定對根域名
`static`:訪問到static目錄的相對域名
`absstatic`:訪問到static目錄的絕對域名
`isMobile`:判斷當前是否是移動設備請求
`css`:所有css文件
`js`:所有頭部js文件
`deferJs`:所有底部js文件
`meta`:title、keywords、description
`scriptVars`:傳入到JS中的全局數據
## protected function addCss($path) 添加css文件
$path:支持字符串指定單個css文件和數組指定多個css文件
## protected function removeCss($path) 移除已添加的css文件
## protected function addJs($path, $defer = true) 添加js文件
$path:支持字符串指定單個js文件和數組指定多個js文件
$defer:true表示底部引入,false表示頭部引入
## protected function removeJs($path, $defer = true) 移除已添加的js文件
## protected function addTitle(string $title) 向前加入一個網頁標題
## protected function setTitle($title) 重置網頁標題
## protected function addKeywords(string $title) 加入一個網頁關鍵詞
## protected function setKeywords($title) 重置網頁關鍵詞
## protected function addDescription(string $title) 加入一個網頁描述
## protected function setDescription($title) 重置網頁描述
## protected function assignJsData($name, $value) 傳遞數據到JS中
詳見“[模板相關處理](http://www.hmoore.net/laowu199/npadmin/2733328)”
# 后臺封裝的公共方法
定義在`\app\common\controller\Admin`內,整個admin應用都可以調用的方法。
## initialize:初始化方法
整個后臺全局需要的css、js文件就在這里面傳出去的。