首页 > 后端开发 > 正文

php框架中路由 php写路由有几种方法

2023-08-29 03:28:30 | 我爱编程网

在平时的学习生活当中,对于后端开发一定都很关心,今天我爱编程网小编为大家整理了php框架中路由 php写路由有几种方法,希望能够帮助到大家。

php框架中路由 php写路由有几种方法

php写路由有几种方法


路由的功能就是分发请求到不同的控制器,基于的原理就是正则匹配。接下来呢,我们实现一个简单的路由器,实现的能力是对于静态的路由(没占位符的),正确调用callback。
路由分配(推荐学习:PHP视频教程)
基于php的路由分配,实质上来说就是利用url中的path去匹配对应的控制类,同时调用其中的方法进行相关操作的处理。
<?php
// 权限控制
include_once './auth.php';
// 应用入口文件
date_default_timezone_set("Asia/Shanghai");
header('Content-type: text/html;charset=utf-8');
// 项目根路径
define('BASEPATH', dirname(__FILE__));
// 调试模式
define('APP_DEBUG', True);
// 引入配置文件
include_once BASEPATH . '/config/config.php';
// 路由控制
$router = include_once BASEPATH . '/config/router.php';
if ($_SERVER['HTTP_HOST'] !== 'xxx.com') {
var_dump('当前host不被允许');
} else {
$request_path = str_replace('/index.php', '', $_SERVER['PHP_SELF']);
$request_query = getCurrentQuery();
if (array_key_exists($request_path, $router)) {
$module_file = BASEPATH . $router[$request_path]['file_name'];
$class_name = $router[$request_path]['class_name'];
$method_name = $router[$request_path]['method_name'];
if (file_exists($module_file)) {
include $module_file;
$obj_module = new $class_name();
if (!method_exists($obj_module, $method_name)) {
die("要调用的方法不存在");
} else {
if (is_callable(array($obj_module, $method_name))) {
$obj_module->$method_name($request_query, $_POST);
}
}
} else {
die("定义的模块不存在");
}
} else {
echo '页面不存在';
}
}

php框架中路由 php写路由有几种方法

什么PHP框架可以自定义路由,我要用POST请求来做路由,并且路由的key可以自己定义

可以自定义路由的框架太多了,以下从框架的可用性等来介绍:

  1. Laravel 框架:

    合框架的大成,是一个全栈框架,包含:MVC,缓存,队列,定时任务等等。

  2. Slim :

    一个微型的框架,如果是简单的App后端服务,可以使用。 我爱编程网

  3. ThinkPHP 5.0 版本:

    中文文档十分丰富,使用群体多,比较适合国内初学者使用。

php框架中路由 php写路由有几种方法

ThinkPHP的几种路由形式总结


本篇文章总结了ThinkPHP的几种路由形式,分别是普通模式、PATHINFO、REWRITE和兼容模式,希望对各位学习thinkphp的朋友有帮助!
thinkphp官方文档里有详细的说明:
ThinkPHP支持的URL模式有四种:普通模式、PATHINFO、REWRITE和兼容模式,
可以设置URL_MODEL参数改变URL模式。
(推荐教程:thinkphp教程)
现在我们来总结一下这四种路由的格式:
1.普通路由(get形式路由)
htttp://localhost/?m=模块名(分组名)&c=控制器名&a=方法名&id=?2.pathinfo路由形式(系统默认)
路由形式:网址/入口文件/模块名(分组名)/控制器名/方法/参数名/参数值
例如:
3.REWRITE模式
REWRITE模式是在PATHINFO模式的基础上添加了重写规则的支持,可以去掉URL地
址里面的入口文件index.php,但是需要额外配置WEB服务器的重写规则。
如果是Apache则需要在入口文件的同级添加.htaccess文件,内容如下:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>接下来,就可以用下面的URL地址访问了:
在后面的文章中,我会详细介绍。
4.兼容路由形式
兼容模式是用于不支持PATHINFO的特殊环境.
路由形式:网址/入口文件?s=/模块名(分组名)/控制器名/方法名/参数名/参数值
注意:这里的小s是兼容模式变量名称,是可以通过配置文件更改的。

以上就是关于php框架中路由 php写路由有几种方法的全部内容了,如果需要了解更多相关资讯敬请关注我爱编程网。
与“php框架中路由 php写路由有几种方法”相关推荐
php框架自定义路由 php写路由有几种方法
php框架自定义路由 php写路由有几种方法

