diff --git a/src/ZM/Container/Container.php b/src/ZM/Container/Container.php index af95aab7..d6c18433 100644 --- a/src/ZM/Container/Container.php +++ b/src/ZM/Container/Container.php @@ -13,12 +13,9 @@ class Container extends WorkerContainer */ protected $parent; - /** - * @param ContainerInterface $parent 父容器 - */ - public function __construct(ContainerInterface $parent) + public function __construct() { - $this->parent = $parent; + $this->parent = WorkerContainer::getInstance(); } /** @@ -46,10 +43,11 @@ class Container extends WorkerContainer /** * 获取一个绑定的实例 * + * @template T * @param string $abstract 类或接口名 * @param array $parameters 参数 * @throws EntryResolutionException - * @return mixed 实例 + * @return T 实例 */ public function make(string $abstract, array $parameters = []) { diff --git a/src/ZM/Container/ContainerInterface.php b/src/ZM/Container/ContainerInterface.php index 3bb170ce..53372b1e 100644 --- a/src/ZM/Container/ContainerInterface.php +++ b/src/ZM/Container/ContainerInterface.php @@ -91,9 +91,10 @@ interface ContainerInterface extends PsrContainerInterface /** * 获取一个绑定的实例 * + * @template T * @param string $abstract 类或接口名 * @param array $parameters 参数 - * @return mixed 实例 + * @return T 实例 */ public function make(string $abstract, array $parameters = []); diff --git a/src/ZM/Container/WorkerContainer.php b/src/ZM/Container/WorkerContainer.php index 4fcad19d..a5bd2ee2 100644 --- a/src/ZM/Container/WorkerContainer.php +++ b/src/ZM/Container/WorkerContainer.php @@ -210,10 +210,11 @@ class WorkerContainer implements ContainerInterface /** * 获取一个绑定的实例 * + * @template T * @param string $abstract 类或接口名 * @param array $parameters 参数 * @throws EntryResolutionException - * @return mixed 实例 + * @return T 实例 */ public function make(string $abstract, array $parameters = []) { diff --git a/src/ZM/global_functions.php b/src/ZM/global_functions.php index bfaca2da..13dd3c69 100644 --- a/src/ZM/global_functions.php +++ b/src/ZM/global_functions.php @@ -655,7 +655,9 @@ function container(): ContainerInterface /** * 解析类实例(使用容器) * - * @return mixed + * @template T + * @param string $abstract + * @return T */ function resolve(string $abstract, array $parameters = []) { @@ -665,8 +667,9 @@ function resolve(string $abstract, array $parameters = []) /** * 获取容器实例 * - * @param null|string $abstract 类或接口名,不传入则返回容器实例 - * @return ContainerInterface|mixed + * @template T + * @param null|string $abstract + * @return ContainerInterface|T */ function app(string $abstract = null, array $parameters = []) {