October CMS 包含各种 "辅助" PHP 函数。其中许多函数由 October 自身内部使用,但是,如果你觉得它们有用,可以自由地在自己的插件和应用程序中使用它们。
array_add
array_divide
array_dot
array_undot
array_except
array_first
array_flatten
array_forget
array_get
array_only
array_pluck
array_pull
array_set
array_sort
array_sort_recursive
array_where
head
last
路径符号
应用路径
基础路径
配置路径
数据库路径
插件路径
公共路径
存储路径
临时路径
主题路径
缓存路径
驼峰式
类名
e
以...结尾
蛇形命名
限制字符串
以...开头
字符串包含
完成字符串
字符串匹配
字符串复数
随机字符串
字符串单数
字符串别名
大驼峰式
翻译
翻译选择
资产
配置
dd
环境
输入
获取
提交
文件
重定向
请求
响应
路由
安全资产
跟踪日志
跟踪SQL
网址
数组添加()array_add 函数会将给定的键/值对添加到数组中,前提是该键在数组中尚不存在:
$array = array_add(['name' => 'Desk'], 'price', 100);
// ['name' => 'Desk', 'price' => 100]array_divide()array_divide 函数返回两个数组,一个包含键,另一个包含原始数组的值:
list($keys, $values) = array_divide(['name' => 'Desk']);
// $keys: ['name']
// $values: ['Desk']array_dot()array_dot 函数将一个多维数组展平为一个使用“点”式符号指示深度的单层数组:
$array = array_dot(['foo' => ['bar' => 'baz']]);
// ['foo.bar' => 'baz'];array_undot()array_undot 函数是 array_dot 方法的对应函数。它将把一个点式符号的数组转换成一个标准的关联数组:
$array = array_undot([
'foo.bar' => 'baz'
]);
// [
// 'foo' => [
// 'bar' => 'baz'
// ]
// ]array_except()该 array_except 方法从数组中移除给定的键/值对:
$array = ['name' => 'Desk', 'price' => 100];
$array = array_except($array, ['price']);
// ['name' => 'Desk']array_first()array_first 方法返回数组中第一个通过给定真值测试的元素:
$array = [100, 200, 300];
$value = array_first($array, function ($key, $value) {
return $value >= 150;
});
// 200也可以将默认值作为第三个参数传递给该方法。 如果没有值通过真值测试,该值将被返回:
$value = array_first($array, $callback, $default);数组扁平化()array_flatten 方法将一个多维数组扁平化为一个单一级别。
$array = ['name' => 'Joe', 'languages' => ['PHP', 'Ruby']];
$array = array_flatten($array);
// ['Joe', 'PHP', 'Ruby'];数组_忘记()array_forget 方法使用“点”表示法从深度嵌套的数组中移除给定的键/值对:
$array = ['products' => ['desk' => ['price' => 100]]];
array_forget($array, 'products.desk');
// ['products' => []]array_get()这个 array_get 方法使用“点”表示法从深层嵌套数组中获取一个值:
$array = ['products' => ['desk' => ['price' => 100]]];
$value = array_get($array, 'products.desk');
// ['price' => 100]该array_get函数还接受一个默认值,如果找不到指定的键,该默认值将被返回:
$value = array_get($array, 'names.john', 'default');array_only()该 array_only 方法 将 返回 仅 该 指定的 键 / 值 对 从 该 给定 数组:
$array = ['name' => 'Desk', 'price' => 100, 'orders' => 10];
$array = array_only($array, ['name', 'price']);
// ['name' => 'Desk', 'price' => 100]array_pluck()该 array_pluck 方法将从数组中提取给定键/值对的列表:
$array = [
['developer' => ['name' => 'Brian']],
['developer' => ['name' => 'Stewie']]
];
$array = array_pluck($array, 'developer.name');
// ['Brian', 'Stewie'];array_pull()该 array_pull 方法返回并移除数组中的一个键值对:
$array = ['name' => 'Desk', 'price' => 100];
$name = array_pull($array, 'name');
// $name: Desk
// $array: ['price' => 100]array_set()array_set 方法使用“点”符号在一个深度嵌套的数组中设置一个值:
$array = ['products' => ['desk' => ['price' => 100]]];
array_set($array, 'products.desk.price', 200);
// ['products' => ['desk' => ['price' => 200]]]数组排序()array_sort 方法根据给定闭包的结果对数组进行排序:
$array = [
['name' => 'Desk'],
['name' => 'Chair'],
];
$array = array_values(array_sort($array, function ($value) {
return $value['name'];
}));
/*
[
['name' => 'Chair'],
['name' => 'Desk'],
]
*/数组_递归排序()此 array_sort_recursive 函数使用 sort 函数递归地对数组进行排序:
$array = [
[
'Brian',
'Shannon',
'Alec',
],
[
'PHP',
'Ruby',
'JavaScript',
],
];
$array = array_sort_recursive($array);
/*
[
[
'Alec',
'Brian',
'Shannon',
],
[
'JavaScript',
'PHP',
'Ruby',
]
];
*/array_where()array_where 函数使用给定的闭包过滤数组:
$array = [100, '200', 300, '400', 500];
$array = array_where($array, function ($value, $key) {
return is_string($value);
});
// [1 => 200, 3 => 400]head()该 head 函数仅返回给定数组中的第一个元素:
$array = [100, 200, 300];
$first = head($array);
// 100最后()该 last 函数返回给定数组中的最后一个元素:
$array = [100, 200, 300];
$last = last($array);
// 300路径前缀符号可用于创建动态路径。例如,以 ~/ 开头的路径将创建一个相对于应用程序的路径:
list: ~/plugins/acme/pay/models/invoiceitem/columns.yaml这些符号支持用于创建动态路径:
| Symbol | Description |
|---|---|
| `# Helpers |
October CMS 包含各种“辅助”PHP 函数。这些函数中有许多由 October 自身在内部使用,不过,如果你发现它们有用,也可以在你自己的插件和应用程序中自由使用它们。
数组_添加
数组_分割
数组_点记
数组_去点记
数组_排除
数组_第一个
数组_扁平化
数组_忘记
数组_获取
数组_仅限
数组_提取
数组_拉取
数组_设置
数组_排序
数组_递归排序
数组_筛选
头部
尾部
路径符号
应用路径
根路径
配置路径
数据库路径
插件路径
公共路径
存储路径
临时路径
主题路径
缓存路径
驼峰命名
类基名
转义
结束于
蛇形命名
字符串限制
开始于
字符串包含
字符串结尾
字符串是否
字符串复数
字符串随机
字符串单数
字符串短链接
大驼峰命名
翻译
复数翻译
资产
配置
dd
环境
输入
获取
提交
文件
重定向
请求
响应
路由
安全资产
跟踪日志
跟踪SQL
URL
数组_添加()array_add 函数将给定的键值对添加到数组中,前提是该键在数组中尚不存在:
代码块0
数组除法()该 array_divide 函数返回两个数组,一个包含键,另一个包含原始数组的值:
代码块_1
array_dot()array_dot 函数将多维数组展平为一个单层数组,该数组使用“点”表示法来指示深度:
代码块2
array_undot()该 array_undot 函数是 array_dot 方法的对应功能。它会将点符号数组转换为标准的关联数组:
代码块_3
array_except()该 array_except 方法 移除 该 给定的 键 / 值 对 从 该 数组:
代码块4
array_first()该 array_first 方法返回通过给定真值测试的数组的第一个元素:
代码块5
一个默认值也可以作为第三个参数传递给该方法。 如果没有值通过真值测试,该值将被返回:
代码块_6
数组扁平化()该 array_flatten 方法会将一个多维数组展平为单层。
代码块7
array_forget()该 array_forget 方法使用“点”符号从一个深度嵌套的数组中移除给定的键/值对:
代码块_8
数组获取()该 array_get 方法使用“点”符号从深度嵌套数组中检索值:
代码块 9
该 array_get 函数也接受一个默认值,如果找不到指定的键,该默认值将被返回:
代码块 10
数组_只()该 array_only 方法将仅从给定数组中返回指定的键值对:
代码块_11
array_提取()array_pluck 方法将从数组中提取给定键/值对的列表:
代码块12
array_pull()array_pull 方法从数组中返回并移除一个键值对:
CODE_BLOCK_13
array_set()array_set 方法使用“点”表示法在深层嵌套数组中设置一个值:
代码块_14
数组排序()该 array_sort 方法根据给定闭包的结果对数组进行排序:
代码块15
array_sort_recursive()array_sort_recursive 函数使用 sort 函数递归地对数组进行排序:
代码块_16
array_where()array_where 函数使用给定的闭包过滤数组:
代码块_17
head()该 head 函数简单地返回给定数组中的第一个元素:
代码块_18
last()该 last 函数返回给定数组中的最后一个元素:
代码块19
路径前缀符号可用于创建动态路径。例如,以 ~/ 开头的路径将创建一个相对于应用程序的路径:
代码块_20
这些符号支持用于创建动态路径:
| Symbol | Description |
|---|---|
| Relative to the plugins directory | |
~ | Relative to the application directory |
# | Relative to the themes directory |
app_path()app_path 函数返回 app 目录的完全限定路径:
$path = app_path();您也可以使用 app_path 函数,生成一个指向相对于应用程序目录的给定文件的完全限定路径:
$path = app_path('Http/Controllers/Controller.php');base_path()该 base_path 函数返回项目根目录的完全限定路径:
$path = base_path();您也可以使用 base_path 函数生成一个完全限定路径到给定文件,该路径是相对于应用程序目录的:
$path = base_path('vendor/bin');配置路径($路径 = '')该 config_path 函数返回应用程序配置目录的完全限定路径:
$path = config_path();您也可以使用 config_path 函数生成一个相对于配置目录的给定文件的完全限定路径:
$path = config_path('dev/cms.php');database_path()database_path 函数返回应用程序数据库目录的完全限定路径:
$path = database_path();plugins_path($path = '')该 plugins_path 函数返回应用程序插件目录的完全限定路径:
$path = plugins_path();您也可以使用 plugins_path 函数生成一个相对于插件目录的给定文件的完全限定路径:
$path = plugins_path('author/plugin/routes.php');public_path()该 public_path 函数返回完整路径到 public 目录:
$path = public_path();storage_path($path = '')``storage_path函数返回storage目录的完全限定路径:
$path = storage_path();您也可以使用 storage_path 函数来生成相对于存储目录的给定文件的完全限定路径:
$path = storage_path('app/file.txt');temp_path($path = '')该 temp_path 函数返回一个用于临时文件的可写入目录的完全限定路径:
$path = temp_path();您也可以使用 temp_path 函数来生成一个相对于临时目录的给定文件的完全限定路径:
$path = temp_path('app/file.txt');themes_path($path = '')该 themes_path 函数返回 themes 目录的完全限定路径:
$path = themes_path();您也可以使用 themes_path 函数来生成一个相对于主题目录的指定文件的完全限定路径:
$path = themes_path('mytheme/file.txt');cache_path($path = '')该 cache_path 函数返回应用程序缓存目录的完全限定路径:
$path = cache_path();您也可以使用 cache_path 函数生成一个相对于缓存目录的给定文件的完全限定路径:
$path = cache_path('cms/cachefile.json');camel_case()该 camel_case 函数将给定字符串转换为 camelCase:
$camel = camel_case('foo_bar');
// fooBar类基本名称()该 class_basename 返回给定类的类名,并移除其命名空间:
$class = class_basename('Foo\Bar\Baz');
// Baze()此 e 函数使用 htmlentities 处理给定的字符串:
echo e('<html>foo</html>');
// <html>foo</html>以...结尾()该 ends_with 函数判断给定的字符串是否以给定的值结尾:
$value = ends_with('This is my name', 'name');
// truesnake_case()该 snake_case 函数将给定字符串转换为 snake_case:
$snake = snake_case('fooBar');
// foo_barstr_limit()str_limit 函数限制字符串中的字符数量。该函数接受一个字符串作为其第一个参数,以及最大结果字符数作为其第二个参数:
$value = str_limit('The CMS platform that gets back to basics.', 6);
// The CMS...starts_with 函数确定给定的字符串是否以给定的值开头:
$value = starts_with('The cow goes moo', 'The');
// truestr_contains()此 str_contains 函数用于判断给定字符串是否包含给定值:
$value = str_contains('The bird goes tweet', 'bird');
// truestr_finish()该 str_finish 函数将给定值的单个实例添加到字符串:
$string = str_finish('this/string', '/');
// this/string/str_is()该 str_is 函数用于确定给定字符串是否匹配给定模式。星号可用于表示通配符:
$value = str_is('foo*', 'foobar');
// true
$value = str_is('baz*', 'foobar');
// falsestr_plural()str_plural 函数将字符串转换为其复数形式。该函数目前仅支持英语:
$plural = str_plural('car');
// cars
$plural = str_plural('child');
// childrenstr_random()str_random 函数生成一个指定长度的随机字符串:
$string = str_random(40);str_singular()该 str_singular 函数将字符串转换为其单数形式。该函数目前仅支持英文:
$singular = str_singular('cars');
// carstr_slug()函数 str_slug 从给定字符串生成一个对 URL 友好的“slug”:
$title = str_slug("October CMS", "-");
// october-cmsstudly_case()该 studly_case 函数将给定字符串转换为 StudlyCase:
$value = studly_case('foo_bar');
// FooBartrans()trans 函数使用您的本地化文件翻译给定的语言行:
echo trans('validation.required'):trans_choice()trans_choice 函数会根据词形变化翻译给定的语言行:
$value = trans_choice('foo.bar', $count);资源()为资产生成一个 URL,使用请求的当前协议 (HTTP 或 HTTPS):
$url = asset('img/photo.jpg');配置()config 函数获取配置变量的值。配置值可以使用“点”语法进行访问,其中包括文件名以及您希望访问的选项。可以指定一个默认值,如果配置选项不存在,则返回该默认值:
$value = config('app.timezone');
$value = config('app.timezone', $default);config 辅助函数也可用于通过传入一个键/值对数组在运行时设置配置变量:
config(['app.debug' => true]);dd()该 dd 函数输出给定变量并结束脚本的执行:
dd($value);env()该 env 函数获取环境变量的值或返回一个默认值:
$env = env('APP_ENV');
// Return a default value if the variable doesn't exist...
$env = env('APP_ENV', 'production');input()该 input 函数从所有请求值中获取一个输入项,包括文件。
$value = input('key', $default = null)get()该 get 函数从请求中获取一个输入项,仅限于GET变量:
$value = get('key', $default = null)发布()该 post 函数从请求中获取一个输入项,仅限于 POST 变量:
$value = post('key', $default = null)文件()files 函数从请求中获取一个文件项:
$value = files('key', $default = null)重定向()该 redirect 函数返回一个重定向器实例以执行 重定向响应:
return redirect('/home');该 request 函数返回当前 请求实例:
$referer = request()->header('referer');response()response 函数创建 响应 实例或获取响应工厂的实例:
return response('Hello World', 200, $headers);
return response()->json(['foo' => 'bar'], 200, $headers);路由()该 route 函数会为指定的 命名路由 生成一个 URL:
$url = route('routeName');如果路由接受参数,你可以将它们作为第二个参数传递给该方法:
$url = route('routeName', ['id' => 1]);secure_asset()使用 HTTPS 为资产生成 URL:
echo secure_asset('foo/bar.zip', $title, $attributes = []);trace_log()trace_log 函数将一条跟踪消息写入日志文件。
trace_log('This code has passed...');该函数支持传递异常、数组和对象:
trace_log($exception);
trace_log($array);
trace_log($object);您也可以传递多个参数来追踪多条消息:
trace_log($value1, $value2, $exception, '...');跟踪SQL()该 trace_sql 函数启用数据库日志记录,并开始监控所有 SQL 输出。
trace_sql();
Db::table('users')->count();
// select count(*) as aggregate from usersurl()url 函数会生成一个指向给定路径的完全限定 URL:
echo url('user/profile');
echo url('user/profile', [1]);