Class yii\BaseYii

继承yii\BaseYii
子类Yii
可用自版本2.0
源代码 https://github.com/yiisoft/yii2/blob/master/framework/BaseYii.php

BaseYii 是 Yii 框架的核心助手类.

不要直接使用 BaseYii. 相反, 使用它的子类 Yii 来自定义 BaseYii 的方法.

公共属性

隐藏继承的属性

属性类型描述定义在
$aliases array 注册路径别名. yii\BaseYii
$app yii\console\Application|yii\web\Application 应用程序实例. yii\BaseYii
$classMap array Yii 自动加载机制使用的类映射. yii\BaseYii
$container yii\di\Container createObject() 使用的依赖注入(DI)容器. yii\BaseYii

公共方法

隐藏继承的方法

方法描述定义在
autoload() 类自动加载器. yii\BaseYii
beginProfile() 标记代码块的开头以进行性能分析. yii\BaseYii
configure() 使用初始属性值配置对象. yii\BaseYii
createObject() 使用给定的配置创建新对象. yii\BaseYii
debug() 记录调试消息. yii\BaseYii
endProfile() 标记代码块的结尾以进行性能分析. yii\BaseYii
error() 记录错误消息. yii\BaseYii
getAlias() 将路径别名转换为实际路径. yii\BaseYii
getLogger() yii\BaseYii
getObjectVars() 返回对象的公共成员变量. yii\BaseYii
getRootAlias() 返回给定别名的根别名部分. yii\BaseYii
getVersion() 返回表示 Yii 框架当前版本的字符串. yii\BaseYii
info() 记录信息性消息. yii\BaseYii
powered() 返回可显示在网页上的 HTML 超链接, 其中显示"Powered by Yii Framework"的信息. yii\BaseYii
setAlias() 注册路径别名. yii\BaseYii
setLogger() 设置记录器对象. yii\BaseYii
t() 将消息翻译为指定的语言. yii\BaseYii
trace() debug() 的别名. yii\BaseYii
warning() 记录警告消息. yii\BaseYii

属性详情

$aliases public static 属性

注册路径别名.

参见:

public static array $aliases = ['@yii' => __DIR__]
$app public static 属性

应用程序实例.

$classMap public static 属性

Yii 自动加载机制使用的类映射.

数组键是类名(没有前导反斜杠), 数组值是相应的类文件路径(或 路径别名). 此属性主要影响 autoload() 的工作方式.

参见 autoload().

public static array $classMap = []
$container public static 属性

createObject() 使用的依赖注入(DI)容器.

您可以使用 yii\di\Container::set() 来设置类及其初始属性值所需的依赖项.

参见:

public static yii\di\Container $container null

方法详情

autoload() public static 方法

类自动加载器.

当 PHP 发现一个未知类时, 会自动调用此方法. 该方法将尝试根据以下过程包含类文件:

  1. $classMap 中搜索;
  2. 如果是带命名空间的类(eg. yii\base\Component), 它将尝试包含与相应路径别名相关联的文件(eg. @yii/base/Component.php);

此自动加载器允许加载遵循 PSR-4 标准 的类, 并将其顶级命名空间或子命名空间定义为路径别名.

示例: 当定义别名@yii@yii/bootstrap时, 将使用yii\bootstrap别名加载@yii/bootstrap命名空间中的类, 该别名指向安装引导程序扩展文件的目录, 并且将从yii框架目录加载来自其它yii命名空间的所有类.

另请参阅 权威指南 - 关键概念 - 类自动加载(Class Autoloading).

public static void autoload ( $className )
$className string

没有前导反斜杠"\"的完全限定类名.

throws yii\base\UnknownClassException

如果类文件中不存在该类.

beginProfile() public static 方法

标记代码块的开头以进行性能分析.

这必须与具有相同类别名称的 endProfile() 调用相匹配. 开始和结束调用也必须正确嵌套. 例如:

\Yii::beginProfile('block1');
// some code to be profiled
    \Yii::beginProfile('block2');
    // some other code to be profiled
    \Yii::endProfile('block2');
\Yii::endProfile('block1');

参见 endProfile().

public static void beginProfile ( $token, $category 'application' )
$token string

代码块的标记(token).

