没有命名空间的类 yii yii\base yii\behaviors yii\caching yii\captcha yii\console yii\console\controllers yii\console\widgets yii\data yii\db yii\db\conditions yii\db\cubrid yii\db\cubrid\conditions yii\db\mssql yii\db\mssql\conditions yii\db\mysql yii\db\oci yii\db\oci\conditions yii\db\pgsql yii\db\sqlite yii\db\sqlite\conditions yii\di yii\filters yii\filters\auth yii\grid yii\helpers yii\i18n yii\log yii\mail yii\mutex yii\rbac yii\rest yii\test yii\validators yii\web yii\widgets

Class yii\console\controllers\MessageController

继承yii\console\controllers\MessageController » yii\console\Controller » yii\base\Controller » yii\base\Component » yii\base\BaseObject
实现yii\base\Configurable, yii\base\ViewContextInterface
可用版本自2.0
源码 https://github.com/yiichina/yii2/blob/api/framework/console/controllers/MessageController.php

从源文件中提取要翻译的消息。

根据配置文件中的 format 设置,提取的消息可以 保存如下:

  • PHP 消息源文件。
  • ".po" 文件。
  • 数据库。

用法:

  1. 通过 'message/config' 命令创建配置文件: yii message/config /path/to/myapp/messages/config.php
  2. 编辑创建的配置文件,根据 Web 应用程序的需要对其进行调整。
  3. 运行 'message/extract' 命令,使用创建的配置: yii message /path/to/myapp/messages/config.php

公共属性

隐藏继承的属性

属性类型描述被定义在
$action yii\base\Action The action that is currently being executed. yii\base\Controller
$behaviors yii\base\Behavior[] List of behaviors attached to this component yii\base\Component
$catalog string 将用于翻译 "po" 格式的文件的名称。 yii\console\controllers\MessageController
$color boolean 是否在输出中启用 ANSI 颜色。 如果未设置,则仅为支持 ANSI 颜色的终端启用 ANSI 颜色。 yii\console\Controller
$db string "db" 格式的连接组件 ID。 yii\console\controllers\MessageController
$defaultAction string 控制器默认动作 ID。 yii\console\controllers\MessageController
$except array 指定不应处理哪些文件/目录的模式列表。 如果为空或未设置,将处理所有文件/目录。 查看 helpers/FileHelper::findFiles() 模式匹配规则的说明。 如果文件/目录与 "only" 和 "except" 中的模式都匹配,则不会对其进行处理。 yii\console\controllers\MessageController
$format string 生成的文件格式。可以是 "php","db","po" 或者 "pot"。 yii\console\controllers\MessageController
$help boolean 是否显示有关当前命令的帮助信息。 yii\console\Controller
$helpSummary string yii\console\Controller
$id string The ID of this controller. yii\base\Controller
$ignoreCategories array 要忽略的消息类别。例如 'yii','app*','widgets/menu',等。 yii\console\controllers\MessageController
$interactive boolean 是否以交互方式运行命令。 yii\console\Controller
$languages array 必须,将提取的消息转换为的语言代码列表。 例如,['zh-CN', 'de']。 yii\console\controllers\MessageController
$layout null|string|false The name of the layout to be applied to this controller's views. yii\base\Controller
$markUnused boolean 是否标记不再出现在源代码中的消息。 默认值为 true,这意味着这些消息中的每一条都将包含一对 '@@' 标记。 yii\console\controllers\MessageController
$messagePath string 必须,包含消息转换的根目录。 yii\console\controllers\MessageController
$messageTable string "db" 格式的转换消息表的自定义名称。 yii\console\controllers\MessageController
$module yii\base\Module The module that this controller belongs to. yii\base\Controller
$modules yii\base\Module[] All ancestor modules that this controller is located within. yii\base\Controller
$only array 指定应处理哪些文件(而不是目录)的模式列表。 如果为空或未设置,则将处理所有文件。 查看 helpers/FileHelper::findFiles() 模式匹配规则的说明。 如果文件/目录与 "only" 和 "except",则不会对其进行处理。 yii\console\controllers\MessageController
$overwrite boolean 是否应用合并的消息覆盖消息文件 yii\console\controllers\MessageController
$passedOptionValues array 与传递的选项对应的属性 yii\console\Controller
$passedOptions array 执行期间传递的选项的名称 yii\console\Controller
$phpDocBlock string|null 在生成的 PHP 文件中用于消息数组的 DocBlock。如果是 null,将使用默认的 DocBlock。 此属性仅用于如果 $format 是 "php"。 yii\console\controllers\MessageController
$phpFileHeader string 生成的带有消息的 PHP 文件中的文件头。此属性仅用于如果 $format 是 "php"。 yii\console\controllers\MessageController
$removeUnused boolean 是否删除不再出现在源代码中的消息。 默认值为 false,这意味着这些消息将不会被删除。 yii\console\controllers\MessageController
$route string The route (module ID, controller ID and action ID) of the current request. yii\base\Controller
$sort boolean 是否在将新消息与现有消息合并时按键对消息进行排序。 默认为 false,也就是说新的(untranslated) 消息将从旧的(translated)消息中分离出来。 yii\console\controllers\MessageController
$sourceMessageTable string "db" 格式的源消息表的自定义名称。 yii\console\controllers\MessageController
$sourcePath string 必须,所有源文件的根目录。 yii\console\controllers\MessageController
$translator string 用于翻译消息的函数的名称。 默认为 'Yii::t'。此标记用作查找要翻译的消息的标记。 你可以对单个函数名使用字符串, 或对多个函数名使用数组。 yii\console\controllers\MessageController
$uniqueId string The controller ID that is prefixed with the module ID (if any). yii\base\Controller
$view yii\base\View|yii\web\View The view object that can be used to render views or view files. yii\base\Controller
$viewPath string The directory containing the view files for this controller. yii\base\Controller

