```
<?php
//
// Saas.php
// Saas接入基类
//
// Created by lijianlin on 2019年01月22日.
// Copyright 2019 lijianlin. All rights reserved.
//
namespace app\saas\controller;
use think\Controller;
use think\facade\Hook;
class Saas extends Controller
{
/**
* service
*
* @var object
*/
public $service = null;
/**
* 构造函数处理头部请求
*
* @return void
*/
public function __construct($type = 0, \think\Request $request)
{
// 登录跳过
if (!$type) {
// 注册行为监听
Hook::add('app_init', [
// 校验请求接口的身份(身份验证)
'app\\saas\\behavior\\AuthToken'
]);
Hook::listen('app_init', []);
}
// 立即执行初始化控制器服务应用
$this->service = Hook::exec('app\\saas\\behavior\\InitializtionService', ['tag' => $type, 'request' => $request]);
}
}
```
```
代码解析说明:
该类继承 \think\Controller类,方便使用里面内置的一些方法
属性 $service 服务类初始化的变量
构造函数里面有两个参数
$type : 默认0,当type=1时,标识登录接口继承Saas的时候,需要跳过一些身份校验等
\think\Request $request : 构造注入请求对象
当type=0时:
注册监听身份验证行为
add表示注册, listen表示监听
// 立即执行初始化控制器服务应用
$this->service = Hook::exec('app\\saas\\behavior\\InitializtionService', ['tag' => $type, 'request' => $request]);
先看一下如何初始化控制器服务应用
```
ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。