forked from fayfox/fay
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathF.php
157 lines (141 loc) · 4 KB
/
F.php
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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
<?php
use fay\core\Cache;
use fay\core\Config;
use fay\core\Controller;
use fay\core\Cookie;
use fay\core\Db;
use fay\core\Form;
use fay\core\Input;
use fay\core\Loader;
use fay\core\Session;
use fay\log\Logger;
use fay\widget\Loader as WidgetLoader;
/**
* 超级类,可以在任何地方获取各种方法
*/
class F{
/**
* 获取当前Controller实例
* @return \fay\core\Controller
*/
public static function app(){
return Controller::getInstance();
}
/**
* 获取Input类实例
* @return \fay\core\Input
*/
public static function input(){
return Input::getInstance();
}
/**
* 获取Session类实例
* @return \fay\core\Session
*/
public static function session(){
return Session::getInstance();
}
/**
* 获取Cookie类实例
* @return \fay\core\Cookie
*/
public static function cookie(){
return Cookie::getInstance();
}
/**
* 获取一个Model实例(最终都是调用Loader::singleton,分开定义只是为了编辑器代码提示)
* @param string $name
* @return \fay\core\Model
*/
public static function model($name){
return Loader::singleton($name);
}
/**
* 获取一个Table实例(最终都是调用Loader::singleton,分开定义只是为了编辑器代码提示)
* @param $name
* @return \fay\core\db\Table
*/
public static function table($name){
return Loader::singleton($name);
}
/**
* 获取一个Service实例(最终都是调用Loader::singleton,分开定义只是为了编辑器代码提示)
* @param $name
* @return \fay\core\Service
*/
public static function service($name){
return Loader::singleton($name);
}
/**
* 获取一个表单实例,若name为null,返回第一个被实例化的表单。
* 若没有表单被实例化,实例化一个default
* @param null|string $name 默认为第一个被实例化的表单
* @return \fay\core\Form
*/
public static function form($name = 'default'){
if($name === null){
return Form::getFirstForm();
}else{
return Form::getInstance($name);
}
}
/**
* 返回所有表单实例
* @return array
*/
public static function forms(){
return Form::getForms();
}
/**
* 获取一个Cache实例
* @return \fay\core\Cache
*/
public static function cache(){
return Cache::getInstance();
}
/**
* 获取Config实例
* @return \fay\core\Config
*/
public static function config(){
return Config::getInstance();
}
/**
* 获取F::app()->widget
* @return \fay\widget\Loader
*/
public static function widget(){
return WidgetLoader::getInstance();
}
/**
* 返回数据库实例
* @return \fay\core\Db
*/
public static function db(){
return Db::getInstance();
}
/**
* 过滤一个数组或字符串<br>
* 如果是多维数组,会递归过滤所有数组项
* @param array|string $filters 可以是数组,也可以是竖线分隔的字符串
* @param array|string $data
* @param string $fields 可以是数组,也可以是逗号分隔的字符串,但不可以有多余的空格
* @return mixed
*/
public static function filter($filters, $data, $fields = null){
return Input::getInstance()->filterR($filters, $data, $fields);
}
/**
* 获取日志驱动
*/
public static function logger(){
return Logger::getInstance();
}
/**
* 获取事件驱动
* @return \fay\core\Event
*/
public static function event(){
return \fay\core\Event::getInstance();
}
}