常量和函数

虽然您在 CakePHP 中的日常工作大部分时间都将使用核心类和方法,但 CakePHP 提供了许多全局便捷函数,这些函数可能对您有用。其中许多函数用于 CakePHP 类(加载模型或组件类),但许多其他函数使处理数组或字符串变得更加容易。

我们还将介绍一些在 CakePHP 应用程序中可用的常量。使用这些常量将有助于使升级更加顺利,但它们也是指向 CakePHP 应用程序中某些文件或目录的便捷方式。

全局函数

以下是 CakePHP 的全局可用函数。它们中的大多数只是其他 CakePHP 功能的便捷包装器,例如调试和翻译内容。默认情况下,只有命名空间函数会自动加载,但是您可以选择通过添加以下内容来加载全局别名

require CAKE . 'functions.php';

到您的应用程序的 config/bootstrap.php。这样做将加载下面列出的所有函数的全局别名。

Cake\I18n\\_\_(string $string_id[, $formatArgs])

此函数处理 CakePHP 应用程序中的本地化。 $string_id 标识翻译的 ID。您可以提供其他参数来替换字符串中的占位符

__('You have {0} unread messages', $number);

您也可以提供一个名称索引的替换数组

__('You have {unread} unread messages', ['unread' => $number]);

注意

有关更多信息,请查看 国际化和本地化 部分。

Cake\I18n\__d(string $domain, string $msg, mixed $args = null)

允许您覆盖单个消息查找的当前域。

在国际化插件时很有用: echo __d('plugin_name', 'This is my plugin');

注意

确保在此处使用插件名称的下划线版本作为域。

Cake\I18n\__dn(string $domain, string $singular, string $plural, integer $count, mixed $args = null)

允许您覆盖单个复数消息查找的当前域。从域 $domain 中返回由 $singular$plural 标识的计数为 $count 的消息的正确复数形式。

Cake\I18n\__dx(string $domain, string $context, string $msg, mixed $args = null)

允许您覆盖单个消息查找的当前域。它还允许您指定一个上下文。

上下文是翻译字符串的唯一标识符,使其在同一个域内变得唯一。

Cake\I18n\__dxn(string $domain, string $context, string $singular, string $plural, integer $count, mixed $args = null)

允许您覆盖单个复数消息查找的当前域。它还允许您指定一个上下文。从域 $domain 中返回由 $singular$plural 标识的计数为 $count 的消息的正确复数形式。某些语言对于复数消息有多种形式,具体取决于计数。

上下文是翻译字符串的唯一标识符,使其在同一个域内变得唯一。

Cake\I18n\__n(string $singular, string $plural, integer $count, mixed $args = null)

返回由 $singular$plural 标识的计数为 $count 的消息的正确复数形式。某些语言对于复数消息有多种形式,具体取决于计数。

Cake\I18n\__x(string $context, string $msg, mixed $args = null)

上下文是翻译字符串的唯一标识符,使其在同一个域内变得唯一。

Cake\I18n\__xn(string $context, string $singular, string $plural, integer $count, mixed $args = null)

返回由 $singular$plural 标识的计数为 $count 的消息的正确复数形式。它还允许您指定一个上下文。某些语言对于复数消息有多种形式,具体取决于计数。

上下文是翻译字符串的唯一标识符,使其在同一个域内变得唯一。

Cake\Collection\collection(mixed $items)

用于实例化新的 Cake\Collection\Collection 对象的便利包装器,包装传递的参数。 $items 参数接受 Traversable 对象或数组。

Cake\Core\debug(mixed $var, boolean $showHtml = null, $showFrom = true)

如果核心 $debug 变量为 true,则打印 $var。 如果 $showHTMLtrue 或保留为 null,则数据将被渲染为浏览器友好格式。 如果 $showFrom 未设置为 false,则调试输出将从调用该输出的行开始。 另请参见 调试

Cake\Core\dd(mixed $var, boolean $showHtml = null)

它的行为类似于 debug(),但执行也会停止。 如果核心 $debug 变量为 true,则打印 $var。 如果 $showHTMLtrue 或保留为 null,则数据将被渲染为浏览器友好格式。 另请参见 调试

Cake\Core\pr(mixed $var)

print_r() 的便利包装器,并在输出周围添加 <pre> 标签。

Cake\Core\pj(mixed $var)

JSON 美化打印便利函数,并在输出周围添加 <pre> 标签。

它用于调试对象和数组的 JSON 表示形式。

Cake\Core\env(string $key, string $default = null)

从可用来源获取环境变量。 如果 $_SERVER$_ENV 被禁用,则用作备用。

此函数还在不支持的服务器上模拟 PHP_SELFDOCUMENT_ROOT。 实际上,最好始终使用 env() 而不是 $_SERVERgetenv()(尤其是如果计划分发代码),因为它是一个完整的模拟包装器。

Cake\Core\h(string $text, boolean $double = true, string $charset = null)

htmlspecialchars() 的便利包装器。

Cake\Core\pluginSplit(string $name, boolean $dotAppend = false, string $plugin = null)

将点语法插件名称拆分为其插件和类名称。 如果 $name 没有点,则索引 0 将为 null

通常像 list($plugin, $name) = pluginSplit('Users.User'); 一样使用。

Cake\Core\namespaceSplit(string $class)

将命名空间从类名中分离出来。

通常像 list($namespace, $className) = namespaceSplit('Cake\Core\App'); 一样使用。

核心定义常量

以下大多数常量指的是应用程序中的路径。

constant Cake\Core\APP

应用程序目录的绝对路径,包括尾部斜杠。

constant Cake\Core\APP_DIR

等于 app 或应用程序目录的名称。

constant Cake\Core\CACHE

缓存文件目录的路径。 它可以在多服务器设置中由主机共享。

constant Cake\Core\CAKE

cake 目录的路径。

constant Cake\Core\CAKE_CORE_INCLUDE_PATH

根 lib 目录的路径。

constant Cake\Core\CONFIG

config 目录的路径。

constant Cake\Core\CORE_PATH

带有结尾目录斜杠的 CakePHP 目录的路径。

constant Cake\Core\DS

PHP 的 DIRECTORY_SEPARATOR 的简写,在 Linux 上为 /,在 Windows 上为 \

constant Cake\Core\LOGS

日志目录的路径。

constant Cake\Core\RESOURCES

资源目录的路径。

constant Cake\Core\ROOT

根目录的路径。

constant Cake\Core\TESTS

tests 目录的路径。

constant Cake\Core\TMP

临时文件目录的路径。

constant Cake\Core\WWW_ROOT

webroot 的完整路径。

计时定义常量

constant Cake\Core\TIME_START

应用程序启动时的微秒 Unix 时间戳,作为浮点数。