Skip to content

Commit

Permalink
Annotate IContainer so Psalm knows what resove and query return
Browse files Browse the repository at this point in the history
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
  • Loading branch information
ChristophWurst authored and MorrisJobke committed Oct 14, 2020
1 parent a41b273 commit f9f20b6
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions lib/public/IContainer.php
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,14 @@
interface IContainer extends ContainerInterface {

/**
* @template T
*
* If a parameter is not registered in the container try to instantiate it
* by using reflection to find out how to build the class
* @param string $name the class name to resolve
* @psalm-param string|class-string<T> $name
* @return \stdClass
* @psalm-return ($name is class-string ? T : mixed)
* @since 8.2.0
* @deprecated 20.0.0 use \Psr\Container\ContainerInterface::get
* @throws ContainerExceptionInterface if the class could not be found or instantiated
Expand All @@ -66,9 +70,13 @@ public function resolve($name);
/**
* Look up a service for a given name in the container.
*
* @template T
*
* @param string $name
* @psalm-param string|class-string<T> $name
* @param bool $autoload Should we try to autoload the service. If we are trying to resolve built in types this makes no sense for example
* @return mixed
* @psalm-return ($name is class-string ? T : mixed)
* @throws ContainerExceptionInterface if the query could not be resolved
* @throws QueryException if the query could not be resolved
* @since 6.0.0
Expand Down

0 comments on commit f9f20b6

Please sign in to comment.