From 8d7f1b7fee28809ef1585fe63c30031f63e8f8a0 Mon Sep 17 00:00:00 2001 From: Guillaume Monet Date: Sat, 11 Feb 2023 10:14:46 +0100 Subject: [PATCH] Refactor Autoload --- src/Rad/Config/AutoConfig.php | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/src/Rad/Config/AutoConfig.php b/src/Rad/Config/AutoConfig.php index bdcf243..c5f22c0 100644 --- a/src/Rad/Config/AutoConfig.php +++ b/src/Rad/Config/AutoConfig.php @@ -58,29 +58,21 @@ private static function findControllers(): array { } private static function parseFile($file): ?string { - $content = file_get_contents($file); - $matches = []; - $classname = [ - 'namespace' => '', - 'classname' => '' - ]; + $content = file_get_contents($file); + $namespaces = []; + $classnames = []; + preg_match("/namespace\s+(.*);/", $content, $namespaces); + preg_match('/class\s+(\w+)\s+/', $content, $classnames); - if (preg_match("/namespace\s+(.*);/", $content, $matches)) { - $classname['namespace'] = $matches[1]; - } - - if (preg_match('/class\s+(\w+)\s+/', $content, $matches)) { - $classname['classname'] = $matches[1]; - } - if ($classname['classname'] != '') { - $clname = $classname['namespace'] . "\\" . $classname['classname']; + try { + $clname = $namespaces[1] . "\\" . $classnames[1]; $reflector = new ReflectionClass($clname); if ($reflector->isSubclassOf('Rad\\Controller\\Controller')) { return $clname; } else { return null; } - } else { + } catch (Exception $ex) { return null; } }