Browse Source

commands alpha

Ivan Asmer 8 years ago
parent
commit
8b98c96d39
1 changed files with 106 additions and 0 deletions
  1. 106 0
      console.md

+ 106 - 0
console.md

@@ -0,0 +1,106 @@
+# Консольные приложения
+
+Доступ к консольным программам происходит с помощью скрипта `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 <command-name>
+```
+
+## Консольный контроллер
+
+Структура консольных приложений схожа с обычными контроллерами-экшОнами. Для создания своего контроллера нужно:
+- создать файл с именем класса контроллера в папке `commands`
+- в файле написать свой контроллер, унаследованный от `\yii\console\Controller`
+- по анологии описать те или иные экшОны.
+
+```php
+<?php
+namespace app\commands;
+
+
+class ConsoleController extends \yii\console\Controller
+{
+    public function actionIndex() { 
+        echo '<pre>';print_r( func_get_args() );echo '</pre>';
+        return 0; //Exit Code
+    }
+}
+```
+
+Тестовый контроллер выше работает следующим образом
+
+```bash
+asmer@helium ~/public_html/yii/basic $ ./yii console/index lalal bbb ccc dddd
+<pre>Array
+(
+    [0] => lalal
+    [1] => bbb
+    [2] => ccc
+    [3] => dddd
+)
+</pre>
+```
+
+## Код выхода
+
+В шелле каждая команда возвращает **Exit Code**, на подобие кода возврата функций в **ЯП**. Однако 0 обычно означает безошибочное выполнение, другое число - ошибку. Можно сказать что `true` и `false` работают в шелле наоборот. Этот код передается с помощью
+`return` в вашем экшОне.
+