- 1、本文档共87页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第8章PHP框架基础(下);学习目标/Target;学习目标/Target;章节概述/Summary;目录/Contents;划分框架目录结构;;;myframe.test框架的目录结构:;使用Composer管理项目;;;;;;;;;;8.2.3使用Composer管理项目依赖;;Composer通过packagist资源库获取依赖包。在packagist资源库中,依赖包的命名方式为“用户名/包名”。例如“naux/auto-correct”包能够在中文和英文之间添加空格,并纠正专用名词的大小写。;通常情况下,一个包会有多个版本,指定版本号的多种方式:;以naux/auto-correct包为例,演示使用Composer管理项目依赖:;test()方法的代码:;如果想要卸载依赖包,可以使用如下命令:;;在进行项目开发时,除了可以使用Composer下载packagist中的依赖包外,还可以将自己实现的功能或项目打包成依赖包,完成测试后,将其发布到Packagist资源库中供其他人使用。
下面通过案例演示如何使用Composer创建自己的包。;①在C:\web\apache2.4\htdocs目录中创建包的基础目录custom-php-json,在该目录下创建src目录和src\Json.php文件,实现对数据的JSON编码和解码。
②创建custom-php-json\composer.json文件,编写包的初始化信息。
③在项目中使用创建的包,测试对数据的JSON编码和解码。;框架基础搭建;;;实现App类的具体步骤:;;;实现Request类的具体步骤:;;;实现Response类的具体步骤:;;;实现Container类的具体步骤:;反射;;;在PHP中使用反射,主要通过反射API来完成。反射API常用的类与接口:;在PHP中使用反射,主要通过反射API来完成。反射API常用的类与接口:;ReflectionClass类常用的方法:;ReflectionMethod类和ReflectionFunctionAbstract类常用的方法:;ReflectionProperty类常用的方法:;ReflectionParameter类和ReflectionExtension类常用的方法:;8.4.1反射API;?php
//定义一个类,用于测试
classUpload{
/**
*上传文件信息
*/
private$file=[];
/**
*上传文件保存目录
*/
public$upload_dir=/upload/;
};?php
require./upload.php;
//获取类中所有的属性
$reflect=newReflectionClass(Upload);
$properties=$reflect-getProperties();
var_dump($properties);
foreach($propertiesas$property){
if($property-isPublic()){
var_dump($property-getDocComment()); //文档注释
var_dump($property-getName()); //属性名称
var_dump($property-getValue(newUpload)); //属性值
}
};8.4.1反射API;;;指框架通过类的构造方法的参数为类注入依赖的对象;下面演示使用依赖注入和不使用依赖注入的区别。;8.4.2依赖注入;;了解了反射API和依赖注入后,接下来在自定义框架中实现依赖注入。自定义框架需要借助反射API获取构造方法和普通方法依赖的对象,将依赖的对象创建后注入。;①实现构造方法的依赖注入。修改myframe\Container.php的make()方法,创建对象前使用ReflectionClass类获取构造方法的参数,根据参数获取类名,实例化该构造方法依赖的类并完成依赖注入。
②实现普通方法的依赖注入。修改myframe\App.php的dispatch()方法,创建普通方法前使用ReflectionMethod类获取普通方法依赖的对象,在调用普通方法时传入依赖的对象,完成依赖注入。;异常处理;;PHP提供了Exception类表示程序中的异常,通过实例化该类可以创建异常对象,创建后的异常对象使用throw关键字抛出。;使用try…catch语句可以捕获程序中抛出的异常并进行处理。;使用try…ca
您可能关注的文档
- PHP网站开发实例教程(第3版) 课件 第2章 PHP语法基础.pptx
- PHP网站开发实例教程(第3版) 课件 第3章 PHP函数与数组.pptx
- PHP网站开发实例教程(第3版) 课件 第4章 PHP进阶.pptx
- PHP网站开发实例教程(第3版) 课件 第5章 PHP操作MySQL.pptx
- PHP网站开发实例教程(第3版) 课件 第6章 PHP面向对象编程.pptx
- PHP网站开发实例教程(第3版) 课件 第7章 PHP框架基础(上).pptx
- PHP网站开发实例教程(第3版) 课件 第9章 PDO扩展和Smarty模板引擎.pptx
- PHP网站开发实例教程(第3版) 课件 第10章 项目实战——内容管理系统.pptx
- PHP网站开发实例教程(第3版) 课件 第11章 Laravel框架.pptx
- PHP网站开发实例教程(第3版)教案-教学设计 第1章 初识PHP.doc
- 2022-2023学年福建省福州市福清市高中联合体高一下学期期中物理试题.pdf
- 建模思想在初中化学教学中的尝试——以“工业炼铁”为例.pdf
- 2022年教资考试中学科目二考前背诵重点.pdf
- 电视原理试题及答案打印版[答案].pdf
- 秦三核电工程728MW汽轮机设备及安装特点.pdf
- 2023年一级注册建筑师之建筑材料与构造通关考试题库带答案解析.pdf
- 2023年一级造价师之工程造价案例分析(土建+安装)通关题库(附带答案)10576.pdf
- 2022年一级注册建筑师之设计前期与场地设计题库附答案(典型题)6648.pdf
- 2023年一级注册建筑师之设计前期与场地设计基础试题库和答案要点10012.pdf
- 2023年一级注册建筑师之设计前期与场地设计通关考试题库带答案解析6546.pdf
文档评论(0)