vaeThink-定义控制器类


控制器类文件是承载操作方法的类库,vaeThink延续ThinkPHP V5.0控制器灵活定义的特性,她的定义方法如下:
定义控制器类
一个admin模块下的控制器定义方法应当如下:
  namespace app\admin\controller;

  class IndexController 
  {
      // index操作方法
      public function index()
      {
          return 'index';
      }
  }

  // 那么她的实际位置应该是app\admin\controller\IndexController.php
      
需要特别注意的是vaeThink 的所有模块下的控制器类文件名都要加上Controller后缀。
继承
vaeThink为开发者准备了几个公共类,便于开发者在定义控制器类时进行继承,同样以admin模块进行举例:
  namespace app\admin\controller;
  use vae\controller\ControllerBase;

  class IndexController extends ControllerBase
  {
      // index操作方法
      public function index()
      {
          return 'index';
      }
  }
      
警告:控制器类公共继承类,所有控制器都必须直接或间接继承vae\controller\ControllerBase类。
  namespace app\admin\controller;
  use vae\controller\AdminCheckLogin;

  class IndexController extends AdminCheckLogin
  {
      // index操作方法
      public function index()
      {
          return 'index';
      }
  }
      
注意:所有admin模块下需要登录的控制器都应该直接或间接继承该验证登录类。
  namespace app\admin\controller;
  use vae\controller\AdminCheckAuth;

  class IndexController extends AdminCheckAuth
  {
      // index操作方法
      public function index()
      {
          return 'index';
      }
  }
      
注意:所有admin模块下需要验证auth权限的控制器都应该直接或间接继承该权限验证类vae\controller\AdminCheckAuth。
另外,该类默认继承AdminCheckLogin类,因此也验证登录。
  namespace app\port\controller;
  use vae\controller\PortControllerBase;

  class IndexController extends PortControllerBase
  {
      // index操作方法
      public function index()
      {
          return 'index';
      }
  }
      
注意:所有port模块下的控制器都应该直接或间接继承vae\controller\PortControllerBase类。
vaeThink 想你所想。