PHP code example of fortrabbit / yii2-artisan-bridge
1. Go to this page and download the library: Download fortrabbit/yii2-artisan-bridge library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
fortrabbit / yii2-artisan-bridge example snippets
namespace you\PluginName;
use Craft;
use craft\base\Plugin as BasePlugin;
use fortrabbit\Yii2ArtisanBridge\ActionGroup;
use fortrabbit\Yii2ArtisanBridge\Bridge;
use you\PluginName\actions\ActionOne;
use you\PluginName\actions\ActionTwo;
/**
* Class Plugin
*/
class Plugin extends BasePlugin
{
/**
* Initialize Plugins
*/
public function init()
{
parent::init();
if (Craft::$app instanceof \yii\console\Application) {
$group = (new ActionGroup('group-name', 'What this group is about.'))
->setActions([
'action1' => ActionOne::class,
'action2' => ActionTwo::class,
])
->setDefaultAction('action1')
->setOptions([
'one' => 'option-one',
'two' => 'option-two',
'option-without-alias'
]);
Bridge::registerGroup($group);
}
}
}
namespace you\PluginName\actions;
use Craft;
use fortrabbit\Yii2ArtisanBridge\base\Action as BaseAction;
use yii\console\ExitCode;
class ActionOne extends BaseAction {
public $optionOne = 'default-value';
/**
* Ask some question
*
* @param string $name
* @return bool
*/
public function run($name) {
$this->title("Hello {$name}, 'option-one' is '{$this->optionOne}'");
$answer = $this->choice("What's your favorite animal?", ['Dog','Cat','Elephant']);
if ($answer === 'Elephant') {
$this->successBlock("'$answer' is correct.");
return ExitCode::OK;
} else {
$this->errorBlock("'$answer' is the wrong.");
return ExitCode::UNSPECIFIED_ERROR;
}
}
}
$name = $this->ask('What is your name?', $default = null)`
$name = $this->anticipate('What is your name?', ['Taylor', 'Fabien', 'Brad', 'Brandon']);
if ($this->confirm('Do you wish to continue?')) {
// continue
}
$this->info('Display this on the screen');
$this->error('Something went wrong!');
$items = range(1,10);
$bar = $this->output->createProgressBar(count($items));
// Custom format
$bar->setFormat('%message%' . PHP_EOL . '%bar% %percent:3s% %' . PHP_EOL . 'time: %elapsed:6s%/%estimated:-6s%' . PHP_EOL.PHP_EOL);
$bar->setBarCharacter('<info>'.$bar->getBarCharacter().'</info>');
$bar->setBarWidth(80);
foreach ($items as $i) {
sleep(1);
$bar->advance();
$bar->setMessage("My bar, some progress... $i");
}
$bar->finish();
// in your init()
\yii\base\Event::on(
Commands::class,
Commands::EVENT_BEFORE_ACTION,
function (ActionEvent $event) {
$style = new OutputFormatterStyle('white', 'cyan');
$event->action->output->getFormatter()->setStyle('ocean', $style);
}
);
$this->title('Title in <ocean>blue</ocean>');
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.