《php面向对象》第27课:封装复杂的MVC-单一入口文件

下面我们说一下MVC结构的另一个特点:单一入口

单一入口指在一个网站(应用程序)中,所有的请求都是指向一个脚本文件的,例如thinkphp中的http:\\localhost\index.php,所有对应用程序的访问都是必须通过这个入口,正是单一入口才使得MVC模式得以实现,因为当你访问index.php的时候,应用程序会做大量的初始化工作,调用大量的基础类库,并根据index.php后面的参数加载控制器,然后加载试图,模型等内容信息。

thinkphp的所有文件加载都要经过控制器调用,因为控制器是thinkphp中的超类,也就是其他的类都依附于它,所以用单一入口方式访问thinkphp应用程序的时候,需要在index.php的后面加上控制器名和控制器中的方法名,如果你对于此没有任何概念或者无法理解,可以去thinkphp的官方网站下载它的官方文档,然后详细了解它的工作方式

上一节课,我们封装的MVC框架,目的是弄清楚MVC的基本原理,没有什么使用价值。接下来,我们要封装的MVC,具备了初步的使用价值。当然,代码也会复杂很多。

首先,我们要写一个MVC的入口文件index.php,它一般放在public目录中。可以把web服务器的网上的根目录定位在public,这样可以防止黑客的简单攻击。

看一下MVC结构的目录分布:

<?php
//入口文件:index.php

//检测php版本
if(version_compare(PHP_VERSION, '5.6.0','<')) die('require PHP > 5.6.0 !');

// 应用目录为当前目录
define('APP_PATH', __DIR__ . '/../');

// 开启调试模式,这里只是定义了一个常量,真正开启调试模式是在fastphp.php中
define('APP_DEBUG', true);

// 加载框架文件
require(__DIR__ . '/../fastphp/Fastphp.php');

// 加载配置文件
$config = require(__DIR__ . '/../config/config.php');

// 实例化框架类
(new fastphp\Fastphp($config))->run();

上面的入口文件,代码很简单。但所有的url请求都会执行index.php,它就是通过网站内部的“大门”,并且是唯一的。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李 书 明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值