1. Go to this page and download the library: Download fesor/request-objects 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/ */
fesor / request-objects example snippets
use Fesor\RequestObject\RequestObject;
use Symfony\Component\Validator\Constraints as Assert;
class RegisterUserRequest extends RequestObject
{
public function rules()
{
return new Assert\Collection([
'email' => new Assert\Email(['message' => 'Please fill in valid email']),
'password' => new Assert\Length(['min' => 4, 'minMessage' => 'Password is to short']),
'first_name' => new Assert\NotNull(['message' => 'Please provide your first name']),
'last_name' => new Assert\NotNull(['message' => 'Please provide your last name'])
]);
}
}
public function registerUserAction(RegisterUserRequest $request)
{
// Do Stuff! Data is already validated!
}
// returns value from payload by specific key or default value if provided
$request->get('key', 'default value');
// returns whole payload
$request->all();
class CustomizedPayloadRequest extends RequestObject implements PayloadResolver
{
public function resolvePayload(Request $request)
{
$query = $request->query->all();
// turn string to array of relations
if (isset($query['
public function validationGroup(array $payload)
{
return isset($payload['context']) ?
['Default', $payload['context']] : null;
}
public function registerUserAction(RegisterUserRequest $request, ConstraintViolationList $errors)
{
if (0 !== count($errors)) {
// handle errors
}
}
public function getErrorResponse(ConstraintViolationListInterface $errors)
{
return new JsonResponse([
'message' => 'Please check your data',
'errors' => array_map(function (ConstraintViolation $violation) {
return [
'path' => $violation->getPropertyPath(),
'message' => $violation->getMessage()
];
}, iterator_to_array($errors))
], 400);
}
public function registerBundles()
{
$bundles = [
// ...
new \Fesor\RequestObject\Bundle\RequestObjectBundle(),
];
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.