几天前,我学会了建造一个将军。 URL 映射到控制器的基本路由器。现在,我需要加强它来构建一个更好的具有高级功能的路由器。要构建一个更好的隐藏输入路由器,首先从项目中删除基本路由器 router.php 并创建新的文件。让我们开始吧。
路由简介我们需要建立一个更好的路由器,这将是有效的 URL 映射到特定的控制器或操作中,使我们的应用程序处理请求并将其路由到适当的处理程序中。
更好的路由器可以处理隐藏输入的能力,通过记笔记 ID 传输到控制器而不暴露在控制器上 URL 删除安全笔记,防止用户干扰。
<input type="hidden" name="_method" value="DELETE">
为了创建路由器文件,我们必须使用命名空间初始化 Router 本例为类 Core。
<?php 命名空间核心; 路由器类 { }
构建路由器类别后,我们必须定义公共函数,所有函数都有相同的参数,例如 get、post、delete、patch 和 put 作为一个基本路由,帮助我们的网站确定当有人访问某个页面时要执行的操作。这些函数具有相同的参数,因此它们可以执行相同的操作。
公共函数 get($uri, $controller) { $this->add('GET', $uri, $controller); } 公共函数 post($uri, $controller) { $this->add('POST', $uri, $controller); } 删除公共函数($uri,$controller){ $this->add('DELETE', $uri, $controller); } 补丁公共函数($uri,$controller){ $this->add('PATCH', $uri, $controller); } 公共函数 put($uri, $controller) { $this->add('PUT', $uri, $controller); }
因为所有的公共函数都有相同的参数,所以我们使用它 add 该方法为其提供相同的参数,并仅在其他函数中调用。它用于向路由映射添加三个参数:请求方法和匹配 URI 处理请求的模式和控制器文件。
ADD公共函数($method, $uri, $controller) { $这个->路线[] = [ 'uri' => $uri, '控制器' => $控制器, '方法' => $方法 ]; }
在这里,我们定义了路由方法来确定应用程序 URL 响应,并将其映射到相应的控制器中处理请求。
公共函数路由($uri, $method) { foreach ($this->routes as $route) { if ($route['uri'] === $uri && $route['method'] === strtoupper($method)) { 返回需要base__path($route['controller']); } } $this->abort(); }
在route方法中,我们使用strtouper函数将字符串转换为大写,以确保不区分大小写。
strtoupper($方法)
在 router.php 在文件中,我们将 abort 该方法被定义为安全网络,如果我们的网站找不到正确的路由,就会显示错误的页面。
中止受保护函数($code = 404) { http_response_code($code); 需要base__path(“views/{$code}.php”); 死(); }
最后一件事是routess.将路由配置定义为php文件,并将URL映射到相应的控制器中。
$router->get('/', 'controllers/index.php'); $router->get('/about', 'controllers/about.php'); $router->get('/contact', 'controllers/contact.php'); $router->get('/notes', 'controllers/notes/index.php'); $router->get('/note', 'controllers/notes/show.php'); $router->get('/notes/create', 'controllers/notes/create.php');
get 该方法指定了请求方法(GET)、URL 并将其映射到控制器文件中。
结论总之,我们已经建立了一个更好的路由器,可以有效地工作 URL 映射到特定的控制器方法,以实现更结构化和可维护的方法来处理请求,并提高我们网站的整体性能和可扩展性。
我希望你能清楚地理解。
以上是创建更好的路由器:处理隐藏输入和删除请求的详细信息,请更多地关注其他相关文章!
创建更好的路由器:处理隐藏输入和删除请求-php教程
MySQL数据库:命令行高效备份方案
CRT端口转发,实现高效远程连接!
人工智能时代 PHP:在下一个智能项目中不要忽视这一点 Web 引擎-php教程
备份:数据安全的坚实后盾,守护您的数字资产
钛备份8.3.3:数据保护,稳固无忧之选!
免费秒创网页,一键生成,轻松拥有专属网站!
人工智能时代 PHP:在下一个智能项目中不要忽视这一点 Web 引擎-php教程
手机能玩电脑神武吗(手机能玩电脑神武吗知乎)-电脑知识
联想电脑管家锁屏壁纸保存图片(联想管家锁屏壁纸)-电脑知识
com1在哪里可以看到计算机端口号(com1端口在哪里)-计算机知识
电脑中chrome收藏夹的位置-浏览器
win11如何设置休眠功能?win11开启休眠功能的方法-计算机知识
电脑部分页面闪烁(电脑部分页面闪烁怎么办)-电脑知识
夸克浏览器如何旋转屏幕-浏览器
夸克浏览器如何设置翻译页-浏览器
如何实时翻译夸克浏览器-浏览器
如何退出夸克浏览器登录?浏览器
如何设置夸克浏览器全屏-浏览器