-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathhelper.php
313 lines (283 loc) · 6.98 KB
/
helper.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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
<?php
/*
* This file is part of the NB Framework package.
*
* Copyright (c) 2018 https://nb.cx All rights reserved.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
/**
* 格式打印
* @param 不定变量
*/
function e() {
call_user_func_array('\nb\Debug::e',func_get_args());
}
/**
* 浏览器友好的变量输出
* @access public
* @param mixed $var 变量
* @param boolean $detailed 是否详细输出 默认为true 如果为false 则使用print_r输出
* @param string $label 标签 默认为空
* @param integer $flags htmlspecialchars flags
* @return void|string
*/
function ex($var, $detailed = false, $label = null, $flags = ENT_SUBSTITUTE) {
call_user_func_array('\nb\Debug::ex',func_get_args());
}
/**
* 格式打印并结束运行
*/
function ed($var = null) {
call_user_func_array('\nb\Debug::ed',func_get_args());
}
/**
* 格式打印加强版
* 同时输出函数调用路径信息
*/
function ee($var) {
call_user_func_array('\nb\Debug::ee',func_get_args());
}
/**
* 将一个数组写入一个php文件里
* @param $data
* @param $fileName 不带后戳的文件名,根路径为path_temp所指向的路径
* @return int
*/
function efile($data, $fileName) {
return \nb\Cache::php($data,$fileName);
/*
$filePath = nb\Config::getx('path_temp') . $fileName.'.php';
$result = file_put_contents($filePath, "<?php\nreturn " . var_export($data, true) . ";");
return $result;
*/
}
/**
* 向debug页面添加需要显示的变量
* @param object $k
* @param object $v
*/
function b($k, $v = null) {
nb\Debug::record(1,$k, $v);
}
/**
* 记录信息到日志文件
* 底层是通过error_log函数
* @param unknown $data
* @param string $fileName
*/
function l($data, $fileName = 'log', $ext='txt', $format='Ymd') {
\nb\Debug::log($data, $fileName, $ext, $format);
}
/**
* 代替原生的die函数,方便程序在不同的环境下运行
* @param null $msg
* @throws Exception
*/
function quit($msg=null) {
\nb\Debug::quit($msg);
}
function val() {
return call_user_func_array(
['\nb\Pool','value'],
func_get_args()
);
}
function obj($alias,$namespace=null,$args=[]) {
return \nb\Pool::object($alias,$namespace,$args);
}
/**
* @param null $tableName
* @param string $id
* @param string $server
* @return \nb\Dao
*/
function dao($tableName=null,$id='id',$server = 'dao') {
return \nb\Pool::object("\\nb\\Dao:{$tableName}",'\nb\Dao',[
$tableName,
$id,
$server
]);
}
/**
* 返回模版类型为PHP的视图完整路径
* PATH_TEMPLATES.$tbl.".{$ex}"
* @param String $tbl 要显示的模板
*/
function view($tbl, $ex = 'php') {
$module = \nb\Router::driver()->module;
if($module) {
$path = __APP__.'module'.DS.$module.DS;
}
else {
$path = nb\Config::$o->app.DS;
}
return $path.'view'.DS . $tbl . ".{$ex}";
}
function template($tbl='', $config = []) {
$tpl = new \nb\Template($config);
return $tpl->path($tbl);
}
/**
* 获取路由对象或指定的路由属性值
* @param null $name
* @return $this
*/
function router($name=null) {
if($name === null) {
return \nb\Router::driver();
}
return \nb\Router::get($name);
}
/**
* 生成一个反解析的URL地址
* @param $name
* @param array|null $value
* @param null $prefix
* @return mixed
*/
function url($name, array $value = null, $prefix = null) {
return \nb\Router::url($name, $value, $prefix);
}
/**
* 调用框架内置的提示页面
* @param $hint 提示标题
* @param $message 提示信息
* @param $url 提示完毕后要跳转的地址
* @param $wait 提示时长
*/
function tips($hint,$message,$url=null,$wait=3){
\nb\Pool::object('nb\\event\\Framework')->tips(
$hint,
$message,
$url,
$wait
);
}
/**
* 读取PATH_AUTOINCLUDE路径下的配置文件类容
* @param String $fileName 文件名字,不需要带ini.php后撤
* @param Boolean $return ture 返回一个数组对象,false包含文件
*/
function conf($k, $v = null) {
$value = nb\Config::get($k);
if ($value) {
if ($v === null) {
return $value;
}
nb\Config::set($k,$v);
}
return $v;
}
/**
* Cookie 设置、获取、删除
* @param string $name cookie名称
* @param mixed $value cookie值
* @param mixed $option cookie参数
* @return mixed
*/
function cookie($name = '', $value = null, $option = null) {
if($value) {
\nb\Cookie::set($name,$value,$option);
}
else {
return \nb\Cookie::get($name);
}
}
/**
* session管理函数
* @param string|array $name session名称 如果为数组则表示进行session设置
* @param mixed $value session值
* @return mixed
*/
function session($name = '', $value = null) {
if($value) {
\nb\Session::set($name,$value);
}
else {
return \nb\Session::get($name);
}
}
/**
* 快速获取一个redis对象
* @param $server
* @return \nb\utility\Redis
*/
function redis($server) {
return \nb\utility\Redis::instance($server);
}
/**
* I18n function
*
* @param string $string 需要翻译的文字
* @return string
*/
function t($string, $vars = []) {
return \nb\I18n::t($string, $vars);
/*
if (func_num_args() <= 1) {
return nb\I18n::translate($string);
}
else {
$args = func_get_args();
array_shift($args);
return vsprintf(nb\I18n::translate($string), $args);
}
*/
}
/**
* I18n function
* 针对复数形式的翻译函数
*
* @param string $single 单数形式的翻译
* @param string $plural 复数形式的翻译
* @param integer $number 数字
* @return string
*/
function _n($single, $plural, $number) {
return str_replace('%d', $number, nb\I18n::driver()->ngettext($single, $plural, $number));
}
/**
* 有些不常用的文件,为了性能,不加入自动加载中
* 可以通过此函数,手动加载
* 此函数自动从path_autoinclude指定的路径里面去寻找
*
* @param $file 文件名,
* @param string $ext 文件后戳名
*/
function load($file,$ext = '.inc'){
$path = \nb\Config::$o->getx('path_autoinclude');
$sp = explode('@',$file);
if(isset($sp[1])) {
$path = $path[$file[0]];
$file = $path.$sp[1].$ext;
if(is_file($file)) {
return include $file;
}
}
else {
$file .= $ext;
foreach($path as $v) {
if(is_file($v.$file)) {
return include $v.$file;
}
}
}
return null;
}
function tplreplace($url) {
$tpl = \nb\Config::getx('templates');
$tpl = $tpl['tpl_replace_string'];
$find = array_keys($tpl);
$replace = array_values($tpl);
return str_replace($find,$replace,$url);
}
/**
* 重定向跳转
* @param $url
* @param int $http_response_code
*/
function redirect($url='/', $http_response_code=302) {
\nb\Response::redirect($url,$http_response_code);
}