Class yii\console\controllers\MessageController
Inheritance | yii\console\controllers\MessageController » yii\console\Controller » yii\base\Controller » yii\base\Component » yii\base\BaseObject |
---|---|
Implements | yii\base\Configurable, yii\base\ViewContextInterface |
Available since version | 2.0 |
Source Code | https://github.com/yiisoft/yii2/blob/master/framework/console/controllers/MessageController.php |
Extracts messages to be translated from source files.
The extracted messages can be saved the following depending on format
setting in config file:
- PHP message source files.
- ".po" files.
- Database.
Usage:
- Create a configuration file using the 'message/config' command: yii message/config /path/to/myapp/messages/config.php
- Edit the created config file, adjusting it for your web application needs.
- Run the 'message/extract' command, using created config: yii message /path/to/myapp/messages/config.php
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
$action | yii\base\Action|null | The action that is currently being executed. | yii\base\Controller |
$behaviors | yii\base\Behavior[] | List of behaviors attached to this component. This property is read-only. | yii\base\Component |
$catalog | string | Name of the file that will be used for translations for "po" format. | yii\console\controllers\MessageController |
$color | boolean|null | Whether to enable ANSI color in the output. | yii\console\Controller |
$db | string | Connection component ID for "db" format. | yii\console\controllers\MessageController |
$defaultAction | string | Controller default action ID. | yii\console\controllers\MessageController |
$except | array | List of patterns that specify which files/directories should NOT be processed. | yii\console\controllers\MessageController |
$format | string | Generated file format. | yii\console\controllers\MessageController |
$help | boolean | Whether to display help information about current command. | yii\console\Controller |
$helpSummary | string | This property is read-only. | yii\console\Controller |
$id | string | The ID of this controller. | yii\base\Controller |
$ignoreCategories | array | Message categories to ignore. | yii\console\controllers\MessageController |
$interactive | boolean | Whether to run the command interactively. | yii\console\Controller |
$languages | array | Required, list of language codes that the extracted messages should be translated to. | 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 | Whether to mark messages that no longer appear in the source code. | yii\console\controllers\MessageController |
$messagePath | string | Required, root directory containing message translations. | yii\console\controllers\MessageController |
$messageTable | string | Custom name for translation message table for "db" format. | 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. This property is read-only. | yii\base\Controller |
$only | array | List of patterns that specify which files (not directories) should be processed. | yii\console\controllers\MessageController |
$overwrite | boolean | Whether the message file should be overwritten with the merged messages | yii\console\controllers\MessageController |
$passedOptionValues | array | The properties corresponding to the passed options. This property is read-only. | yii\console\Controller |
$passedOptions | array | The names of the options passed during execution. This property is read-only. | yii\console\Controller |
$phpDocBlock | string|null | DocBlock used for messages array in generated PHP file. | yii\console\controllers\MessageController |
$phpFileHeader | string | File header in generated PHP file with messages. | yii\console\controllers\MessageController |
$removeUnused | boolean | Whether to remove messages that no longer appear in the source code. | yii\console\controllers\MessageController |
$request | yii\console\Request | yii\console\Controller | |
$response | yii\console\Response | yii\console\Controller | |
$route | string | The route (module ID, controller ID and action ID) of the current request. This property is read-only. | yii\base\Controller |
$silentExitOnException | boolean|null | If true - script finish with ExitCode::OK in case of exception. |
yii\console\Controller |
$sort | boolean | Whether to sort messages by keys when merging new messages with the existing ones. | yii\console\controllers\MessageController |
$sourceMessageTable | string | Custom name for source message table for "db" format. | yii\console\controllers\MessageController |
$sourcePath | string | Required, root directory of all source files. | yii\console\controllers\MessageController |
$translator | string | The name of the function for translating messages. | yii\console\controllers\MessageController |
$uniqueId | string | The controller ID that is prefixed with the module ID (if any). This property is read-only. | 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 |
Protected Properties
Property | Type | Description | Defined By |
---|---|---|---|
$config | array | Config for messages extraction. | yii\console\controllers\MessageController |
Public Methods
Method | Description | Defined By |
---|---|---|
__call() | Calls the named method which is not a class method. | yii\base\BaseObject |
__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 an object property. | yii\base\BaseObject |
__isset() | Checks if a property is set, i.e. defined and not null. | yii\base\BaseObject |
__set() | Sets value of an object property. | yii\base\BaseObject |
__unset() | Sets an object property to null. | yii\base\BaseObject |
actionConfig() | Creates a configuration file for the "extract" command using command line options specified. | yii\console\controllers\MessageController |
actionConfigTemplate() | Creates a configuration file template for the "extract" command. | yii\console\controllers\MessageController |
actionExtract() | Extracts messages to be translated from source code. | 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() | Formats a string with ANSI codes. | 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\console\Controller |
behaviors() | Returns a list of behaviors that this component should behave as. | yii\base\Component |
bindActionParams() | Binds the parameters to the action. | yii\console\Controller |
canGetProperty() | Returns a value indicating whether a property can be read. | yii\base\BaseObject |
canSetProperty() | Returns a value indicating whether a property can be set. | yii\base\BaseObject |
className() | Returns the fully qualified name of this class. | yii\base\BaseObject |
confirm() | Asks user to confirm by typing y or 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() | Returns the help information for the anonymous arguments for the action. | yii\console\Controller |
getActionHelp() | Returns the detailed help information for the specified action. | yii\console\Controller |
getActionHelpSummary() | Returns a one-line short summary describing the specified action. | yii\console\Controller |
getActionOptionsHelp() | Returns the help information for the options for the action. | yii\console\Controller |
getBehavior() | Returns the named behavior object. | yii\base\Component |
getBehaviors() | Returns all behaviors attached to this component. | yii\base\Component |
getHelp() | Returns help information for this controller. | yii\console\Controller |
getHelpSummary() | Returns one-line short summary describing this controller. | yii\console\Controller |
getModules() | Returns all ancestor modules of this controller. | yii\base\Controller |
getOptionValues() | Returns properties corresponding to the options for the action id Child classes may override this method to specify possible properties. | yii\console\Controller |
getPassedOptionValues() | Returns the properties corresponding to the passed options. | yii\console\Controller |
getPassedOptions() | Returns the names of valid options passed during execution. | 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\BaseObject |
hasProperty() | Returns a value indicating whether a property is defined. | yii\base\BaseObject |
init() | Initializes the object. | yii\base\Controller |
isColorEnabled() | Returns a value indicating whether ANSI color is enabled. | 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() | Returns option alias names. | yii\console\controllers\MessageController |
options() | Returns the names of valid options for the action (id) An option requires the existence of a public member variable whose name is the option name. | yii\console\controllers\MessageController |
prompt() | Prompts the user for input and validates it. | 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() | Runs an action with the specified action ID and parameters. | yii\console\Controller |
select() | Gives the user an option to choose from. Giving '?' as an input will show a list of options to choose from and their explanations. | 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() | Prints a string to STDERR. | yii\console\Controller |
stdout() | Prints a string to STDOUT. | yii\console\Controller |
trigger() | Triggers an event. | yii\base\Component |
Protected Methods
Events
Event | Type | Description | Defined By |
---|---|---|---|
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 |
Constants
Constant | Value | Description | Defined By |
---|---|---|---|
EXIT_CODE_ERROR | 1 | Deprecated since 2.0.13. Use yii\console\ExitCode::UNSPECIFIED_ERROR instead. | yii\console\Controller |
EXIT_CODE_NORMAL | 0 | Deprecated since 2.0.13. Use yii\console\ExitCode::OK instead. | yii\console\Controller |
Property Details
Name of the file that will be used for translations for "po" format.
Connection component ID for "db" format.
Controller default action ID.
List of patterns that specify which files/directories should NOT be processed. If empty or not set, all files/directories will be processed. See helpers/FileHelper::findFiles() description for pattern matching rules. If a file/directory matches both a pattern in "only" and "except", it will NOT be processed.
Generated file format. Can be "php", "db", "po" or "pot".
Message categories to ignore. For example, 'yii', 'app*', 'widgets/menu', etc.
See also isCategoryIgnored().
Required, list of language codes that the extracted messages should be translated to. For example, ['zh-CN', 'de'].
Whether to mark messages that no longer appear in the source code. Defaults to true, which means each of these messages will be enclosed with a pair of '@@' marks.
Required, root directory containing message translations.
Custom name for translation message table for "db" format.
List of patterns that specify which files (not directories) should be processed. If empty or not set, all files will be processed. See helpers/FileHelper::findFiles() description for pattern matching rules. If a file/directory matches both a pattern in "only" and "except", it will NOT be processed.
Whether the message file should be overwritten with the merged messages
DocBlock used for messages array in generated PHP file. If null
, default DocBlock will be used.
This property is used only if $format is "php".
File header in generated PHP file with messages. This property is used only if $format is "php".
Whether to remove messages that no longer appear in the source code. Defaults to false, which means these messages will NOT be removed.
Whether to sort messages by keys when merging new messages with the existing ones. Defaults to false, which means the new (untranslated) messages will be separated from the old (translated) ones.
Custom name for source message table for "db" format.
Required, root directory of all source files.
The name of the function for translating messages. Defaults to 'Yii::t'. This is used as a mark to find the messages to be translated. You may use a string for single function name or an array for multiple function names.
Method Details
Creates a configuration file for the "extract" command using command line options specified.
The generated configuration file contains parameters required for source code messages extraction. You may use this configuration file with the "extract" command.
public integer actionConfig ( $filePath ) | ||
$filePath | string | Output file name or alias. |
return | integer | CLI exit code |
---|---|---|
throws | yii\console\Exception | on failure. |
Creates a configuration file template for the "extract" command.
The created configuration file contains detailed instructions on how to customize it to fit for your needs. After customization, you may use this configuration file with the "extract" command.
public integer actionConfigTemplate ( $filePath ) | ||
$filePath | string | Output file name or alias. |
return | integer | CLI exit code |
---|---|---|
throws | yii\console\Exception | on failure. |
Extracts messages to be translated from source code.
This command will search through source code files and extract messages that need to be translated in different languages.
public void actionExtract ( $configFile = null ) | ||
$configFile | string | The path or alias of the configuration file. You may use the "yii message/config" command to generate this file and then customize it for your needs. |
throws | yii\console\Exception | on failure. |
---|
Extracts messages from a file.
protected array extractMessages ( $fileName, $translator, $ignoreCategories = [] ) | ||
$fileName | string | Name of the file to extract messages from |
$translator | string | Name of the function used to translate messages |
$ignoreCategories | array | Message categories to ignore. This parameter is available since version 2.0.4. |
Extracts messages from a parsed PHP tokens list.
protected array extractMessagesFromTokens ( array $tokens, array $translatorTokens, array $ignoreCategories ) | ||
$tokens | array | Tokens to be processed. |
$translatorTokens | array | Translator tokens. |
$ignoreCategories | array | Message categories to ignore. |
return | array | Messages. |
---|
Finds out a line of the first non-char PHP token found.
protected integer|string getLine ( $tokens ) | ||
$tokens | array |
protected void initConfig ( $configFile ) | ||
$configFile | string | |
throws | yii\console\Exception | If configuration file does not exists. |
---|
The method checks, whether the $category is ignored according to $ignoreCategories array.
Examples:
myapp
- will be ignored onlymyapp
category;myapp*
- will be ignored by all categories beginning withmyapp
(myapp
,myapplication
,myapprove
,myapp/widgets
,myapp.widgets
, etc).
protected boolean isCategoryIgnored ( $category, array $ignoreCategories ) | ||
$category | string | Category that is checked |
$ignoreCategories | array | Message categories to ignore. |
Returns option alias names.
Child classes may override this method to specify alias options.
public array optionAliases ( ) | ||
return | array | The options alias names valid for the action where the keys is alias name for option and value is option name. |
---|
Returns the names of valid options for the action (id) An option requires the existence of a public member variable whose name is the option name.
Child classes may override this method to specify possible options.
Note that the values setting via options are not available until beforeAction() is being called.
public string[] options ( $actionID ) | ||
$actionID | string | The action id of the current request |
return | string[] | The names of the options valid for the action |
---|
Writes category messages into PHP file.
protected integer saveMessagesCategoryToPHP ( $messages, $fileName, $overwrite, $removeUnused, $sort, $category, $markUnused ) | ||
$messages | array | |
$fileName | string | Name of the file to write to |
$overwrite | boolean | If existing file should be overwritten without backup |
$removeUnused | boolean | If obsolete translations should be removed |
$sort | boolean | If translations should be sorted |
$category | string | Message category |
$markUnused | boolean | If obsolete translations should be marked |
return | integer | Exit code |
---|
Saves messages to database.
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 |
Writes messages into PHP files.
protected void saveMessagesToPHP ( $messages, $dirName, $overwrite, $removeUnused, $sort, $markUnused ) | ||
$messages | array | |
$dirName | string | Name of the directory to write to |
$overwrite | boolean | If existing file should be overwritten without backup |
$removeUnused | boolean | If obsolete translations should be removed |
$sort | boolean | If translations should be sorted |
$markUnused | boolean | If obsolete translations should be marked |
Writes messages into PO file.
protected void saveMessagesToPO ( $messages, $dirName, $overwrite, $removeUnused, $sort, $catalog, $markUnused ) | ||
$messages | array | |
$dirName | string | Name of the directory to write to |
$overwrite | boolean | If existing file should be overwritten without backup |
$removeUnused | boolean | If obsolete translations should be removed |
$sort | boolean | If translations should be sorted |
$catalog | string | Message catalog |
$markUnused | boolean | If obsolete translations should be marked |
Writes messages into POT file.
protected void saveMessagesToPOT ( $messages, $dirName, $catalog ) | ||
$messages | array | |
$dirName | string | Name of the directory to write to |
$catalog | string | Message catalog |
Finds out if two PHP tokens are equal.
protected boolean tokensEqual ( $a, $b ) | ||
$a | array|string | |
$b | array|string |