PHP code example of robotusers / cakephp-tactician
1. Go to this page and download the library: Download robotusers/cakephp-tactician 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/ */
robotusers / cakephp-tactician example snippets
use Cake\Controller\Controller;
use Robotusers\Commander\CommandBusAwareInterface;
use Robotusers\Tactician\Bus\CommandBusAwareTrait;
class OrdersController extends Controller implements CommandBusAwareInterface
{
use CommandBusAwareTrait;
public function makeOrder()
{
// ...
$command = new MakeOrderCommand($data);
$this->handleCommand($command);
// ...
// or using quick convention enabled command handling:
$this->handleCommand('MakeOrder', $data);
// ...
}
}
use App\Application;
use Cake\Console\CommandRunner;
use Cake\Console\CommandFactory;
use Tactician\Console\CommandFactory as TacticianCommandFactory;
$application = new Application(dirname(__DIR__) . '/config');
$cakeFactory = new CommandFactory(); // or any other custom factory (ie. CakePHP DI plugin DIC-compatible factory)
$factory = new TacticianCommandFactory($cakeFactory, $application);
$runner = new CommandRunner($application, 'cake', $factory);
exit($runner->run($argv));
use Cake\Http\BaseApplication;
use League\Tactician\CommandBus;
use Robotusers\Tactician\Core\BusApplicationInterface;
use Robotusers\Tactician\Core\BusMiddleware;
class Application extends BaseApplication implements BusApplicationInterface
{
public function commandBus()
{
$bus = new CommandBus([
// your middleware
]);
return $bus;
}
public function middleware($middleware)
{
// ...
$middleware->add(new BusMiddleware($this));
// ...
return $middleware;
}
}
use Robotusers\Tactician\Bus\Factory;
public function commandBus()
{
return Factory::createCommandBus([
// your middleware
Factory::createCommandHandlerMiddleware();
]);
}
// bootstrap.php
use Robotusers\Tactician\Event\QuickStart;
QuickStart::setUp($commandBus);
// bootstrap.php
use Robotusers\Tactician\Event\QuickStart;
QuickStart::setUp();
//CakePHP convention locator
$locator = new ConventionsLocator();
$extractor = new ClassNameExtractor();
$inflector = new HandleClassNameInflector();
$commandBus = new CommandBus(
[
new CommandHandlerMiddleware($extractor, $locator, $inflector)
]
);
//default connection
$connection = ConnectionManager::get('default');
$commandBus = new CommandBus(
[
//CakePHP transaction middleware with a connection and a list of commands.
new TransactionMiddleware($connection, [
FooCommand::class,
'My/Plugin.Bar',
]),
$commandHandlerMiddleware
]
);
$middleware = new TransactionMiddleware($connection, true, [
FooCommand::class,
'My/Plugin.Bar',
]),
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.