BaseController.php
2.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
<?php
namespace app\ht\controllers;
use Yii;
use yii\filters\AccessControl;
use yii\web\Controller;
use function json_encode;
/**
*
* 基础控制器:
* @todo 1. 去除CSRF验证,以后会开放
* @todo 2. 简单的权限控制
* @todo 目前已经有部分模块开启了 csrf 验证,直至全部覆盖.
*
* Class BaseController
* @package app\ht\controllers
*/
class BaseController extends Controller
{
public $layout = '/iframe';
/**
* CSR验证,关闭后可以在不提交CSR验证码的情况下通过POST方式提交数据
* @todo 为整个系统添加验证 csrf 防钓鱼攻击验证
* @var bool
*/
public $enableCsrfValidation = false;
/**
* @var \yii\web\request
*/
public $request;
/**
* @var \yii\web\response
*/
public $response;
/**
* 增加了两个公共属性: request 和 response
* 初始化
*/
public function init()
{
$this->initTempFilePaths();
parent::init();
$this->request = Yii::$app->request;
$this->response = Yii::$app->response;
}
/* @inheritdoc */
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::className(),
'rules' => [
[
'allow' => true,
'roles' => ['@'],
],
],
],
];
}
/**
* 渲染 JSON 数据结果
*
* @param $data
* @return string
*/
public function renderJson($data)
{
return json_encode($data);
}
/**
* 初始化web目录文件夹, 完成自动创建
*/
private function initTempFilePaths()
{
$webRoot = Yii::getAlias('@webroot');
// 临时文件
$tmpFilePath = $webRoot . '/tmp';
if (!is_dir($tmpFilePath)) {
mkdir($tmpFilePath, 0777, true);
}
// 上传文件
$uploadFilePath = $webRoot . '/upload';
if (!is_dir($uploadFilePath)) {
mkdir($uploadFilePath, 0777, true);
}
// 下载文件
$downloadFilePath = $webRoot . '/download';
if (!is_dir($downloadFilePath)) {
mkdir($downloadFilePath, 0777, true);
}
}
/**
* 过滤空格
* @param $var
* @return mixed
*/
public function filterVar($var)
{
$var = str_replace(" ", "", $var);
$var = str_replace("\t", "", $var);
return $var;
}
}