1)MVC概述:模型与视图,用控制强制分离,数据请求与展示由控制器统一调配。 2)URL访问默认采用PATH_INFO方式: http://域名/入口文件/模块/控制器/操作/参数名/参数值
解析链接: 入口文件(应用入口,如index.php) 模块(应用单元,如user) 控制器(控制单元,如Index) 操作(执行单元,如add()) 例子:http://tp5.com/index.php/index/user/list/id/10/name/krasen
3)模块(module) 1,一个应用下有多个模块,对应着应用不同部分,如前台,后台 2,每个模块都可以有完整的MVC类库,创建和管理这些类库是我们最主要的工作 3,每个模块可以有独立的配置文件(config.php)和公共函数文件(common.php) 4,如果应用简单,可使用单模块模式:'app_multi_module'=>false 4)控制器(controller) 这里注意的是tp5的控制器不需要继承任何基类就可以工作,但是模板渲染所引用的方法,必须继承Controller类才能调用否则找不到方法报错。 eg: <?php namespace aap\index\controller; use think\Controller; class Index extends Controller { /** * 测试方法 */ public function index() { return $this->fetch(); } } ?> 5)TP5的生命周期: 入口文件 -> 引导文件 -> 注册自动加载 -> 注册错误和异常机制 -> 应用初始化 -> URL访问检测 -> 路由检测 -> 分发请求 -> 响应输出 -> 应用结束 1,入口文件: 文件名:index.php 位置:public/index.php 用户通过入口文件,发起服务请求,是整个应用的入口与起点 原则任务:定义常量,加载引导文件,不要放任何业务处理代码 *代码: <?php /** * 应用入口文件 */ //定义项目路径 define('APP_PATH', __DIR__ . '/../application/'); //加载框架引导文件 require __DIR__.'/../thinkphp/start.php'; ?> 2.引导文件 文件名:start.php 位置:thinkphp/start.php 执行: 加载常量 -> 加载环境变量 -> 注册自动加载 -> 注册错误与异常 -> 加载惯例配置 -> 执行应用 *代码: <?php namespace think; //ThinkPHP 引导文件 //加载基础文件 require __DIR__ . '/base.php'; //执行应用 App中的run()方法,该方法返回的是一个对象,然后执行该对象中的send()方法 App::run()->send(); ?> 3.注册自动加载 类方法: Loader::register(); 作用:将所有符合规范的类库(包括Composer依赖加载的第三方类库)自动加载 执行流程: 注册自动加载方法: \think\Loader::autoload -> 注册系统命名空间 -> 加载类库映射文件 -> 注册Composer自动加载 -> 注册extend扩展目录 4.注册错误和异常机制 执行Error::registert()注册错误和异常处理机制 三部分组成: 4_1,应用关闭方法: think\Error::appShutdown 4_2,错误处理方法: think\Error::appError 4_3,异常处理犯法: think\Error:::appException 5.应用初始化 加载公共配置 -> 加载公共扩展配置 -> 加载应用状态配置 ->加载别名定义 -> 加载行为定义 ->加载公共函数文件 ->注册应用命名空间 -> 加载扩展函数文件 -> 设置默认时区 -> 加载系统语言包 6.URL访问检测 URL必须是PATH_INFO格式才允许继续运行 标准格式: http://域名/入口文件/模块名/控制器名/操作名/参数键值对
eg:http://tp5.com/index.php/index/user/add/id/10/namew/krasen
兼容格式: http://域名/index.php?s=/模块名/控制器名/操作名&参数键值对
eg:http://tp5.com/index.php?s=index/user/add&id=10&name=krasen
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号