受保护的属性

隐藏继承的属性

属性类型描述被定义在
$config array 用于消息提取的配置。 yii\console\controllers\MessageController

公共方法

隐藏继承的方法

方法描述被定义在
__call() Calls the named method which is not a class method. yii\base\Component
__clone() This method is called after the object is created by cloning an existing one. yii\base\Component
__construct() yii\base\Controller
__get() Returns the value of a component property. yii\base\Component
__isset() Checks if a property is set, i.e. defined and not null. yii\base\Component
__set() Sets the value of a component property. yii\base\Component
__unset() Sets a component property to be null. yii\base\Component
actionConfig() 使用指定的命令行选项为 "extract" 命令创建配置文件。 yii\console\controllers\MessageController
actionConfigTemplate() 为 "extract" 命令创建配置文件模板。 yii\console\controllers\MessageController
actionExtract() 从源代码中提取要翻译的消息。 yii\console\controllers\MessageController
actions() Declares external actions for the controller. yii\base\Controller
afterAction() This method is invoked right after an action is executed. yii\base\Controller
ansiFormat() 使用 ANSI 代码格式化字符串。 yii\console\Controller
attachBehavior() Attaches a behavior to this component. yii\base\Component
attachBehaviors() Attaches a list of behaviors to the component. yii\base\Component
beforeAction() This method is invoked right before an action is executed. yii\base\Controller
behaviors() Returns a list of behaviors that this component should behave as. yii\base\Component
bindActionParams() 将参数绑定到动作。 当 yii\base\Action 开始使用给定的参数运行时,此方法被调用。 此方法首先将参数与操作可用的 options绑定。 然后验证给定的参数。 yii\console\Controller
canGetProperty() Returns a value indicating whether a property can be read. yii\base\Component
canSetProperty() Returns a value indicating whether a property can be set. yii\base\Component
className() Returns the fully qualified name of this class. yii\base\BaseObject
confirm() 要求用户通过键入 y 或 n 来确认。 yii\console\Controller
createAction() Creates an action based on the given action ID. yii\base\Controller
detachBehavior() Detaches a behavior from the component. yii\base\Component
detachBehaviors() Detaches all behaviors from the component. yii\base\Component
ensureBehaviors() Makes sure that the behaviors declared in behaviors() are attached to this component. yii\base\Component
findLayoutFile() Finds the applicable layout file. yii\base\Controller
getActionArgsHelp() 返回动作的匿名参数的帮助信息。 yii\console\Controller
getActionHelp() 返回指定动作的详细帮助信息。 yii\console\Controller
getActionHelpSummary() 返回描述指定动作的一行简短摘要。 yii\console\Controller
getActionOptionsHelp() 返回动作选项的帮助信息。 yii\console\Controller
getBehavior() Returns the named behavior object. yii\base\Component
getBehaviors() Returns all behaviors attached to this component. yii\base\Component
getHelp() 返回此控制器的帮助信息。 yii\console\Controller
getHelpSummary() 返回描述此控制器的一行简短摘要。 yii\console\Controller
getModules() Returns all ancestor modules of this controller. yii\base\Controller
getOptionValues() 返回与动作 ID 的选项对应的属性 子类可以重写此方法以指定可能的属性。 yii\console\Controller
getPassedOptionValues() 返回与传递的选项对应的属性。 yii\console\Controller
getPassedOptions() 返回执行期间传递的有效选项的名称。 yii\console\Controller
getRoute() Returns the route of the current request. yii\base\Controller
getUniqueId() Returns the unique ID of the controller. yii\base\Controller
getView() Returns the view object that can be used to render views or view files. yii\base\Controller
getViewPath() Returns the directory containing view files for this controller. yii\base\Controller
hasEventHandlers() Returns a value indicating whether there is any handler attached to the named event. yii\base\Component
hasMethod() Returns a value indicating whether a method is defined. yii\base\Component
hasProperty() Returns a value indicating whether a property is defined for this component. yii\base\Component
init() Initializes the object. yii\base\BaseObject
isColorEnabled() 返回一个指示是否启用 ANSI 颜色的值。 yii\console\Controller
off() Detaches an existing event handler from this component. yii\base\Component
on() Attaches an event handler to an event. yii\base\Component
optionAliases() 返回选项别名。 子类可以重写此方法以指定别名选项。 yii\console\controllers\MessageController
options() 返回操作的有效选项的动作(id) 选项要求存在一个名为选项名的 公共成员变量。 子类可以重写此方法以指定可能的选项。 yii\console\controllers\MessageController
prompt() 提示用户输入并验证它。 yii\console\Controller
render() Renders a view and applies layout if available. yii\base\Controller
renderContent() Renders a static string by applying a layout. yii\base\Controller
renderFile() Renders a view file. yii\base\Controller
renderPartial() Renders a view without applying layout. yii\base\Controller
run() Runs a request specified in terms of a route. yii\base\Controller
runAction() 使用指定的动作 ID 和参数运行动作。 如果动作 ID 为空,则该方法将使用 $defaultAction yii\console\Controller
select() 为用户提供可供选择的选项。给予 '?' 作为输入将显示 可供选择的选项列表及其解释。 yii\console\Controller
setView() Sets the view object to be used by this controller. yii\base\Controller
setViewPath() Sets the directory that contains the view files. yii\base\Controller
stderr() 将字符串打印到 STDERR。 yii\console\Controller
stdout() 将字符串打印到 STDOUT。 yii\console\Controller
trigger() Triggers an event. yii\base\Component

