From 6f4373cda44c87d4fc094984d95f44c5b98eaa8c Mon Sep 17 00:00:00 2001 From: "maxime.steinhausser" Date: Tue, 11 Aug 2015 15:24:36 +0200 Subject: [PATCH] Fix ApiDocExtractor to accept callable classes as controllers --- Extractor/ApiDocExtractor.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Extractor/ApiDocExtractor.php b/Extractor/ApiDocExtractor.php index b2e9f01..5371819 100644 --- a/Extractor/ApiDocExtractor.php +++ b/Extractor/ApiDocExtractor.php @@ -211,14 +211,20 @@ class ApiDocExtractor if (preg_match('#(.+)::([\w]+)#', $controller, $matches)) { $class = $matches[1]; $method = $matches[2]; - } elseif (preg_match('#(.+):([\w]+)#', $controller, $matches)) { - $controller = $matches[1]; - $method = $matches[2]; + } else { + if (preg_match('#(.+):([\w]+)#', $controller, $matches)) { + $controller = $matches[1]; + $method = $matches[2]; + } + if ($this->container->has($controller)) { $this->container->enterScope('request'); $this->container->set('request', new Request(), 'request'); $class = ClassUtils::getRealClass(get_class($this->container->get($controller))); $this->container->leaveScope('request'); + if (!isset($method) && method_exists($class, '__invoke')) { + $method = '__invoke'; + } } }