# Консольные приложения Доступ к консольным программам происходит с помощью скрипта `yii` в корне проекта. По умолчанию без параметров он рассказывает о следующих своих возможностях: ```bash asmer@helium ~/public_html/yii/basic $ ./yii This is Yii version 2.0.10. The following commands are available: - asset Allows you to combine and compress your JavaScript and CSS files. asset/compress (default) Combines and compresses the asset files according to the given configuration. asset/template Creates template of configuration file for [[actionCompress]]. - cache Allows you to flush cache. cache/flush Flushes given cache components. cache/flush-all Flushes all caches registered in the system. cache/flush-schema Clears DB schema cache for a given connection component. cache/index (default) Lists the caches that can be flushed. - fixture Manages fixture data loading and unloading. fixture/load (default) Loads the specified fixture data. fixture/unload Unloads the specified fixtures. - gii This is the command line version of Gii - a code generator. gii/controller Controller Generator gii/crud CRUD Generator gii/extension Extension Generator gii/form Form Generator gii/index (default) gii/model Model Generator gii/module Module Generator - hello This command echoes the first argument that you have entered. hello/index (default) This command echoes what you have entered as the message. - help Provides help information about console commands. help/index (default) Displays available commands or the detailed information - message Extracts messages to be translated from source files. message/config Creates a configuration file for the "extract" command using command line options specified message/config-template Creates a configuration file template for the "extract" command. message/extract (default) Extracts messages to be translated from source code. - migrate Manages application migrations. migrate/create Creates a new migration. migrate/down Downgrades the application by reverting old migrations. migrate/history Displays the migration history. migrate/mark Modifies the migration history to the specified version. migrate/new Displays the un-applied new migrations. migrate/redo Redoes the last few migrations. migrate/to Upgrades or downgrades till the specified version. migrate/up (default) Upgrades the application by applying new migrations. - serve Runs PHP built-in web server serve/index (default) Runs PHP built-in web server To see the help of each command, enter: yii help ``` ## Консольный контроллер Структура консольных приложений схожа с обычными контроллерами-экшОнами. Для создания своего контроллера нужно: - создать файл с именем класса контроллера в папке `commands` - в файле написать свой контроллер, унаследованный от `\yii\console\Controller` - по анологии описать те или иные экшОны. ```php ';print_r( func_get_args() );echo ''; return 0; //Exit Code } } ``` Тестовый контроллер выше работает следующим образом ```bash asmer@helium ~/public_html/yii/basic $ ./yii console/index lalal bbb ccc dddd
Array
(
    [0] => lalal
    [1] => bbb
    [2] => ccc
    [3] => dddd
)
``` ## Код выхода В шелле каждая команда возвращает **Exit Code**, на подобие кода возврата функций в **ЯП**. Однако 0 обычно означает безошибочное выполнение, другое число - ошибку. Можно сказать что `true` и `false` работают в шелле наоборот. Этот код передается с помощью `return` в вашем экшОне.