52 lines
1.2 KiB
PHP
52 lines
1.2 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace Http\Discovery\Exception;
|
||
|
|
||
|
use Http\Discovery\Exception;
|
||
|
|
||
|
/**
|
||
|
* Thrown when all discovery strategies fails to find a resource.
|
||
|
*
|
||
|
* @author Tobias Nyholm <tobias.nyholm@gmail.com>
|
||
|
*/
|
||
|
final class DiscoveryFailedException extends \Exception implements Exception
|
||
|
{
|
||
|
/**
|
||
|
* @var \Exception[]
|
||
|
*/
|
||
|
private $exceptions;
|
||
|
|
||
|
/**
|
||
|
* @param string $message
|
||
|
* @param \Exception[] $exceptions
|
||
|
*/
|
||
|
public function __construct($message, array $exceptions = [])
|
||
|
{
|
||
|
$this->exceptions = $exceptions;
|
||
|
|
||
|
parent::__construct($message);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param \Exception[] $exceptions
|
||
|
*/
|
||
|
public static function create($exceptions)
|
||
|
{
|
||
|
$message = 'Could not find resource using any discovery strategy. Find more information at http://docs.php-http.org/en/latest/discovery.html#common-errors';
|
||
|
foreach ($exceptions as $e) {
|
||
|
$message .= "\n - ".$e->getMessage();
|
||
|
}
|
||
|
$message .= "\n\n";
|
||
|
|
||
|
return new self($message, $exceptions);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @return \Exception[]
|
||
|
*/
|
||
|
public function getExceptions()
|
||
|
{
|
||
|
return $this->exceptions;
|
||
|
}
|
||
|
}
|