PHP网站开发实例教程 第2章 PHP框架基础(上)

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
☞点击查看本 Nhomakorabea相关知识点
MVC设计模式
☞点击查看本节相关知识点
框架的单一入口和路由
☞点击查看本小节知识架构

目录
命名空间
☞点击查看本节相关知识点
自动加载
☞点击查看本节相关知识点
代码规范
☞点击查看本小节知识架构
✎ 2.1 初识框架
1 什么是框架
遵循通用代码规范,采用指定设计模式编写的代码文件 集合,这些代码文件是程序结构代码,可在框架中实现 业务功能
✎ 2.3 框架的单一入口和路由
1 什么是单一入口
单一入口是指项目具有统一的入口文件,项目中的所有 功能和操作都经过入口文件,入口文件会完成许多统一 处理的操作,如权限控制、用户登录验证等
✎ 2.3 框架的单一入口和路由
2 【案例】单一入口的实现
利用Apache的PATH_INFO功能,为单一入口index.php传递参数 根据参数查找对应的控制器和方法:
}
list($controller, $action) = $arr;
define('APP_PATH', '../app/');
define('VIEW_PATH', '../views/');
$controller = ucwords($controller) . 'Controller';
require APP_PATH . $controller . '.php';
PHP网站开发实例教程
第2章 PHP框架基础(上)
PHP
• 初识框架 • MVC设计模式 • 框架的单一入口和路由
• 命名空间 • 自动加载 • 代码规范

学习目标
1 熟悉框架在发
开中的作用
掌握MVC设计模式的 2
基本思想
掌握框架中路由 的实现
4
掌握PHP命名空间和
自动加载的使用 3

目录
初识框架
✎ 2.1 初识框架
2 常见的PHP框架
Laravel:采用MVC架构模式,支持Composer,提倡代码的重用,保证 代码的简洁性与优雅性,适合应用各种开发模式
Yii: 实现了MVC设计模式并基于该模式组织代码。代码简洁优雅,将代 码的重用性发挥到了极致。适用于开发大型Web应用
✎ 2.1 初识框架
$pathinfo = isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : '';
$arr = explode('/', trim($pathinfo, '/'));
if (!isset($arr[1])) {
exit('请求信息有误。');
2 常见的PHP框架
Symfony: 因稳定性、长久性、灵活性、可复用组件、速度快、性能高 等特点备受关注,适用于建立企业级的完善应用程序
ThinkPHP: 代码风格符合PSR规范并支持Composer,方便项目移植和 维护,适用于Web应用敏捷开发和企业级应用开发
✎ 2.2 MVC设计模式
1 什么是MVC
$route = [ 'student' => 'student/index'
]; $pathinfo = trim($pathinfo, '/'); if (isset($route[$pathinfo])) {
$pathinfo = $route[$pathinfo]; }
✎ 2.4 命名空间
✎ 2.2 MVC开发模式
1 什么是MVC
① HTTP请求
⑥ HTTP响应
Controller
② 调用模型 ③ 返回数据 ④ 调用视图 ⑤ 返回HTML
Model 数据库
View 网页模板
✎ 2.2 MVC开发模式
2 【案例】体验MVC设计模式
创建实现思路: 创建www.myframe.test的虚拟机 创建控制器,用来调用模型和视图 创建模型,读取数据表中的数据 创建视图,将读取的数据在视图中展示
MVC是模型(Model)、视图(View)和控制器( Controller)的英文首字母缩写 模型用于处理数据的部分 视图指显示在浏览器中的网页 控制器用来处理用户交互的程序
✎ 2.2 MVC开发模式
1 什么是MVC
应用场景: 用户提交表单,控制器负责读取用户提交的数据进行处理,向模型 发送数据,再通过视图将处理结果显示给用户
✎ 2.4 命名空间
3 导入命名空间
当在一个命名空间中使用其他命名空间中的类和接口时,通过use关键字导入 指定的空间,也可以对导入的内容使用as关键字设置别名
</IfModule>
✎ 2.3 框架的单一入口和路由
4 框架中的路由
框架中的路由,可以简单理解为URL到具体的控制器和方法的映射 为项目设计一套固定的URL访问方式,使项目的URL具有独立性
✎ 2.3 框架的单一入口和路由
5 【案例】路由的代码实现
实现当访问http://myframe.test/student时映射到student控制器的index()方法 在public\index.php文件,定义路由规则:
$obj = new $controller();
$obj->$action();
调用方法
实例化控制器
✎ 2.3 框架的单一入口和路由
3 【案例】隐藏入口文件
利用Apache的URL重写功能,隐藏URL中的“/index.php” 开启重写 编写重写配置文件
<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
1 命名空间的定义
命名空间遵循基本标识符命名规则,以数字、字母和下划线构成,不能以数字开头 namespace 空间名称;
命名空间必须是程序脚本的第1条语句,如果在PHP 开始标记前有空格都会报“Fatal error”错误提示
✎ 2.4 命名空间
2 命名空间的使用
思考:创建两个PHP文件分别定义不同的命名空间,one 命名空间中定义变量和常量,two命名空间直接输出one 命名空间的变量和常量,试想程序输出结果
相关文档
最新文档