$category string

此日志消息的类别.

configure() public static 方法

使用初始属性值配置对象.

public static object configure ( $object, $properties )
$object object

要配置的对象.

$properties array

以键值对的形式给出属性的初始值.

return object

对象本身.

createObject() public static 方法

使用给定的配置创建新对象.

您可以将此方法视为new运算符的增强版本. 该方法支持基于类名、配置数组或匿名函数创建对象.

以下是一些使用示例:

// 使用类名创建一个对象
$object = Yii::createObject('yii\db\Connection');

// 使用配置数组创建对象
$object = Yii::createObject([
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=127.0.0.1;dbname=demo',
    'username' => 'root',
    'password' => '',
    'charset' => 'utf8',
]);

// 使用两个构造函数参数创建一个对象
$object = \Yii::createObject('MyClass', [$param1, $param2]);

使用 依赖注入容器, 此方法还可以识别依赖对象, 实例化它们并将它们注入新创建的对象.

参见 yii\di\Container.

public static object createObject ( $type, array $params = [] )
$type string|array|callable

对象类型. 可以使用以下形式之一指定:

  • 字符串: 表示要创建的对象的类名
  • 配置数组: 数组必须包含一个被视为对象类的class元素, 其余的键值对将用于初始化相应的对象属性
  • PHP 可调用: 要么是匿名函数, 要么是表示类方法的数组([$class or $object, $method]). 可调用应返回正在创建的对象的新实例.
$params array

构造函数参数.

return object

创建的对象.

throws yii\base\InvalidConfigException

如果配置无效.

debug() public static 方法 (可用自版本: 2.0.14)

记录调试消息.

调试消息主要用于开发目的, 以查看某些代码的执行工作流程. 此方法仅在应用程序处于调试模式时记录消息.

public static void debug ( $message, $category 'application' )
$message string|array

要记录的消息. 这可以是简单的字符串或更复杂的数据结构, 例如数组.

$category string

消息的类别.

endProfile() public static 方法

标记代码块的结尾以进行性能分析.

这必须与先前使用相同类别名称的 beginProfile() 调用相匹配.

参见 beginProfile().

public static void endProfile ( $token, $category 'application' )
$token string

代码块的标记(token).

$category string

此日志消息的类别.

error() public static 方法

记录错误消息.

在执行应用程序期间发生不可恢复的错误时, 通常会记录一条错误消息.

public static void error ( $message, $category 'application' )
$message string|array

要记录的消息. 这可以是简单的字符串或更复杂的数据结构, 例如数组.

$category string

消息的类别.

getAlias() public static 方法

将路径别名转换为实际路径.

转换按照以下步骤完成:

  1. 如果给定的别名不以@开头, 则返回时不做更改;
  2. 否则, 查找与给定别名的开头部分匹配的最长注册别名. 如果存在, 就将给定别名的匹配部分替换为相应的注册路径.
  3. 抛出异常或返回false, 具体取决于$throwException参数.

例如, 默认情况下, @yii被注册为 Yii 框架目录的别名, 比如/path/to/yii. 别名 @yii/web 将被转换成/path/to/yii/web.

如果你已经注册了两个别名@foo@foo/bar. 然后转换@foo/bar/config会将@foo/bar部分(而不是@foo)替换为相应的注册路径. 这是因为最长的别名优先.

但是, 如果要翻译的别名是@foo/barbar/config, 那么@foo将被替换而不是@foo/bar, 因为/用作边界字符.

Note: 此方法不检查返回的路径是否存在.

有关详细信息, 请参阅 权威指南 - 关键概念 - 别名(Aliases).

参见 setAlias().

public static string|boolean getAlias ( $alias, $throwException true )
$alias string

要转换的别名.

$throwException boolean

如果给定的别名无效, 是否抛出异常. 如果为false并且给出了无效的别名, 则此方法将返回false.

return string|boolean

与别名对应的路径, 如果先前未注册根别名, 则为false.

throws yii\base\InvalidArgumentException

如果别名无效且$throwExceptiontrue.

getLogger() public static 方法

public static yii\log\Logger getLogger ( )
return yii\log\Logger

消息记录器.

getObjectVars() public static 方法

返回对象的公共成员变量.

