diff --git a/Zh-README.md b/Zh-README.md index 3726522..ffd3b8f 100644 --- a/Zh-README.md +++ b/Zh-README.md @@ -18,7 +18,7 @@ composer require iidestiny/dependency-injection -vvv ## 使用 -使用辅助方法「推荐」 +使用辅助方法 ```php // 注册你的自定义类 @@ -31,14 +31,6 @@ composer require iidestiny/dependency-injection -vvv di_register(Tools::class)->foo($bar) ``` -原本方法 - -```php -use Iidestiny\DependencyInjection\App; - -App::register(Tools::class) -``` - ## 实例 例如有时候我们自定义的 Service 服务层可能也需要依赖注入其他工具类,但是我们控制器中已经依赖注入了 Service,调用 Service 中方法的时候就不能轻易的注入其他工具类,使用这个扩展包可以轻易解决这个问题,看下面例子。 diff --git a/src/App.php b/src/App.php index 443aa3a..abe1a0b 100644 --- a/src/App.php +++ b/src/App.php @@ -18,7 +18,7 @@ class App * * @var */ - protected static $instance; + protected $instance; /** * Instance registered @@ -27,15 +27,15 @@ class App * * @return string */ - public static function register($instance) + public function register($instance) { if (!is_object($instance)) { - self::$instance = new $instance(); + $this->instance = new $instance(); } else { - self::$instance = $instance; + $this->instance = $instance; } - return new self(); + return $this; } /** @@ -52,8 +52,8 @@ public static function register($instance) */ public function __call($method, $parameters) { - if (!method_exists(self::$instance, $method)) { - $instance = get_class(self::$instance); + if (!method_exists($this->instance, $method)) { + $instance = get_class($this->instance); throw new InvalidArgumentException("Instance [{$instance}] does not exist for [{$method}] method"); } @@ -72,7 +72,7 @@ public function __call($method, $parameters) */ public function make($method, ...$parameters) { - $reflector = new ReflectionMethod(self::$instance, $method); + $reflector = new ReflectionMethod($this->instance, $method); foreach ($reflector->getParameters() as $key => $parameter) { @@ -91,6 +91,6 @@ public function make($method, ...$parameters) } } - return call_user_func_array([self::$instance, $method], $parameters); + return call_user_func_array([$this->instance, $method], $parameters); } } \ No newline at end of file diff --git a/src/helpers.php b/src/helpers.php index bcddfbb..d6ae69f 100644 --- a/src/helpers.php +++ b/src/helpers.php @@ -10,6 +10,6 @@ */ function di_register($instance) { - return \Iidestiny\DependencyInjection\App::register($instance); + return (new \Iidestiny\DependencyInjection\App())->register($instance); } } \ No newline at end of file