Lines 0.00% 0 / 12
Functions and Methods 0.00% 0 / 2
Classes and Traits 0.00% 0 / 1
Name Lines Functions and Methods CRAP Classes and Traits
ContainerException 0.00% 0 / 12 0.00% 0 / 2 12 0.00% 0 / 1
 appOptionUnknown 0.00% 0 / 5 0.00% 0 / 1 6
 appOptionAmbiguous 0.00% 0 / 7 0.00% 0 / 1 2
1<?php
2
3declare(strict_types=1);
4
5namespace Stewart\Runtime\Exception;
6
7use Stewart\Contracts\App\AppId;
8use Stewart\Contracts\Exception\StewartException;
9
10/** @extends StewartException<ContainerError> */
11final class ContainerException extends StewartException
12{
13    public static function appOptionUnknown(AppId $appId, string $option, string $class, ?string $suggestion): self
14    {
15        return self::createForReasonWithAppendedText(
16            ContainerError::AppOptionUnknown,
17            ['appId' => $appId->value, 'option' => $option, 'class' => $class, 'suggestion' => $suggestion],
18            $suggestion === null ? null : \sprintf('Did you mean "%s"?', $suggestion),
19        );
20    }
21
22    /** @param list<string> $parameters */
23    public static function appOptionAmbiguous(AppId $appId, string $option, string $class, array $parameters): self
24    {
25        return self::createForReason(
26            ContainerError::AppOptionAmbiguous,
27            appId: $appId->value,
28            option: $option,
29            class: $class,
30            parameters: implode(', ', array_map(static fn(string $name): string => '$' . $name, $parameters)),
31        );
32    }
33}