PHP函数、PHP面向对象、动手能力、结构构建 是进行 MVC设计 的必备知识
PHP MVC的初始架构包括以下内容:
A. 入口文件功能和序列
B. 编写和配置类的自动加载机制
C. 路由类的原理和编写
D. 控制器的规范结构和启动机制
E. 模型类构建
F. 视图类功能解析
G. 命名空间和文件名系统 概念明晰
A. 入口文件功能和序列
入口就好比一个程序的起点,在这里主要规定了:重要的常量(固定参数)、程序的加载顺序、程序的运行顺序、程序的启动点等。
详尽的功能还应该包括:运行环境及配置扫描、程序向内存初始化加载、甚至程序的其他初始化加载、程序相关服务的启动等。
另:PHP是脚本语言,或者叫宏语言,必须得到解释器来解读。。。。php脚本后缀需要是php,当客户发送HTTT请求获得一个php文件时,服务器不会像其他文件一样,将文件传过去,而是去解读这个文件,他只解读php标签内中的内容,这需要一个解释器去解释这个脚本,解释器需要用真正的编程语言去做,比如C语言,服务器解读之后就会去执行php要求的行为,它不会进行编译,所以不存在生成机器码的环节,这是宏语言和真正的编程语言最大的区别,脚本只是另一个程序的操作对象,而不是程序代码本身。。。。
例如这样的 index.php 文件
/**
* 入口文件
* 1.定义常量
* 2.加载函数库
* 3.启动框架
*/
//1.定义初始化常量
define('IMOOC',realpath('./'));
define('CORE',IMOOC.'/core');
define('APP',IMOOC.'/app');
define('MODULE','app');
define('DEBUG',true);
//1.1调试模式开关:是否启用PHP错误提示
if(DEBUG){
ini_set('display_errors','on');
}else{
ini_set('display_errors','off');
}
//2.加载自定义函数集合 核心引擎入口
include CORE.'/common/function.php';
include CORE.'/imooc.php';
//2.1注册给定的函数作为 __autoload 的实现
spl_autoload_register('\core\imooc::load');
//3.启动
\core\imooc::run();
B. 编写和配置 类的自动加载机制
该类的主要作用在于 丰富php自动加载函数的功能、完善自动加载过程中的部分信息过滤功能、使该类嵌入该框架引擎、闭合一些已知的边界以弥合漏洞。
例如:
一、Routing(路由)的作用
1、匹配传入的请求(不匹配服务器物理文件);
2、将请求映射到 控制器 的具体操作 Action方法 和 参数;
3、调用并执行对应 控制器 类的 Action 方法;
二、好的Url应该满足如下条件:
1、URL应为获取某种资源提供信息,不一定是物理文件路径;
2、简短易于记忆和拼写输入;
3、可以反映出站点结构;
4、应该是【可拆分】,用户移除末尾,进而获得更高层次信息;
5、持久、不应改变。
MVC路由系统应包括 三个主体:路由控件类、路由功能加载和影响机制、路由表
除此之外对路由有影响的部分是 入口 以及 外部环境:
入口文件初始化的路由相关参数、常量;
入口的额外配置;
.htaccess重写引擎配置文件;
PHP环境配置
等
有条理的路由轴线意味着,清晰明确易用易维护的核心控制路线
D. 控制器的规范结构和启动机制
路由已经实现了解析URL来访问对应的控制器和对应的方法,控制器的实现就相对变得简单:
通常控制器只需要调用核心类的入口,即可链接至核心实现引擎控制。