# 新建插件 默认插件目录 **/Plugin**. 我们在该目录新建一个文件夹 **test**. 在 **test** 目录下新建文件 **a.hook**. 在**a.hook**文件中写入内容 ~~~ echo '这是test插件的a hook内容 <br>'; ~~~ 那我们的控制器如何使用到这个a.hook呢 我们看一下控制器内容 ~~~ <?php namespace Action; use HY\Action; class IndexAction extends Action { public function Index(){ //{hook a} echo '这是Index控制器的index() 方法'; } } ~~~ 访问控制器 +++ get:/ <<< success 这是test插件的a hook内容 这是Index控制器的index() 方法 +++ 在控制器中建立hook点 //{hook 名称} 框架引擎将查找你的插件目录 寻找到名称.hook 吧内容插入到控制器中执行 ## re 插件机制 re 插件机制可以与hook同时使用, 但re机制的解析优先级要比hook的优先. re 插件机制 与 hook的不同之处是 hook需要在源代码插入hook点, 而re机制则不需要hook点 直接查找源代码进行替换修改 接着上面的做法 在**test** 插件目录新建文件**re.php**. 写入 ~~~ <?php return array( 'Action/Index.php'=>array( 'a1'=>'a2' ) ); ~~~ 上面的意思是指: 修改Action/Index.php内容. 查找 /Plugin/test/a1 文件内容 替换为 /Plugin/test/a2 文件内容 Index控制器内容 ~~~ <?php namespace Action; use HY\Action; class IndexAction extends Action { public function Index(){ //{hook a} echo '这是Index控制器的index() 方法'; } } ~~~ > Plugin/test/a1 文件内容 `echo '这是Index控制器的index() 方法';` > Plugin/test/a2 文件内容 ~~~ echo '这是Index控制器的index() 方法 <br>'; echo '我是re机制追加的内容' ~~~ 访问控制器 +++ get:/ <<< success 这是test插件的a hook内容 这是Index控制器的index() 方法 我是re机制追加的内容 +++