From 36f0e45e7ec6436bb3f2957576ce48214de21358 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mr=C2=B7x?= Date: Fri, 13 Aug 2021 17:06:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- System/Abstracts/BaseApplication.php | 21 +++++++++++++++++---- System/Di/Container.php | 10 ++++++++++ 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/System/Abstracts/BaseApplication.php b/System/Abstracts/BaseApplication.php index c204b123..372e68c3 100644 --- a/System/Abstracts/BaseApplication.php +++ b/System/Abstracts/BaseApplication.php @@ -75,11 +75,24 @@ abstract class BaseApplication extends Component $this->parseEvents($config); $this->initErrorHandler(); $this->enableEnvConfig(); + $this->mapping($config['mapping']); parent::__construct(); } + /** + * @param array $mapping + */ + public function mapping(array $mapping) + { + $di = Kiri::getDi(); + foreach ($mapping as $interface => $class) { + $di->mapping($interface, $class); + } + } + + /** * @return array */ @@ -223,18 +236,18 @@ abstract class BaseApplication extends Component { $eventProvider = di(EventProvider::class); if ($value instanceof \Closure || is_object($value)) { - $eventProvider->on($key, $value,0); + $eventProvider->on($key, $value, 0); return; } if (is_array($value)) { if (is_object($value[0]) && !($value[0] instanceof \Closure)) { - $eventProvider->on($key, $value,0); + $eventProvider->on($key, $value, 0); return; } if (is_string($value[0])) { $value[0] = Kiri::createObject($value[0]); - $eventProvider->on($key, $value,0); + $eventProvider->on($key, $value, 0); return; } @@ -242,7 +255,7 @@ abstract class BaseApplication extends Component if (!is_callable($item, true)) { throw new InitException("Class does not hav callback."); } - $eventProvider->on($key, $item,0); + $eventProvider->on($key, $item, 0); } } diff --git a/System/Di/Container.php b/System/Di/Container.php index 297d01bf..6db39df6 100644 --- a/System/Di/Container.php +++ b/System/Di/Container.php @@ -94,6 +94,16 @@ class Container extends BaseObject } + /** + * @param $interface + * @param $class + */ + public function mapping($interface, $class) + { + $this->_interfaces[$interface] = $class; + } + + /** * @param $class * @return bool