PHP code example of gchernikov / request-resolver-bundle
1. Go to this page and download the library: Download gchernikov/request-resolver-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/ */
gchernikov / request-resolver-bundle example snippets
#[AsResolvableRequest]
class GetAllOrderRequest
{
#[Date]
public ?string $dateFrom = null;
#[Date]
#[GreaterThanOrEqual(propertyPath: 'dateFrom')]
public ?string $dateTo = null;
}
#[Route(
path: '/order',
name: 'order:get_all',
methods: [Request::METHOD_GET],
)]
#[OA\Tag('Order')]
#[OA\Get(
operationId: 'order:get_all',
description: 'List of all user\'s orders with filtering',
summary: 'Orders history',
parameters: [
new OA\Parameter(
name: 'dateFrom',
description: 'Period date from',
in: 'query',
schema: new OA\Schema(type: 'date', nullable: true),
),
new OA\Parameter(
name: 'dateTo',
description: 'Period date to',
in: 'query',
schema: new OA\Schema(type: 'date', nullable: true),
)
],
responses: [
new App\Response\Ok(type: GetAllOrderResponse::class),
],
)]
#[App\Response\ValidationError]
#[App\Response\UnexpectedError]
class GetAllOrderController extends AbstractController
{
public function __invoke(GetAllOrderRequest $request): Response
{
// Demo for showing request Dto
dump($request);
// Place some logic to handle your request in $this->operation
$result = ($this->operation)($request);
return $this->json($result);
}
}
#[AsResolvableRequest]
final class CreateOrderRequest
{
#[NotBlank]
#[GreaterThanOrEqual(1)]
public int $quantity;
#[NotBlank]
public int $productId
}
#[Route(
path: '/product/{productId}/order',
name: 'order:create',
methods: [Request::METHOD_POST],
)]
#[OA\Tag('Order')]
#[OA\Post(
operationId: 'order:create',
description: 'Create order for a certain product',
summary: 'Creates order',
requestBody: new RequestBody(
lable: false),
example: 123,
),
],
responses: [
new Created(type: CreateOrderResponse::class),
],
)]
class CreateOrderController extends AbstractController
{
public function __invoke(CreateOrderRequest $request): Response
{
// Demo for showing request Dto
dump($request);
// Place some logic to handle your request in $this->operation
$result = ($this->operation)($request);
return $this->json($result);
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.