Class yii\BaseYii
继承 | yii\BaseYii |
---|---|
子类 | Yii |
可用版本自 | 2.0 |
源码 | https://github.com/yiichina/yii2/blob/api/framework/BaseYii.php |
BaseYii 是 Yii 框架的核心助手类。
不要直接使用 BaseYii。 相反,使用它的子类 Yii 来自定义 BaseYii 的方法。
公共属性
属性 | 类型 | 描述 | 被定义在 |
---|---|---|---|
$aliases | array | 注册路径别名 | yii\BaseYii |
$app | yii\console\Application|yii\web\Application | 应用程序实例 | yii\BaseYii |
$classMap | array | Yii 自动加载机制使用的类映射。 数组键是类名(没有前导反斜杠), 数组值是相应的类文件路径(或 路径别名)。 此属性主要影响 autoload() 的工作方式。 | yii\BaseYii |
$container | yii\di\Container | createObject() 使用的依赖注入(DI)容器。 您可以使用 yii\di\Container::set() 来设置类及其初始属性值所需的依赖项。 | yii\BaseYii |
公共方法
方法 | 描述 | 被定义在 |
---|---|---|
autoload() | 类自动加载器。 | yii\BaseYii |
beginProfile() | 标记代码块的开头以进行性能分析。 | yii\BaseYii |
configure() | 使用初始属性值配置对象。 | yii\BaseYii |
createObject() | 使用给定配置创建新对象。 | yii\BaseYii |
debug() | 记录调试消息。 跟踪消息主要用于开发目的, 以查看某些代码的执行工作流程。 此方法仅在应用程序处于调试模式时记录消息。 | yii\BaseYii |
endProfile() | 标记代码块的结尾以进行性能分析。 这必须与先前使用相同类别名称的 beginProfile() 调用相匹配。 | yii\BaseYii |
error() | 记录错误消息。 在执行应用程序期间发生不可恢复的错误时, 通常会记录错误消息。 | yii\BaseYii |
getAlias() | 将路径别名转换为实际路径。 | yii\BaseYii |
getLogger() | yii\BaseYii | |
getObjectVars() | 返回对象的公共成员变量。 提供此方法使得我们可以获取对象的公共成员变量。 它与“get_object_vars()” 不同,因为如果在对象本身内调用它,后者将返回 private 和 protected 变量。 | yii\BaseYii |
getRootAlias() | 返回给定别名的根别名部分。 根别名是先前通过 setAlias() 注册的别名。 如果给定的别名与多个根别名匹配,则将返回最长的别名。 | 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 |
属性详情
应用程序实例
Yii 自动加载机制使用的类映射。 数组键是类名(没有前导反斜杠), 数组值是相应的类文件路径(或 路径别名)。 此属性主要影响 autoload() 的工作方式。
参见 autoload().
createObject() 使用的依赖注入(DI)容器。 您可以使用 yii\di\Container::set() 来设置类及其初始属性值所需的依赖项。
参见:
方法详情
类自动加载器。
当 PHP 发现一个未知类时,会自动调用此方法。 该方法将尝试根据以下过程包含类文件:
- 在 $classMap 中搜索;
- 如果是带命名空间的类(例如
yii\base\Component
), 它将尝试包含与相应路径别名相关联的文件 (例如@yii/base/Component.php
);
此自动加载器允许加载遵循 PSR-4 标准 的类,并将其顶级命名空间或子命名空间定义为路径别名。
示例:当定义别名 @yii
和 @yii/bootstrap
时,将使用 yii\bootstrap
别名加载 @yii/bootstrap
命名空间中的类,
该别名指向安装引导程序扩展文件的目录 并且将从 yii 框架目录加载来自其他 yii
命名空间的所有类。
还有自动加载指南。
public static void autoload($className) | ||
$className | string | 没有前导反斜杠“\”的完全限定类名 |
throws | yii\base\UnknownClassException | 如果类文件中不存在该类 |
---|
标记代码块的开头以进行性能分析。
这必须与具有相同类别名称的 endProfile() 调用相匹配。 开始和结束调用也必须正确嵌套。例如,
\Yii::beginProfile('block1');
// 一些要分析的代码
\Yii::beginProfile('block2');
// 一些其他要分析的代码
\Yii::endProfile('block2');
\Yii::endProfile('block1');
参见 endProfile().
public static void beginProfile($token, $category = 'application') | ||
$token | string | 代码块的标记 |
$category | string | 此日志消息的类别 |
使用初始属性值配置对象。
public static object configure($object, $properties) | ||
$object | object | 要配置的对象 |
$properties | array | 以键值对的形式给出属性的初始值。 |
return | object | 对象本身 |
---|
使用给定配置创建新对象。
您可以将此方法视为 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 | 对象类型。可以使用以下形式之一指定:
|
$params | array | 构造函数参数 |
return | object | 创建的对象 |
---|---|---|
throws | yii\base\InvalidConfigException | 如果配置无效。 |
记录调试消息。 跟踪消息主要用于开发目的, 以查看某些代码的执行工作流程。 此方法仅在应用程序处于调试模式时记录消息。
public static void debug($message, $category = 'application') | ||
$message | string|array | 要记录的消息。 这可以是简单的字符串或更复杂的数据结构,例如数组。 |
$category | string | 消息的类别。 |
标记代码块的结尾以进行性能分析。 这必须与先前使用相同类别名称的 beginProfile() 调用相匹配。
参见 beginProfile().
public static void endProfile($token, $category = 'application') | ||
$token | string | 代码块的标记 |
$category | string | 此日志消息的类别 |
记录错误消息。 在执行应用程序期间发生不可恢复的错误时, 通常会记录错误消息。
public static void error($message, $category = 'application') | ||
$message | string|array | 要记录的消息。 这可以是简单的字符串或更复杂的数据结构,例如数组。 |
$category | string | 消息的类别。 |
将路径别名转换为实际路径。
翻译按照以下步骤完成:
- 如果给定的别名不以 '@' 开头,则返回时不做更改;
- 否则,查找与给定别名的开头部分匹配的最长注册别名。 如果存在, 请将给定别名的匹配部分替换为相应的注册路径。
- 抛出异常或返回 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', 因为 '/' 用作边界字符。
注意,此方法不检查返回的路径是否存在。
有关详细信息,请参阅别名的指南文章。
参见 setAlias().
public static string|boolean getAlias($alias, $throwException = true) | ||
$alias | string | 要翻译的别名。 |
$throwException | boolean | 如果给定的别名无效,是否抛出异常。 如果为 false 并且给出了无效的别名,则此方法将返回 false。 |
return | string|boolean | 与别名对应的路径,如果先前未注册根别名,则为 false。 |
---|---|---|
throws | yii\base\InvalidArgumentException | 如果 $throwException 为 true 时别名无效。 |
public static yii\log\Logger getLogger() | ||
return | yii\log\Logger | 消息记录器 |
---|
返回对象的公共成员变量。 提供此方法使得我们可以获取对象的公共成员变量。 它与“get_object_vars()” 不同,因为如果在对象本身内调用它,后者将返回 private 和 protected 变量。
public static array getObjectVars($object) | ||
$object | object | 要处理的对象 |
return | array | 对象的公共成员变量 |
---|
返回给定别名的根别名部分。 根别名是先前通过 setAlias() 注册的别名。 如果给定的别名与多个根别名匹配,则将返回最长的别名。
public static string|boolean getRootAlias($alias) | ||
$alias | string | 别名 |
return | string|boolean | 根别名,如果没有找到根别名则为 false |
---|
返回表示 Yii 框架当前版本的字符串。
public static string getVersion() | ||
return | string | Yii 框架的版本 |
---|
记录信息性消息。 通常由应用程序记录信息性消息以保持重要事件的记录 (例如,管理员登录)。
public static void info($message, $category = 'application') | ||
$message | string|array | 要记录的消息。 这可以是简单的字符串或更复杂的数据结构,例如数组。 |
$category | string | 消息的类别。 |
返回可显示在网页上的 HTML 超链接,其中显示“Powered by Yii Framework”的信息。
public static string powered() | ||
return | string | 可以在网页上显示“Powered by Yii Framework”信息的 HTML 超链接 |
---|
注册路径别名。
路径别名是表示长路径的短名称(文件路径,URL 等) 例如,我们使用 '@yii' 作为 Yii 框架目录路径的别名。
路径别名必须以字符“@”开头, 以便可以轻松区分非别名路径。
请注意,此方法不检查给定路径是否存在。 它所做的只是将别名与路径相关联。
给定路径中的任何结尾的 '/' 和 '\' 字符都将被截取。
有关详细信息,请参阅别名的指南文章。
参见 getAlias().
public static void setAlias($alias, $path) | ||
$alias | string | 别名(例如“@yii”)。它必须以 '@' 字符开头。 它可能包含正斜杠 '/', 它在 getAlias() 执行别名转换时用作边界字符。 |
$path | string | 别名对应的路径。如果为 null,则将删除别名。 结尾的 '/' 和 '\' 字符将被截取。可以是
|
throws | yii\base\InvalidArgumentException | 如果 $path 是无效的别名。 |
---|
设置记录器对象。
public static void setLogger($logger) | ||
$logger | yii\log\Logger | 记录器对象。 |
将信息转换为指定的语言。
这是 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 | 语言代码(例如 |
return | string | 翻译的消息。 |
---|
debug() 的别名。
public static void trace($message, $category = 'application') | ||
$message | string|array | 要记录的消息。 这可以是简单的字符串或更复杂的数据结构,例如数组。 |
$category | string | 消息的类别。 |
记录警告消息。 当执行仍然可以继续时发生错误时, 通常会记录警告消息。
public static void warning($message, $category = 'application') | ||
$message | string|array | 要记录的消息。 这可以是简单的字符串或更复杂的数据结构,例如数组。 |
$category | string | 消息的类别。 |