提供此方法使得我们可以获取对象的公共成员变量. 它与get_object_vars()不同, 因为如果在对象本身内调用它, 后者将返回私有(private)和受保护(protected)的变量.

public static array getObjectVars ( $object )
$object object

要处理的对象.

return array

对象的公共成员变量.

getRootAlias() public static 方法

返回给定别名的根别名部分.

根别名是先前通过 setAlias() 注册的别名. 如果给定的别名与多个根别名匹配, 则将返回最长的别名.

public static string|boolean getRootAlias ( $alias )
$alias string

别名.

return string|boolean

根别名; 如果没有找到根别名, 则为false.

getVersion() public static 方法

返回表示 Yii 框架当前版本的字符串.

public static string getVersion ( )
return string

Yii 框架的版本.

info() public static 方法

记录信息性消息.

通常由应用程序记录信息性消息以保持重要事件的记录(eg. 管理员登录).

public static void info ( $message, $category 'application' )
$message string|array

要记录的消息. 这可以是简单的字符串或更复杂的数据结构, 例如数组.

$category string

消息的类别.

powered() public static 方法
弃用 从 2.0.14, 该方法将在 2.1.0 中删除.

返回可显示在网页上的 HTML 超链接, 其中显示"Powered by Yii Framework"的信息.

public static string powered ( )
return string

可以在网页上显示"Powered by Yii Framework"信息的 HTML 超链接.

setAlias() public static 方法

注册路径别名.

路径别名是表示长路径的短名称(文件路径, URL 等). 例如, 我们使用@yii作为 Yii 框架目录路径的别名.

路径别名必须以字符@开头, 以便可以轻松区分非别名路径.

Note: 此方法不检查给定路径是否存在. 它所做的只是将别名与路径相关联.

给定路径中的任何结尾的/\字符都将被截取.

有关详细信息, 请参阅 权威指南 - 关键概念 - 别名(Aliases).

参见 getAlias().

public static void setAlias ( $alias, $path )
$alias string

别名(eg. @yii). 它必须以@字符开头. 它可能包含正斜杠/, 它在 getAlias() 执行别名转换时用作边界字符.

$path string

别名对应的路径. 如果为null, 则将删除别名. 结尾的/\字符将被截取. 可以是:

  • 目录或文件路径(eg. /tmp, /tmp/main.txt)
  • a URL (e.g. http://www.yiiframework.com)
  • 路径别名(eg. @yii/base). 在这种情况下, 路径别名将首先通过调用 getAlias() 转换为实际路径.
throws yii\base\InvalidArgumentException

如果$path是无效的别名.

setLogger() public static 方法

设置记录器对象.

public static void setLogger ( $logger )
$logger yii\log\Logger

记录器对象.

t() public static 方法

将消息翻译为指定的语言.

这是 yii\i18n\I18N::translate() 的快捷方法.

翻译将根据消息类别进行, 并将使用目标语言.

您可以将参数添加到翻译消息中, 该翻译消息将在翻译后替换为相应的值. 这种格式是在参数名称前后使用大括号, 如下例所示:

$username = 'Alexander';
echo \Yii::t('app', 'Hello, {username}!', ['username' => $username]);

使用 PHP intl 扩展 消息格式化程序支持进一步格式化消息参数. 有关详细信息, 请参见 yii\i18n\I18N::translate().

public static string t ( $category, $message, $params = [], $language null )
$category string

消息类别.

$message string

要翻译的消息.

$params array

将用于替换消息中相应占位符的参数.

$language string

语言代码(eg. en-US, en). 如果为null, 则将使用当前 应用程序语言.

return string

翻译后的消息.

trace() public static 方法
弃用 自 2.0.14. 请改用 debug().

debug() 的别名.

public static void trace ( $message, $category 'application' )
$message string|array

要记录的消息. 这可以是简单的字符串或更复杂的数据结构, 例如数组.

$category string

消息的类别.

warning() public static 方法

记录警告消息.

当执行仍然可以继续时发生错误时, 通常会记录一条警告消息.

public static void warning ( $message, $category 'application' )
$message string|array

要记录的消息. 这可以是简单的字符串或更复杂的数据结构, 例如数组.

$category string

消息的类别.