thinkPHP中初始化、前置后置操作

初始化操作:初始化就是访问控制器的任何方法之前都要执行的某个方法叫初始化操作。

代码如下:

namespace  Home\Controller; 
   use Think\Controller; 
   class IndexController extends Controller{ 
        // 初始化方法 
        public function _initialize(){ 
            echo 'initialize<br/ >'; 
        } 
        public function index(){ 
            echo 'index'; 
        } 

        public function hello(){ 
            echo 'hello'; 
        } 
  } 
如果我们访问   http://serverName/index.php/ Home/index 

结果会输出 

   initialize 
   index 

如果我们访问   http://serverName/index.php/ Home/ hello 

结果会输出 

   initialize 
   hello 

可以看出 ,无论是执行index操作还是hello操作 都会首先执行 _initialize 操作方法。 

如果把 _initialize 操作方法定义到一个公共的控制器类里的话 ,那么所有的控制器操作方法之前都会执行

前置后置操作:_initialize 方法是调用所有操作方法之前都会执行 ,前置和后缀操作则是针对某个特定的操作方法而言。 

如果当前访问的操作是存在 (必须是实际在控制器中定义过 )的 ,系统会检测当前操作是否具有前置和后置操作 ,如果存在就会按照顺序执行 ,前置和后置操作的方法名是在要执行的方法前。

代码如下:

namespace  Home\Controller; 
   use Think\Controller; 
   class IndexController extends Controller{ 
        //前置操作方法 
        public function _before_index(){ 
            echo 'before<br/ >'; 
        } 
        public function index(){ 
            echo 'index <br/ >'; 
        } 
        //后置操作方法 
        public function _after_index(){ 
            echo 'after'; 
        } 
  } 
如果我们访问   http://serverName/index.php 

结果会输出 

   before 
   index 
   after 

对于任何操作方法我们都可以按照这样的规则来定义前置和后置方法。 

如果在操作方法里使用了exit或者error方法的话 有可能不会再执行后置方法了  文章来源: thinkPHP中初始化、前置后置操作

人吐槽 人点赞

猜你喜欢

发表评论

用户名: 密码:
验证码: 匿名发表

你可以使用这些语言

查看评论:thinkPHP中初始化、前置后置操作