В yii2 реализована очень удобная возможность разделение среды работы на консоль и среду которая обрабатывается через запрос в браузере.
Для этого в yii2 есть специальный раздел который так и называется console находящийся в папке /console/. По файловой структуре раздел ни чем не отличается от frontend или backend. На самом деле их можно наплодить любое количество, для удобства developer(а).
По реализации работы console ни чем не отличается от других разделов, ну только запускается она на прямую с консоли в корне фреймворка командой
root@kostiahome:/var/www/wap/www# ./yii This is Yii version 2.0.3. The following commands are available: - asset Allows you to combine and compress your JavaScript and CSS files. - cache Allows you to flush cache. - fixture Manages fixture data loading and unloading. - getlib - gii This is the command line version of Gii - a code generator. - help Provides help information about console commands. - message Extracts messages to be translated from source files. - migrate Manages application migrations. To see the help of each command, enter: yii help <command-name>
Для реализации определённого контроллера необходимо его создать файл в папке controllers
Я для примера создал файл GetlibController.php с содержанием
<?php namespace console\controllers; class GetlibController extends \yii\console\Controller { public function actionIndex() { echo "Index \n"; } public function actionTest() { echo "Test\n"; } }
Теперь можно вызывать метод контролёра yii2 из консоли по примеру
root@kostiahome:/var/www/wap/www# ls -alh console/controllers total 12K drwxrwxrwx 2 root root 4,0K мая 10 12:31 . drwxrwxrwx 7 root root 4,0K марта 1 09:22 .. -rw-rw-r-- 1 kostia kostia 239 мая 10 13:06 GetlibController.php -rwxrwxrwx 1 root root 0 марта 1 09:22 .gitkeep root@kostiahome:/var/www/wap/www# ./yii getlib/test Test root@kostiahome:/var/www/wap/www#