aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--build/stubs/psr_container.php52
-rw-r--r--psalm-ocp.xml1
-rw-r--r--psalm.xml1
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>