1. Go to this page and download the library: Download phpro/api-problem 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/ */
phpro / api-problem example snippets
use Phpro\ApiProblem\Exception;
throw new ApiProblemException(
new HttpApiProblem(418, ['detail' => 'Did you know 4,000 people are injured by teapots every year?!'])
);
use Phpro\ApiProblem\Http\ExceptionApiProblem;
new ExceptionApiProblem(new \Exception('message', 500));
use Phpro\ApiProblem\Http\HttpApiProblem;
new HttpApiProblem(404, ['detail' => 'The book could not be found.']);
use Phpro\ApiProblem\Http\ValidationApiProblem;
use Symfony\Component\Validator\ConstraintViolation;
use Symfony\Component\Validator\ConstraintViolationList;
new ValidationApiProblem(new ConstraintViolationList([
new ConstraintViolation('Invalid email', '', [], '', 'email', '', null, '8615ecd9-afcb-479a-9c78-8bcfe260cf2a'),
]));
use Phpro\ApiProblem\Http\BadRequestProblem;
new BadRequestProblem('Bad request. Bad!.');
use Phpro\ApiProblem\Http\UnauthorizedProblem;
new UnauthorizedProblem('You are not authorized to access X.');
use Phpro\ApiProblem\Http\ForbiddenProblem;
new ForbiddenProblem('Not authorized to access gold.');
use Phpro\ApiProblem\Http\NotFoundProblem;
new NotFoundProblem('The book with ID 20 could not be found.');
use Phpro\ApiProblem\Http\MethodNotAllowedProblem;
new MethodNotAllowedProblem('Only POST and GET allowed.');
use Phpro\ApiProblem\Http\ConflictProblem;
new ConflictProblem('Duplicated key for book with ID 20.');
use Phpro\ApiProblem\Http\PreconditionFailedProblem;
new PreconditionFailedProblem('Incorrect entity tag provided.');
use Phpro\ApiProblem\Http\UnsupportedMediaTypeProblem;
new UnsupportedMediaTypeProblem('Please provide valid JSON.');
use Phpro\ApiProblem\Http\IAmATeapotProblem;
new IAmATeapotProblem('More tea please.');
use Phpro\ApiProblem\Http\UnprocessableEntityProblem;
new UnprocessableEntityProblem('Unable to process the contained instructions.');
use Phpro\ApiProblem\Http\LockedProblem;
new LockedProblem('This door is locked.');
use Phpro\ApiProblem\Http\PreconditionRequiredProblem;
new PreconditionRequiredProblem('If-match header is
use Phpro\ApiProblem\ApiProblemInterface;
class MyProblem implements ApiProblemInterface
{
public function toArray(): array
{
return [
'type' => 'about:blank',
'status' => '99',
'title' => 'Got 99 problems but a glitch aint one!',
];
}
}
use Phpro\ApiProblem\Http\HttpApiProblem;
class MyProblem extends HttpApiProblem
{
public function __construct(string $details)
{
parent::__construct(500, ['details' => $details]);
}
}
use Phpro\ApiProblem\DebuggableApiProblemInterface;
class MyProblem implements DebuggableApiProblemInterface
{
public function toArray(): array
{
return [
'type' => 'about:blank',
'status' => '99',
'title' => 'Got 99 problems but a glitch ain\'t one!',
];
}
public function toDebuggableArray(): array
{
return array_merge(
$this->toArray(),
[
'situation' => 'If you are having code problems, I feel bad for you son',
]
);
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.