CodeIgniter4 公共函数和全局常量
CodeIgniter 你可以在任何地方使用它们,并且不需要加载任何 类库或辅助函数。
公共函数
服务访问器函数
cache
([$key])
参数: | $key (string) – 需从缓存中检索的参数名 (可选) |
---|---|
返回: | 缓存对象或从缓存取回的变量 |
返回类型: | mixed |
若 $key 不存在, 则返回缓存引擎实例. 若 $key有值存在, 则返回 $key 当前存储在缓存中的值,若值不存在则返回null。
Examples:
$foo = cache('foo');
$cache = cache();
env
($key[, $default=null])
参数: | $key (string) – 需检索的环境变量中的参数名 |
---|---|
$default (mixed) – 如参数值不存在则返回默认值. | |
返回: | 运行环境变量, 默认值, 或者 null. |
返回类型: | mixed |
用于检索事前设置在环境变量中的变量值,若无设置则返回默认值. 若没有找到健值则返回一个布尔值结果(false).
在特定的运行环境中利用 .env 文件设置环境变量非常有用,例如数据库设置,API健值等.
esc
($data, $context='html'[, $encoding])
参数: | $data (string/array) – 被输出的信息. |
---|---|
$context (string) – 被输出内容的上下文. 默认值 ‘html’. | |
$encoding (string) – 编码字符串. | |
返回: | 输出的数据(The escaped data). |
返回类型: | mixed |
页面中包含的输出数据, 它在防止 XSS 攻击时很有用。 使用Laminas Escaper 库来处理实际的数据过滤。
若 $data 为字符串, 则简单转义并且返回。 若 $data 为数组, 则遍历数组,转义 key/value 键值对中的 ‘value’。
有效的 context 值: html, js, css, url, attr, raw, null
helper
($filename)
参数: | $filename (string/array) – 加载的辅助类文件的名称,或一个包含类文件名的数组。 |
---|---|
加载辅助类文件。
详情参照 辅助函数 页.
lang
($line[, $args[, $locale]])
param string $line: 检索文本的行
param array $args: 一组数组数据,用于替代占位符.
参数: | $locale (string) –使用不同的地区,而不是默认的地区设置。检索一个基于某个别名字符串的本地特定文件。 |
---|---|
更多详细信息请见 本地化 页。
old
($key[, $default = null[, $escape = 'html']])
param string $key: 需要使用的原有的表单提交的键。
param mixed $default: 如果当$key不存在时返回的默认值。
参数: | $escape (mixed) –一个 escape 的上下文,或传值false来禁用该功能。 |
---|---|
返回: | 给定的键对应的值,或设置的默认值 |
返回类型: | mixed |
提供了一个简易的方式,在表单提交时访问 “原有的输入数据”。
示例:
// 在控制器中查看表单提交
if (! $model->save($user))
{
// 'withInput'方法意味着"原有的数据"需要被存储。
return redirect()->back()->withInput();
}
// 视图中
<input type="email" name="email" value="<?= old('email') ?>">
// 以数组的形式
<input type="email" name="user[email]" value="<?= old('user.email') ?>">
注解
如果你正使用 form helper , 这个特性就是内置的。只有在你不使用form helper的时候才需要手动调用。
session
([$key])
变量 string $key: | 在session中查找的健值名称. |
---|---|
返回: | $key的值或者null,若$key不存在则返回一个session object实例。 |
返回类型: | mixed |
提供一个访问 session 类和检索存储值的便捷方法。更多信息详见 the Sessions 页.
timer
([$name])
参数: | $name (string) – 检测点的名称. |
---|---|
返回: | Timer 实例 |
返回类型: | CodeIgniterDebugTimer |
提供一个快速访问 Timer class的便捷的方法。 你可以将基准点的名称作为唯一参数传递。这将从这一点开始计时, 如果这个名称的计时器已经运行,则停止计时。
示例:
// 获取一个timer实例
$timer = timer();
// 设置计时器的开始与结束点
timer('controller_loading'); // 开始计时器
. . .
timer('controller_loading'); // 停止计时器运行
view
($name[, $data[, $options]])
参数: | $name (string) – 被加载的文件名 |
---|---|
$data (array) – 键值对数组,在视图中能被获取。 | |
$options (array) – 可选的参数数组,用于传递值给渲染类. | |
返回: | 视图的输出. |
返回类型: | string |
抓取当前的 RendererInterface-compatible 类(界面渲染类),告诉它展示特定的视图。给控制器、库、路由闭包提供了一种便捷的方法。
目前,在 $options 数组里只有一个选项是可用的,saveData 指定在同一个请求中,在多次调用 view() 时数据将连续。默认情况下, 在显示该单一视图文件之后,该视图的数据被丢弃。
$option 数组主要用于与第三方库整合,例如Twig。
Example:
$data = ['user' => $user];
echo view('user_profile', $data);
详情参见 the Views 页。
其他函数
csrf_token
()
返回: | 当前 CSRF token 名称。 |
---|---|
返回类型: | string |
返回当前 CSRF token名称。
csrf_header
()
returns: | The name of the header for current CSRF token. |
---|---|
rtype: | string |
The name of the header for current CSRF token.
csrf_hash
()
返回: | 当前 CSRF hash值. |
---|---|
返回类型: | string |
返回当前 CSRF hash 的值.
csrf_field
()
返回: | 带有全部请求CSRF信息的隐藏input的HTML字符串。 |
---|---|
返回类型: | string |
返回已插入CSRF信息的隐藏input:
<input type="hidden" name="{csrf_token}" value="{csrf_hash}">
csrf_meta
()
returns: | A string with the HTML for meta tag with all required CSRF information. |
---|---|
rtype: | string |
Returns a meta tag with the CSRF information already inserted:
<meta name="{csrf_header}" content="{csrf_hash}">
force_https
($duration = 31536000[, $request = null[, $response = null]])
参数: | $duration (int) – 浏览器的秒数应该将此资源的链接转换为 HTTPS 。 |
---|---|
$request (RequestInterface) – 当前请求对象的实例。 | |
$response (ResponseInterface) – 当前响应对象的实例。 |
检查页面当前是否通过HTTPS访问,如果不是,则用户通过HTTPS重定向回当前URI。 将设置 HTTP 严格的传输安全标头,该命令指示现代浏览器自动将HTTP请求修改为 $duration 参数时间的HTTPS请求。
is_cli
()
返回: | 如果脚本是从命令行执行的,则为true,否则为false。 |
---|---|
返回类型: | bool |
log_message
($level, *$message[, $context*])
参数: | $level (string) – 级别程度 |
---|---|
$message (string) – 写入日志的信息. | |
$context (array) – 一个标记和值的联合数组被替换到 $message | |
返回: | 如果写入日志成功则为 TRUE ,如果写入日志出现问题则为 FALSE 。 |
返回类型: | bool |
使用 app/Config/Logger.php 中定义的日志处理程序记录日志。
级别可为以下值: emergency, alert, critical, error, warning, notice, info, or debug.
Context 可用于替换 message 字符串中的值。详情参见 Logging Information 页。
redirect
(string $uri)
param string $uri: | 需要引导用户重定向到的页面. |
---|---|
返回以后RedirectResponse的实例以便创建重定向:
// 回到上一个页面Go back to the previous page
return redirect()->back();
// 跳转至具体的URI
return redirect()->to('/admin');
// 跳转到一个命名路由或反向路由 URI
return redirect()->route('named_route');
// 在跳转中保持原有的输入值,使得它们可以被 `old()` 函数调用。
return redirect()->back()->withInput();
// 显示一个消息
return redirect()->back()->with('foo', 'message');
当将URI传给这个函数时。它将会被作为一个反向路由请求,而不是一个完整的URI,就像使用 redirect()->route()一样::
// 跳转到一个命名路由或反向路由 URI
return redirect('named_route');
redirect_with_input
($uri[, ...$params])
参数: | $uri (string) – 重定向URI。 |
---|---|
$params (mixed) – 一个或更多附加参数可被用于 the RouteCollection::reverseRoute() 方法。 |
跟redirect()
方法等同, 该session刷新的请求中的 $_GET 和 $POST的值除外。 在下一页的请求, 表单辅助类的 `set*` 方法将首先检查旧的输入数据, 若没发现, 则当前的 GET/POST 将被检查。
注意
为了取回旧的值, session必须被启用,优先调用函数.
remove_invisible_characters
($str[, $urlEncoded = TRUE])
参数: | $str (string) – 输入字符串 |
---|---|
$urlEncoded (bool) – 是否移除URL编码字符 | |
返回: | 已过滤的字符串 |
返回类型: | string |
这个函数防止在 ASCII 字符之间插入空字符(NULL),例如 Java\0script。
范例:
remove_invisible_characters('Java\\0script');
// 返回: 'Javascript'
route_to
($method[, ...$params])
参数: | $method (string) – 命名路由别名, 或匹配controller/method名称。 |
---|---|
$params (mixed) – 一个或更多参数被传递到路由中匹配。 |
以指定的路由别名或 controller::method 组合为依据生成一个相对 URI 。如果提供参数,将执行参数。
详情参见 the URI 路由 页。
service
($name[, ...$params])
参数: | $name (string) – 加载的服务名称 |
---|---|
$params (mixed) – 一个或多个参数传递到服务方法。 | |
返回: | 指定的服务类的实例。 |
返回类型: | mixed |
提供简易访问任何在系统中定义的服务,详见the Services 。 这将总是返回类的共享实例,因此不管在单个请求中调用多少次,都只会创建一个类实例。
范例:
$logger = service('logger');
$renderer = service('renderer', APPPATH.'views/');
single_service
($name[, ...$params])
参数: | $name (string) – 加载的服务名称 |
---|---|
$params (mixed) – 一个或多个参数传递到服务方法。 | |
返回: | 指定的服务类的实例。 |
返回类型: | mixed |
等同于前面所描述的 service() 函数, 除了所有调用该函数将返回一个类的新实例。
service 返回的是相同的实例。
stringify_attributes
($attributes[, $js])
参数: | $attributes (mixed) – 字符串, 键值对数组, 或者对象 |
---|---|
$js (boolean) – TRUE 若值不需要引用 (Javascript风格) | |
返回: | 字符串包含键值对属性, 逗号分隔 |
返回类型: | string |
辅助函数用于转换字符串, 数组, 或者字符串的对象属性。
全局常量
以下的常量在你的应用中的任何地方有效。
核心常量
constantAPPPATH
app 目录的路径。
constantROOTPATH
项目根目录,APPPATH
目录的上层目录。
constantSYSTEMPATH
system 目录的路径。
constantFCPATH
保存的前端控制器目录的路径。
constantSELF
前端控制器的路径, index.php.
constantWRITEPATH
writable 目录的路径。
时间常量
constantSECOND
等于 1.
constantMINUTE
等于 60.
constantHOUR
等于 3600.
constantDAY
等于 86400.
constantWEEK
等于 604800.
constantMONTH
等于 2592000.
constantYEAR
等于 31536000.
constantDECADE
等于 315360000.
更多建议: