PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / trunk
Booking for Appointments and Events Calendar – Amelia vtrunk
2.4.4 2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / vendor / php-http / discovery / src / Exception / NoCandidateFoundException.php
ameliabooking / vendor / php-http / discovery / src / Exception Last commit date
ClassInstantiationFailedException.php 3 years ago DiscoveryFailedException.php 3 years ago NoCandidateFoundException.php 3 years ago NotFoundException.php 3 years ago PuliUnavailableException.php 3 years ago StrategyUnavailableException.php 3 years ago
NoCandidateFoundException.php
49 lines
1 <?php
2
3 namespace AmeliaHttp\Discovery\Exception;
4
5 use AmeliaHttp\Discovery\Exception;
6
7 /**
8 * When we have used a strategy but no candidates provided by that strategy could be used.
9 *
10 * @author Tobias Nyholm <tobias.nyholm@gmail.com>
11 */
12 final class NoCandidateFoundException extends \Exception implements Exception
13 {
14 /**
15 * @param string $strategy
16 * @param array $candidates
17 */
18 public function __construct($strategy, array $candidates)
19 {
20 $classes = array_map(
21 function ($a) {
22 return $a['class'];
23 },
24 $candidates
25 );
26
27 $message = sprintf(
28 'No valid candidate found using strategy "%s". We tested the following candidates: %s.',
29 $strategy,
30 implode(', ', array_map([$this, 'stringify'], $classes))
31 );
32
33 parent::__construct($message);
34 }
35
36 private function stringify($mixed)
37 {
38 if (is_string($mixed)) {
39 return $mixed;
40 }
41
42 if (is_array($mixed) && 2 === count($mixed)) {
43 return sprintf('%s::%s', $this->stringify($mixed[0]), $mixed[1]);
44 }
45
46 return is_object($mixed) ? get_class($mixed) : gettype($mixed);
47 }
48 }
49