受保护的方法

隐藏继承的方法

方法描述被定义在
extractMessages() 从文件中提取消息。 yii\console\controllers\MessageController
extractMessagesFromTokens() 从解析的 PHP 令牌列表中提取消息。 yii\console\controllers\MessageController
getActionMethodReflection() yii\console\Controller
getLine() 查找找到的第一个 non-char PHP 标记的一行。 yii\console\controllers\MessageController
initConfig() yii\console\controllers\MessageController
isCategoryIgnored() 方法检查,$category 是否被忽略根据 $ignoreCategories 数组。 yii\console\controllers\MessageController
parseDocCommentDetail() 返回 docblock 的完整描述。 yii\console\Controller
parseDocCommentSummary() 返回 docblock 的第一行。 yii\console\Controller
parseDocCommentTags() 将注释块解析为标记。 yii\console\Controller
saveMessagesCategoryToPHP() 将类别消息写入 PHP 文件。 yii\console\controllers\MessageController
saveMessagesToDb() 将消息保存到数据库。 yii\console\controllers\MessageController
saveMessagesToPHP() 将消息写入 PHP 文件。 yii\console\controllers\MessageController
saveMessagesToPO() 将消息写入 PO 文件。 yii\console\controllers\MessageController
saveMessagesToPOT() 将消息写入 POT 文件。 yii\console\controllers\MessageController
tokensEqual() 查找两个 PHP 标记是否相等。 yii\console\controllers\MessageController

Events

隐藏继承的事件

事件类型描述被定义在
EVENT_AFTER_ACTION yii\base\ActionEvent An event raised right after executing a controller action. yii\base\Controller
EVENT_BEFORE_ACTION yii\base\ActionEvent An event raised right before executing a controller action. yii\base\Controller

常量

隐藏继承的常量

常量描述被定义在
EXIT_CODE_ERROR 1 Deprecated 自 2.0.13。使用 yii\console\ExitCode::UNSPECIFIED_ERROR 替代。 yii\console\Controller
EXIT_CODE_NORMAL 0 Deprecated 自 2.0.13。使用 yii\console\ExitCode::OK 替代。 yii\console\Controller

属性详情

$catalog 公共 属性

