diff options
-rw-r--r-- | build/stubs/psr_container.php | 52 | ||||
-rw-r--r-- | psalm-ocp.xml | 1 | ||||
-rw-r--r-- | psalm.xml | 1 |
3 files changed, 54 insertions, 0 deletions
diff --git a/build/stubs/psr_container.php b/build/stubs/psr_container.php new file mode 100644 index 00000000000..a87584c6f3a --- /dev/null +++ b/build/stubs/psr_container.php @@ -0,0 +1,52 @@ +<?php + +declare(strict_types=1); + +namespace Psr\Container; + +use Throwable; + +/** + * Base interface representing a generic exception in a container. + */ +interface ContainerExceptionInterface extends Throwable +{ +} + +/** + * Describes the interface of a container that exposes methods to read its entries. + */ +interface ContainerInterface +{ + /** + * Finds an entry of the container by its identifier and returns it. + * + * @param string $id Identifier of the entry to look for. + * + * @throws NotFoundExceptionInterface No entry was found for **this** identifier. + * @throws ContainerExceptionInterface Error while retrieving the entry. + * + * @return mixed Entry. + */ + public function get(string $id); + + /** + * Returns true if the container can return an entry for the given identifier. + * Returns false otherwise. + * + * `has($id)` returning true does not mean that `get($id)` will not throw an exception. + * It does however mean that `get($id)` will not throw a `NotFoundExceptionInterface`. + * + * @param string $id Identifier of the entry to look for. + * + * @return bool + */ + public function has(string $id): bool; +} + +/** + * No entry was found in the container. + */ +interface NotFoundExceptionInterface extends ContainerExceptionInterface +{ +} diff --git a/psalm-ocp.xml b/psalm-ocp.xml index f117afc550f..76a42131512 100644 --- a/psalm-ocp.xml +++ b/psalm-ocp.xml @@ -20,6 +20,7 @@ <stubs> <file name="build/stubs/gd.php"/> <file name="build/stubs/ldap.php"/> + <file name="build/stubs/psr_container.php"/> </stubs> <extraFiles> <directory name="3rdparty"/> diff --git a/psalm.xml b/psalm.xml index 009c59c7857..7ddce05c549 100644 --- a/psalm.xml +++ b/psalm.xml @@ -77,6 +77,7 @@ <file name="build/stubs/ftp.php"/> <file name="build/stubs/pcntl.php"/> <file name="build/stubs/zip.php"/> + <file name="build/stubs/psr_container.php"/> <file name="3rdparty/sabre/uri/lib/functions.php" /> </stubs> <issueHandlers> |