'service_manager' => [
'aliases' => [
'Laminas\ApiTools\ApiProblem\ApiProblemListener' => 'Laminas\ApiTools\ApiProblem\Listener\ApiProblemListener',
'Laminas\ApiTools\ApiProblem\RenderErrorListener' => 'Laminas\ApiTools\ApiProblem\Listener\RenderErrorListener',
'Laminas\ApiTools\ApiProblem\ApiProblemRenderer' => 'Laminas\ApiTools\ApiProblem\View\ApiProblemRenderer',
'Laminas\ApiTools\ApiProblem\ApiProblemStrategy' => 'Laminas\ApiTools\ApiProblem\View\ApiProblemStrategy',
],
'factories' => [
'Laminas\ApiTools\ApiProblem\Listener\ApiProblemListener' => 'Laminas\ApiTools\ApiProblem\Factory\ApiProblemListenerFactory',
'Laminas\ApiTools\ApiProblem\Listener\RenderErrorListener' => 'Laminas\ApiTools\ApiProblem\Factory\RenderErrorListenerFactory',
'Laminas\ApiTools\ApiProblem\Listener\SendApiProblemResponseListener' => 'Laminas\ApiTools\ApiProblem\Factory\SendApiProblemResponseListenerFactory',
'Laminas\ApiTools\ApiProblem\View\ApiProblemRenderer' => 'Laminas\ApiTools\ApiProblem\Factory\ApiProblemRendererFactory',
'Laminas\ApiTools\ApiProblem\View\ApiProblemStrategy' => 'Laminas\ApiTools\ApiProblem\Factory\ApiProblemStrategyFactory',
],
],
'view_manager' => [
// Enable this in your application configuration in order to get full
// exception stack traces in your API-Problem responses.
'display_exceptions' => false,
],
class ApiProblem
{
public function __construct(
$status,
$detail,
$type = null,
$title = null,
array $additional = []
) {
/* ... */
}
}
new ApiProblem(404, 'Entity not found');
// or
new ApiProblem(424, $exceptionInstance);
use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\ApiTools\ApiProblem\ApiProblem;
use Laminas\ApiTools\ApiProblem\ApiProblemResponse;
class MyController extends AbstractActionController
{
/* ... */
public function fetch($id)
{
$entity = $this->model->fetch($id);
if (! $entity) {
return new ApiProblemResponse(new ApiProblem(404, 'Entity not found'));
}
return $entity;
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.