[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中
详见“[模板相关处理](https://www.kancloud.cn/laowu199/npadmin/2733328)”
# 后台封装的公共方法
定义在`\app\common\controller\Admin`内,整个admin应用都可以调用的方法。
## initialize:初始化方法
整个后台全局需要的css、js文件就在这里面传出去的。