diff --git a/http-server/Route/Node.php b/http-server/Route/Node.php index ae61889f..8143a142 100644 --- a/http-server/Route/Node.php +++ b/http-server/Route/Node.php @@ -149,9 +149,9 @@ class Node extends Application } /** @var Annotation $annotation */ - $annotation = Snowflake::createObject(Annotation::class); - if (!empty($methods)) { - $this->_interceptors = $annotation->instance($reflect, $action); + $annotation = Snowflake::get()->annotation->http; + if (!empty($methods = $annotation->getAnnotation(Annotation::class))) { + $this->_interceptors = $annotation->instance($reflect, $action, $methods); } return [$reflect->newInstance(), $action]; } catch (Exception $exception) { diff --git a/system/Abstracts/BaseAnnotation.php b/system/Abstracts/BaseAnnotation.php index 49d95b0e..1abb23bf 100644 --- a/system/Abstracts/BaseAnnotation.php +++ b/system/Abstracts/BaseAnnotation.php @@ -50,14 +50,13 @@ abstract class BaseAnnotation extends Component /** * @param ReflectionClass $reflect * @param string $method - * @param array $rules + * @param array $annotations * @return array + * @throws ReflectionException * @throws Exception */ - public function instance($reflect, $method = '', $rules = []) + public function instance($reflect, $method = '', $annotations = []) { - $annotations = $this->getPrivates($reflect); - $classMethods = $reflect->getMethods(ReflectionMethod::IS_PUBLIC); if (!$reflect->isInstantiable()) { throw new Exception('Class ' . $reflect->getName() . ' cannot be instantiated.');