将用于翻译 "po" 格式的文件的名称。

public string $catalog 'messages'
$config 受保护 属性 (自版本 2.0.13 可用)

用于消息提取的配置。

参见:

protected array $config null
$db 公共 属性

"db" 格式的连接组件 ID。

public string $db 'db'
$defaultAction 公共 属性

控制器默认动作 ID。

public string $defaultAction 'extract'
$except 公共 属性

指定不应处理哪些文件/目录的模式列表。 如果为空或未设置,将处理所有文件/目录。 查看 helpers/FileHelper::findFiles() 模式匹配规则的说明。 如果文件/目录与 "only" 和 "except" 中的模式都匹配,则不会对其进行处理。

public array $except = ['.svn''.git''.gitignore''.gitkeep''.hgignore''.hgkeep''/messages''/BaseYii.php']
$format 公共 属性

生成的文件格式。可以是 "php","db","po" 或者 "pot"。

public string $format 'php'
$ignoreCategories 公共 属性

要忽略的消息类别。例如 'yii','app*','widgets/menu',等。

参见 isCategoryIgnored().

$languages 公共 属性

必须,将提取的消息转换为的语言代码列表。 例如,['zh-CN', 'de']。

public array $languages = []
$markUnused 公共 属性

是否标记不再出现在源代码中的消息。 默认值为 true,这意味着这些消息中的每一条都将包含一对 '@@' 标记。

public boolean $markUnused true
$messagePath 公共 属性

必须,包含消息转换的根目录。

public string $messagePath '@yii/messages'
$messageTable 公共 属性

"db" 格式的转换消息表的自定义名称。

public string $messageTable '{{%message}}'
$only 公共 属性

指定应处理哪些文件(而不是目录)的模式列表。 如果为空或未设置,则将处理所有文件。 查看 helpers/FileHelper::findFiles() 模式匹配规则的说明。 如果文件/目录与 "only" 和 "except",则不会对其进行处理。

public array $only = ['*.php']
$overwrite 公共 属性

是否应用合并的消息覆盖消息文件

public boolean $overwrite true
$phpDocBlock 公共 属性 (自版本 2.0.13 可用)

在生成的 PHP 文件中用于消息数组的 DocBlock。如果是 null,将使用默认的 DocBlock。 此属性仅用于如果 $format 是 "php"。

public string|null $phpDocBlock null
$phpFileHeader 公共 属性 (自版本 2.0.13 可用)

生成的带有消息的 PHP 文件中的文件头。此属性仅用于如果 $format 是 "php"。

public string $phpFileHeader ''
$removeUnused 公共 属性

是否删除不再出现在源代码中的消息。 默认值为 false,这意味着这些消息将不会被删除。

public boolean $removeUnused false
$sort 公共 属性

是否在将新消息与现有消息合并时按键对消息进行排序。 默认为 false,也就是说新的(untranslated) 消息将从旧的(translated)消息中分离出来。

public boolean $sort false
$sourceMessageTable 公共 属性

"db" 格式的源消息表的自定义名称。

public string $sourceMessageTable '{{%source_message}}'
$sourcePath 公共 属性

必须,所有源文件的根目录。

public string $sourcePath '@yii'
$translator 公共 属性

用于翻译消息的函数的名称。 默认为 'Yii::t'。此标记用作查找要翻译的消息的标记。 你可以对单个函数名使用字符串, 或对多个函数名使用数组。

public string $translator 'Yii::t'

方法详情

actionConfig() 公共 方法

使用指定的命令行选项为 "extract" 命令创建配置文件。

生成的配置文件包含源代码消息 提取所需的参数。 你可以将此配置文件与 "extract" 命令一起使用。

public integer actionConfig($filePath)
$filePath string

输出文件名或别名。

return integer

CLI 退出代码

throws yii\console\Exception

失败的时候。

actionConfigTemplate() 公共 方法

为 "extract" 命令创建配置文件模板。

创建的配置文件包含有关 如何根据您的需要对其进行自定义的详细说明。定制后, 您可以将此配置文件与 "extract" 命令配合使用。

public integer actionConfigTemplate($filePath)
$filePath string

输出文件名或别名。

return integer

CLI 退出代码

throws yii\console\Exception

失败的时候。

actionExtract() 公共 方法

从源代码中提取要翻译的消息。

此命令将搜索源代码文件 并提取需要翻译为不同语言的消息。

public void actionExtract($configFile null)
$configFile string

配置文件的路径或别名。 你可以使用 "yii message/config" 命令以生成 此文件,然后根据您的需要对其进行自定义。

