diff --git a/kiri-engine/Di/Container.php b/kiri-engine/Di/Container.php index a6bcf547..f60d42ca 100644 --- a/kiri-engine/Di/Container.php +++ b/kiri-engine/Di/Container.php @@ -255,13 +255,10 @@ class Container extends BaseObject implements ContainerInterface return $this->_reflection[$class]; } $reflect = new ReflectionClass($class); - if ($reflect->isAbstract() || $reflect->isTrait()) { + if ($reflect->isAbstract() || $reflect->isTrait() || $reflect->isInterface()) { return $this->_reflection[$class] = $reflect; } $construct = NoteManager::resolveTarget($reflect); - if ($reflect->isInterface()) { - return $this->_reflection[$class] = $reflect; - } if (!empty($construct) && $construct->getNumberOfParameters() > 0) { $this->_constructs[$class] = $construct; } diff --git a/kiri-gii/GiiJsonRpc.php b/kiri-gii/GiiJsonRpc.php index 77122583..5086fb6d 100644 --- a/kiri-gii/GiiJsonRpc.php +++ b/kiri-gii/GiiJsonRpc.php @@ -25,12 +25,7 @@ class GiiJsonRpc extends GiiBase namespace Rpc; -use Annotation\Mapping; -use Annotation\Target; -use Rpc\Producers\\' . ucfirst($name) . 'RpcService; -#[Target] -#[Mapping(' . ucfirst($name) . 'RpcService::class)] interface ' . ucfirst($name) . 'RpcInterface { @@ -58,12 +53,14 @@ namespace Rpc\Producers; use Annotation\Target; +use Annotation\Mapping; use Rpc\\' . ucfirst($name) . 'RpcInterface; use Exception; use Kiri\Rpc\JsonRpcConsumers; #[Target] +#[Mapping(' . ucfirst($name) . 'RpcInterface::class)] class ' . ucfirst($name) . 'RpcService extends JsonRpcConsumers implements ' . ucfirst($name) . 'RpcInterface { diff --git a/kiri-note/Loader.php b/kiri-note/Loader.php index 25890ff0..8f7caaa5 100644 --- a/kiri-note/Loader.php +++ b/kiri-note/Loader.php @@ -152,7 +152,7 @@ class Loader extends BaseObject private function getReflect(DirectoryIterator $path, string $namespace): ?ReflectionClass { $class = $this->explodeFileName($path, $namespace); - if (!class_exists($class) && !interface_exists($class)) { + if (!class_exists($class)) { return null; } return Kiri::getDi()->getReflect($class); diff --git a/kiri-note/Mapping.php b/kiri-note/Mapping.php index ccfdc77a..1f61422f 100644 --- a/kiri-note/Mapping.php +++ b/kiri-note/Mapping.php @@ -23,7 +23,7 @@ use Kiri\Kiri; */ public function execute(mixed $class, mixed $method = ''): mixed { - Kiri::getDi()->mapping($class, $this->class); + Kiri::getDi()->mapping($this->class, $class); return parent::execute($class, $method); }