自定义MVC框架-入口文件

栏目: 后端 · 发布时间: 5年前

内容简介:当前项目 中存在很多的模型文件和控制器文件,还有一些视图文件那么如何访问这些类以及文件呢?当前的方法时,通过浏览器访问index.php,然后在此文件中 ,创建需要的控制器类的对象,再调用此类的方法

1. 抛出问题

当前项目 中存在很多的模型文件和控制器文件,还有一些视图文件

那么如何访问这些类以及文件呢?

当前的方法时,通过浏览器访问index.php,然后在此文件中 ,创建需要的控制器类的对象,再调用此类的方法

require_once './controller/UsersController.class.php';
$c=new UsersController();
$c->select();

那么如果要访问NewsController中的select方法怎么办呢?

修改index.php

require_once './controller/NewsController.class.php';
$c=new NewsController();
$c->select();

访问NewsController中的 add 方法呢?

还要无限制的修改下去吗?

当然不是!

2. 解决问题

我们将主动权交给用户,用户告诉index.php想要访问哪个控制器和哪个方法,index.php就实例化对应的类,并调用对应的方法,而不是像上面那样将控制器名称与方法名称写死

修改index.php 代码如下

//获取用户请求的控制器名称(不带Controller后缀)
$c=$_GET['c'];
//获取用户请求的方法名称(不带Action后缀)
$a=$_GET['a'];
//为类名添加Controller后缀
$className=$c."Controller";
//为方法名称添加Action后缀
$actionName=$a."Action";
echo $className;
echo '<br>';
echo $actionName;

然后在浏览器中输入如下地址,在index.php后面传递参数

自定义MVC框架-入口文件

总结

1)为了输入方便,请求控制器和方法时无需输入后缀,index.php获取后再拼接完整类名和方法名称

2)输入的控制器名称和方法名称都是小写,实际的类型和方法名称是既有大写,也有小写,但是 PHP 对于类名和方法名称是不区分大小写的,所以这么些也可以

下面继续修改index.php 代码,做到自动实例化控制器类,并调用请求的方法名称

在上面代码的基础上追加如下代码

//引入控制器所在的文件
require_once './controller/'.$className.'.class.php';
//创建对象
$controller_name=new $className();
$controller_name->$actionName();

浏览器中输入如下地址访问

自定义MVC框架-入口文件

如果像访问其他控制器和方法,只需要更换上面参数 c 和 a 的值即可

总结:

通过浏览器访问index.php,php再根据用户的请求调用对应的控制器和方法。这个index.php 就是我们这个程序的访问入口,此文件就叫做入口文件

3. 遗留问题

如果用户在地址栏输入如下地址,则会报错

自定义MVC框架-入口文件

原因在于没有传递参数c和参数a

index.php 在执行如下代码时获取的就是 NULL,导致index.php 不知道要获取哪个控制器

解决方案就是,如果用户没有传递参数c或者a,就为其设置一个默认值

如下代码

//获取用户请求的控制器名称(不带Controller后缀)
$c=isset($_GET['c'])?$_GET['c']:'users';
//获取用户请求的方法名称(不带Action后缀)
$a=isset($_GET['a'])?$_GET['a']:'select';

这样,再输入如下地址访问时

自定义MVC框架-入口文件

此种方法正好解决了我们设置网站默认访问页面的问题


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数据压缩导论(第4版)

数据压缩导论(第4版)

[美] Khalid Sayood / 贾洪峰 / 人民邮电出版社 / 2014-1 / 129.00

数据压缩已经成为信息革命的一门支撑技术,这场革命已经改变了我们的生活,而在此过程中,数据压缩也变得几乎无处不在。从MP3播放器到智能手机,再到数字电视和数字电影,数据压缩几乎成了所有信息技术的必备要素。 近年来,以大数据为标志的互联网技术高歌猛进。数据规模大、产生速度快、来源多样等特性,导致数据存储和处理都前所未有地复杂。《数据压缩导论(第4版)》作为迄今为止数据压缩领域最全面而深入的著作,......一起来看看 《数据压缩导论(第4版)》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具