1. Go to this page and download the library: Download eps90/req2cmd-bundle 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/ */
eps90 / req2cmd-bundle example snippets
// ...
class AppKernel extends Kernel
{
public function registerBundles(): array
{
$bundles = [
// ...
new Eps\Req2CmdBundle\Req2CmdBundle(),
// ...
];
// ...
}
// ...
}
// ...
final class PostController
{
// ...
public function addPostAction(Request $request): Response
{
// ...
$command = $request->attributes->get('_command');
// ...
}
}
use Eps\Req2CmdBundle\Command\DeserializableCommandInterface;
final class AddPost implements DeserializableCommandInterface
{
// ...
public function __construct(PostId $postId, PostContents $contents)
{
$this->postId = $postId;
$this->contents = $contents;
}
// ... getters
public static function fromArray(array $commandProps): self
{
return new self(
new PostId($commandProps['id']),
new PostContents(
$commandProps['title'],
$commandProps['author'],
$commandProps['contents']
)
);
}
}
final class UpdatePostTitle
{
private $postId;
private $postTitle;
public function __construct(int $postId, string $postTitle)
{
$this->postId = $postId;
$this->postTitle = $postTitle;
}
// ...
}
use Eps\Req2CmdBundle\Command\DeserializableCommandInterface;
final class UpdatePostTitle implements DeserializableCommandInterface
{
// ...
public static function fromArray(array $commandProps): self
{
return new self($commandProps['post_id'], $commandProps['title']);
}
}
use Eps\Req2CmdBundle\CommandExtractor\CommandExtractorInterface;
// ...
class DummyExtractor implements CommandExtractorInterface
{
public function extractorFromRequest(Request $request, string $commandName)
{
// get the requested format from the Request object
if ($request->getRequestFormat() === 'json') {
// decode contents
$contents = json_decode($request->getContents(), true);
}
// and return command instance
return new $commandName($contents);
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.