> 開發者也可以用hook方法在控制器中加入鉤子,讓你的應用具有更好的擴展性;
同時也可以后臺模板里加入鉤子
```
<hook name="footer_start"/>
```
鉤子支持傳入參數:
```
<php>$param="test";</php>
<hook name="footer_start" param="param"/>
```
## 1,向系統暴露你的鉤子
> 就是把你的鉤子在相應的文件里列出來,系統會來檢測。
如何暴露應用控制器鉤子:
在你的應用根目錄加上hooks.php文件,文件中返回此應用所有鉤子數組就可以了;
例如:要給portal應用添加新的鉤子,需找到hooks.php,添加鉤子信息
> app/portal/hooks.php
```
return [
'portal_admin_category_edit_view_main' => [
"type" => 4,//鉤子類型(默認為應用鉤子;2:應用鉤子;3:模板鉤子;4:后臺模板鉤子)
"name" => '門戶后臺分類添加編輯界面主要內容', // 鉤子名稱
"description" => "門戶后臺分類添加編輯界面主要內容", //鉤子描述
"once" => 0 // 是否只執行一次
],
];
```
## 2,在插件里面聲明
> plugins\article_field\ArticleFieldPlugin.php
```
public function portalAdminCategoryEditViewMain()
{
$Fields = FieldModel::all(['model'=>2]);
$this->assign('Fields',$Fields);
$request = request();
$id = $request->param('id');
if ($id) {
$post = PortalCategoryModel::get($id);
$this->assign('post',$post);
}
//var_dump($Fields);
echo $this->fetch('category');
}
```
## 3,后臺鉤子管理->同步鉤子
##
## 4,后臺模板中使用鉤子
> \themes\admin_simpleboot3\portal\admin_category\add.html
模板里面合適的地方添加鉤子
```
<hook name="portal_admin_category_edit_view_main"/>
```