1. Go to this page and download the library: Download decodelabs/commandment 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/ */
decodelabs / commandment example snippets
namespace MyThing\Action;
use DecodeLabs\Commandment\Action;
use DecodeLabs\Commandment\Argument;
use DecodeLabs\Commandment\Request;
use DecodeLabs\Terminus\Session;
#[Argument\Value(
name: 'input',
description: 'Input value',
)]
class MyAction implements Action
{
public function __construct(
protected Session $io
) {
}
public function execute(
Request $request
): bool {
$this->io->writeLine('Hello world!');
$this->io->writeLine('Input: '. $request->parameters->tryString('input'));
if($request->parameters->asBool('verbose')) {
$this->io->writeLine('Verbose output enabled');
for($potato = 0; $potato < $request->parameters->asInt('potatoes'); $potato++) {
$this->io->writeLine('Potato #'. ($potato + 1));
}
}
return true;
}
}
use DecodeLabs\Commandment\Dispatcher;
$dispatcher = new Dispatcher();
$request = $dispatcher->newRequest(
command: 'my-action',
arguments: [
'this is my input',
'-v',
'--potatoes=3'
],
attributes: [
'arbitrary' => 'data'
],
server: [
'override' => '$_SERVER'
]
);
$dispatcher->dispatch($request);
use DecodeLabs\Commandment\Dispatcher;
use MyThing\PotatoPeeler;
use MyThing\PotatoMasher;
$dispatcher = new Dispatcher();
$dispatcher->slingshot->addType(new PotatoPeeler());
$request = $dispatcher->newRequest('my-action', ['input ...']);
$request->slingshot->addType(new PotatoMasher());
$request->slingshot->addParameter([
'arbitrary' => 'data'
]);
$dispatcher->dispatch($request);
namespace MyThing\Action;
use DecodeLabs\Commandment\Action;
use DecodeLabs\Commandment\Request;
use DecodeLabs\Terminus\Session;
use MyThing\PotatoPeeler;
use MyThing\PotatoMasher;
class MyAction implements Action
{
public function __construct(
protected Session $io,
protected PotatoPeeler $peeler,
protected PotatoMasher $masher,
protected string $arbitrary
) {
}
public function execute(
Request $request
): bool {
// Do the thing
return true;
}
}
use DecodeLabs\Commandment\Middleware;
class MyMiddleware implements Middleware
{
public function handle(
Request $request,
): Request {
// Do something with the request
$request = $request->rewrite(
command: 'redirected-action',
arguments: [
'new-argument'
],
);
return $request;
}
}
use DecodeLabs\Commandment\Dispatcher;
use MyThing\Middleware\MyMiddleware;
$dispatcher = new Dispatcher();
$dispatcher->addMiddleware(new MyMiddleware());
$request = $dispatcher->newRequest('my-action', ['input ...']);
$dispatcher->dispatch($request);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.