![ThinkPHP实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/852/26943852/b_26943852.jpg)
上QQ阅读APP看书,第一时间看更新
4.2 前置操作和后置操作
试想这么一种场景,有一个控制器方法是需要很高的审计安全级别的(比如提现系统中的提现操作),这时候对这种操作需要完整的日志记录。一般的做法是在该方法体前面和后面增加日志写入代码。但是该方式不利于项目解耦,毕竟日志记录不是提现逻辑,而是审计逻辑,此时ThinkPHP提供的“前置操作和后置操作”可以实现该需求。
前置操作和后置操作是“可选”的,如果存在则自动调用,定义方式如下,编辑Application/Home/Conf/config.php,代码如下:
return array( // 'ACTION_SUFFIX' => 'Action', // 操作方法后缀 );
编辑Application/Home/Controller/IndexController.class.php,代码如下:
<? php namespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function _before_index() { echo 'before'; } public function index() { echo 'index'; } public function _after_index() { echo 'after'; } }
在浏览器中访问http://localhost/thinkphp-inaction/chapter-4/home/index,浏览器会输出“beforeindexafter”,证明系统按照顺序调用了相应方法。