throws yii\console\Exception

失败的时候。

extractMessages() 受保护 方法

从文件中提取消息。

protected array extractMessages($fileName, $translator, $ignoreCategories = [])
$fileName string

要从中提取消息的文件的名称。

$translator string

用于翻译消息的函数的名称。

$ignoreCategories array

要忽略的消息类别。 此参数自版本 2.0.4。起可用

extractMessagesFromTokens() 受保护 方法

从解析的 PHP 令牌列表中提取消息。

protected array extractMessagesFromTokens(array $tokens, array $translatorTokens, array $ignoreCategories)
$tokens array

要处理的令牌。

$translatorTokens array

翻译令牌。

$ignoreCategories array

要忽略的消息类别。

return array

Messages。

getLine() 受保护 方法 (自版本 2.0.1 可用)

查找找到的第一个 non-char PHP 标记的一行。

protected integer|string getLine($tokens)
$tokens array
initConfig() 受保护 方法 (自版本 2.0.13 可用)

protected void initConfig($configFile)
$configFile string
throws yii\console\Exception

如果配置文件不存在。

isCategoryIgnored() 受保护 方法 (自版本 2.0.7 可用)

方法检查,$category 是否被忽略根据 $ignoreCategories 数组。

例如:

  • myapp - 将仅被忽略 myapp 类别;
  • myapp* - 将被忽略所有以 myappmyappmyapplicationmyapprovemyapp/widgetsmyapp.widgets,等)开头的类别。
protected boolean isCategoryIgnored($category, array $ignoreCategories)
$category string

选中的类别

$ignoreCategories array

要忽略的消息类别。

optionAliases() 公共 方法 (自版本 2.0.8 可用)

返回选项别名。 子类可以重写此方法以指定别名选项。

public array optionAliases()
return array

选项别名对操作有效, 其中键是选项的别名,值是选项名。

options() 公共 方法

返回操作的有效选项的动作(id) 选项要求存在一个名为选项名的 公共成员变量。 子类可以重写此方法以指定可能的选项。

请注意,通过选项设置的值不可用 直到调用 beforeAction()

public string[] options($actionID)
$actionID string

当前请求的动作 id

return string[]

对操作有效的选项名称

saveMessagesCategoryToPHP() 受保护 方法

将类别消息写入 PHP 文件。

protected integer saveMessagesCategoryToPHP($messages, $fileName, $overwrite, $removeUnused, $sort, $category, $markUnused)
$messages array
$fileName string

要写入的文件的名称

$overwrite boolean

如果在没有备份的情况下覆盖现有文件

$removeUnused boolean

如果应删除过时的译文

$sort boolean

如果翻译需要排序

$category string

消息类别

$markUnused boolean

如果应标记过时的译文

return integer

退出代码

saveMessagesToDb() 受保护 方法

将消息保存到数据库。

protected void saveMessagesToDb($messages, $db, $sourceMessageTable, $messageTable, $removeUnused, $languages, $markUnused)
$messages array
$db yii\db\Connection
$sourceMessageTable string
$messageTable string
$removeUnused boolean
$languages array
$markUnused boolean
saveMessagesToPHP() 受保护 方法

将消息写入 PHP 文件。

protected void saveMessagesToPHP($messages, $dirName, $overwrite, $removeUnused, $sort, $markUnused)
$messages array
$dirName string

要写入的目录的名称

$overwrite boolean

如果在没有备份的情况下覆盖现有文件

$removeUnused boolean

如果应删除过时的译文

$sort boolean

如果翻译需要排序

$markUnused boolean

如果应标记过时的译文

saveMessagesToPO() 受保护 方法

将消息写入 PO 文件。

protected void saveMessagesToPO($messages, $dirName, $overwrite, $removeUnused, $sort, $catalog, $markUnused)
$messages array
$dirName string

要写入的目录的名称

$overwrite boolean

如果在没有备份的情况下覆盖现有文件

$removeUnused boolean

如果应删除过时的译文

$sort boolean

如果翻译需要排序

$catalog string

消息目录

$markUnused boolean

如果应标记过时的译文

saveMessagesToPOT() 受保护 方法 (自版本 2.0.6 可用)

将消息写入 POT 文件。

protected void saveMessagesToPOT($messages, $dirName, $catalog)
$messages array
$dirName string

要写入的目录的名称

$catalog string

消息目录

tokensEqual() 受保护 方法 (自版本 2.0.1 可用)

查找两个 PHP 标记是否相等。

protected boolean tokensEqual($a, $b)
$a array|string
$b array|string