Friendly Exception
An exception interface that provides a friendly name and a possible solution. Error handlers may consider the interface to render additional information right at the error screen.
Implementing friendly exception
To make exception friendly require this package and implement FriendlyExceptionInterface:
<?php
declare(strict_types=1);
use Yiisoft\FriendlyException\FriendlyExceptionInterface;
class RequestTimeoutException extends \RuntimeException implements FriendlyExceptionInterface
{
public function getName(): string
{
return 'Request timed out';
}
public function getSolution(): ?string
{
return <<<'SOLUTION'
Likely it is a result of resource request is not responding in a timely fashion. Try increasing timeout.
SOLUTION;
}
}When returning solution consider the following best practices:
- Make solution description as short as possible.
- Do not use HTML tags.
- A simple markdown is OK but its support is up to implementation.
Handling friendly exception
To make your exception handler render friendly exceptions:
use Yiisoft\FriendlyException\FriendlyExceptionInterface;
class ThrowableHandler
{
public function handle(\Throwable $t)
{
if ($t instanceof FriendlyExceptionInterface) {
// additional handling
}
// regular handling
}
}
Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.


