# Niushop開源商城鉤子開發
---
下面以會員簽到插件(NsMemberSign)的原理通俗的說明鉤子的調用原理:
* **鉤子的調用方式,實例 hook\(‘memberAction’, \['type' => 'NsMemberRegister', 'uid' => 12\]\);**
* **查詢可實現memberAction的鉤子列表:**
```
```
* ```
通過查詢數據庫sys\_hook表中可執行的插件列表(實際存儲緩存)

通過查看可執行memberAction的插件: NsMemberRegister,NsMemberPraise,NsMemberSign,NsMemberEvaluate,NsMemberShare
```
* **通過實例化對應插件的入口類,建立對象,同時執行對應的方法**
```php
例如:插件執行列表存在:NsMemberSign,首先創建對象:
$class = new addons\NsMemberSign\NsMemberEvaluateAddon();
其次調用鉤子方法(方法名=鉤子名 ,參數=對應傳入參數):
$res = $class->memberAction(['type' => 'NsMemberRegister', 'uid' => 12]);
```
* **循環執行插件列表依次返回數據**
鉤子的安裝:
* **鉤子是對應插件的入口文件中的public方法,在執行安裝插件時存入sys\_hook數據表,鉤子執行時查詢表進行調用。**