php框架搭建方法?php框架搭建步骤:1.项目初始化首先我们在自己的web目录下创建我们的项目目录,我暂且把项目命名为hellovod,因此我的电脑目录就是:D:laragonwwwhellovod。在该目录下创建composer.json文件。2.添加入口文件初始化完毕后,我们来配置入口文件。在hellovod目录下新建一个public文件夹,并在该文件夹下创建

2023-09-25 22:28:09
php设置路由一定要框架吗 php写路由有几种方法
php设置路由一定要框架吗 php写路由有几种方法

php写路由有几种方法路由的功能就是分发请求到不同的控制器,基于的原理就是正则匹配。接下来呢,我们实现一个简单的路由器,实现的能力是对于静态的路由(没占位符的),正确调用callback。路由分配(推荐学习:PHP视频教程)基于php的路由分配,实质上来说就是利用url中的path去匹配对应的控制类,同时调用其中的方法进行相关操作的处理。&lt;?php//权限控制in

2023-10-06 21:13:41
php框架中路由的原理 ThinkPHP的几种路由形式总结
php框架中路由的原理 ThinkPHP的几种路由形式总结

php为什么要使用路由器电脑为什么用路由器才能上网首先要明白电脑并非一定要使用路由器上网:1、如果你的网络是运营商给的固定IP。那就右键网络--属性--本地连接--属性--双击ipv4,直接填上运营商给你的IP,网关,及DNS,这样就可以上网了。2、如果你的网络是运营商给的登陆账号和密码。那就右键网络--属性--设置新的连接和网络--连接到Internet--宽带

2023-09-28 22:26:16
php框架中的路由分发 ThinkPHP的几种路由形式总结
php框架中的路由分发 ThinkPHP的几种路由形式总结

ThinkPHP的几种路由形式总结本篇文章总结了ThinkPHP的几种路由形式,分别是普通模式、PATHINFO、REWRITE和兼容模式,希望对各位学习thinkphp的朋友有帮助!thinkphp官方文档里有详细的说明:ThinkPHP支持的URL模式有四种:普通模式、PATHINFO、REWRITE和兼容模式,可以设置URL_MODEL参数改变URL模式。(推荐教程:

2023-09-30 04:48:53
php框架的路由怎么实现 ThinkPHP的几种路由形式总结
php框架的路由怎么实现 ThinkPHP的几种路由形式总结

ThinkPHP的几种路由形式总结本篇文章总结了ThinkPHP的几种路由形式,分别是普通模式、PATHINFO、REWRITE和兼容模式,希望对各位学习thinkphp的朋友有帮助!thinkphp官方文档里有详细的说明:ThinkPHP支持的URL模式有四种:普通模式、PATHINFO、REWRITE和兼容模式,可以设置URL_MODEL参数改变URL模式。(推荐教程:

2023-09-28 22:40:11
php分层框架路由 php框架搭建方法?
php分层框架路由 php框架搭建方法?

php大型应用如何采用分布式架构?大型分布式架构都是靠多种语言和工具共同分工合作实现的。不是一两种工具或者语言能实现的,如果专指php那是没有意义的,因为php本身只是一个单进程的东东,更别说分布式。大规模的web应用以及分布式架构主要在于服务器的整体架构:1、web服务集群;2、数据库集群;3、分布式缓存;php充其量只是实现其中一个节点的某个具体的w

2023-09-10 16:38:27
php框架路由设计 php框架搭建方法?
php框架路由设计 php框架搭建方法?

php如何实现页面路由转发php实现页面路由转发的方法:首先配置nginx服务器,在【.htaccess】中写上nginx的语法;然后打开根目录的【index.php】,编写文件路由即可。php实现页面路由转发的方法:1、配置nginx服务器nginx服务器不会自动读取.htaccess,也不支持.htaccess语法,这里需要做一个投机取巧的方法:在.htaccess中写上n

2023-09-13 09:02:43
PHP路由框架1016PHP路由框架 php需要掌握几个框架
PHP路由框架1016PHP路由框架 php需要掌握几个框架

目前php开发网站,最为流行的框架是哪几个?YiiYii是一个基于组件的高性能的PHP的框架,用于开发大规模Web应用。Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程。从MVC,DAO/,widgets,caching,等级式RBAC,Web服务,到主体化,I18N和L10N,Yii提供了今日Web2.0应用开发所需要的几乎一切功能。而且这个框架的价格也并不太高。事实上

2023-08-30 17:18:20