So laden Sie eine Klasse basierend auf einer hübschen URL in einer Model View Controller (MVC)-Seite
Frage: Wie lade ich eine Klasse basierend auf einem dynamisch expandierenden Controller mit einer neuen Kategorie, die aus hübschen URLs besteht?
Lösung:
Um dieses Problem zu beheben, müssen die folgenden Schritte unternommen werden:
Hier ist Beispielcode zum dynamischen Laden einer Klasse über eine hübsche URL:
// 注册自动加载器 spl_autoload_register(function ($name) { $path = 'path/to/classes'; $filename = $path . '/' . $name . '.php'; if (file_exists($filename)) { require $filename; return true; } return false; }); // 使用路由表匹配 URL $routes = [ '/{resource}/foobar' => ['controller' => 'FoobarController', 'action' => 'index'], '/{resource}' => ['controller' => 'ResourceController', 'action' => 'show'], ]; $url = $_SERVER['REQUEST_URI']; foreach ($routes as $pattern => $route) { if (preg_match($pattern, $url, $matches)) { $controller = $route['controller']; $action = $route['action']; break; } } // 调用控制器方法 if (isset($controller) && isset($action)) { $controller = new $controller; $controller->$action($matches); } else { // Handle 404 }
Das obige ist der detaillierte Inhalt vonWie lade ich Klassen basierend auf hübschen URLs in einem MVC-Framework dynamisch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!