<关闭侧栏

| 当前位置: | 主页 > 救世网玄机香港马会 >

《细说PHP》第四版 样章 第23章 自定义PHP接口规范 9

来源:未知 作者:admin 时间:2019-10-24 11:11 文字大小: 【大】 【中】 【小】 点击:
核心提示:程序框架其实就是一个半成品项目,在应用框架时,核心的服务程序只应用,不需要改动。当然如果有必要,也可以根据项目的需要对框架进行二次开发。本节内容主要基于我们的框架,完成对WebAPI的访问交互。例如,现在有这样一个简单需求,在客户端PHP程序中,需

  程序框架其实就是一个半成品项目,在应用框架时,核心的服务程序只应用,不需要改动。当然如果有必要,也可以根据项目的需要对框架进行二次开发。本节内容主要基于我们的框架,完成对WebAPI的访问交互。例如,现在有这样一个简单需求,在客户端PHP程序中,需要通过我们自定义的API对远端数据库中的表user(使用本章前面介绍过的表user),进行增、删、改、查等操作。

  首先,我们需要在服务器中创建一个user表的操作模型类,通过统一的操作模型对表进行管理。当然,对表操作的数据访问模型可以编写得很“智能”,本例只是为了完成效果,用最简单的方法实现对表user的操作。在项目的根目录创建一个“models”目录,对每个表的操作都在这个目录中创建一个单独的操作类。根据需求只需要对一个表user进行操作,所以只需要在该目录下创建一个user.php的文件,并在文件中声明一个User类。另外,对每个数据表操作的模型类,都需要先连接数据库,所以可以先声明一个父类,把所有共性的表操作都在这个父类中声明。本例只将数据库的连接操作看作共性问题,放在根目录model.php文件声明的Model类中,代码如下所示:

  Model类作为所有数据模型的父类,通过connect()方法加载配置文件config.php,根据数据库配置信息连接到数据库,可以让所有子类调用该方法,并完成对数据库的连接操作。我们在models目录中创建的user.php文件,声明的User类继承了Model类,代码如下所示:

  在User类中只声明一些对表user进行增、删、改、查的操作方法,如果需要对其他表进行同样的操作,可以再声明一些同样的类文件。User类中的这些方法,河南卫视节目表今天9点直播什么节目预告,可以在控制器中通过创建User类的对象直接进行访问。同样,每个业务操作流程也需要声明一个独立的控制器文件。控制器和其中的操作方法,是通过我们定义的框架,在路由表中和用户的操作请求绑定的。根据用户不同的操作请求,通过路由映射到控制器中对应的方法。按本例的需求,创建一个目录“controllers”,并在该目录下声明一个usercontroller.php文件,并在文件中声明一个UserController类,代码如下所示:

  如果有其他的业务需求,可以按本类的格式,再继续添加新的控制器。在本类中声明一些通用操作方法,通过创建数据操作模型User类对象,对表user进行操作,将运行结果再通过Response类返给客户端。

  有了控制器,下一步就需要编辑api.php文件中的路由表,将我们声明的接口发布出去。注册路由表信息如下所示:

  如果整个项目文件已经上传到Web根目录下,按RESTful API的要求,需要一个独立的域名空间。可以在本机进行简单测试,通过修改Windows系统下的hosts文件,添加一条记录,将域名定到本机“127.0.0.1”。打开“C:/Windows/System32/drivers/etc/hosts”文件,在最后一行加一条记录,如下所示:

  添加完成后直接保存即可生效,当然只能在本机测试使用。可以通过域名提供商购买,并将域名指向自己的服务器地址,也可以在Linux下通过配置DNS服务实现。现在访问API的URL为:

  按RESTful API的规范,还需要隐藏主入口文件index.php。这可以通过Web服务器Apache提供的URL rewrite扩展模块实现。在index.php文件所在的同级目录下(本例在Web文档根目录下),创建 “.htaccess”文件,添加几条Apache URL重写指令来实现,文件“.htaccess”的内容如下所示:

  文件编辑完成后不用重新启动Web服务器即可生效,如果主入口文件不是放在Web服务器的根目录下的,只需要在第三条index.php前加上所在的路径即可。现在访问API的URL为:

  到现在自定义的简单API已经开发完成,如果让客户端访问,还需要提供详细的API文档。可以通过平台注册一个账号来管理文档,我们通过简单的表格编写部分自己定义的API文档,如表23-6所示。

图文资讯

Megabyet:著名免费

  Megabyet和样,是美国著名免费空间商旗下的网站,该分站在2009年……

[详细]
NBA季前赛直播:火

  北京时间10月4日13:00,NBA季前赛迎来一场关注度极高的比赛火箭……

[详细]
在询问中二人得知立

  在询问中二人得知,立即跑过去了解情况。 有明确的目标,在教学……

[详细]
只有我敢这么做被火

  只有我敢这么做。被火烧,乳房才能得到正常发育。也容易引起双侧……

[详细]
港马会开奖结果2019

  在王乐平的策划下,1987年携手NEC推出家用游戏主机PCEngine(PCE……

[详细]
2018香港历吏开奖记

  下同)至1800元,受低温阴雨天气影响,全国至少已经有20个省份公……

[详细]
于是在第五部《变形

  于是在第五部《变形金刚5:最后的骑士》彻底耗尽了影迷的情怀,作……

[详细]
《细说PHP》第四版

  API是服务提供方和使用方之间对接的通道,前面我们设计的一些简……

[详细]
律回春晖渐想起了网

  律回春晖渐,想起了网上一句流行的话:“工作让我快乐。 即便是……

[详细]
波色生肖玄机全年料

  或许正是这一次次的“低迷”表现,医保局会同卫健委印发了《关于……

[详细]
5-6瓜子二手车持续

  5-6.瓜子二手车持续公布二手车瓜子价,这并不是说不在这68家杂志……

[详细]
《细说PHP》第四版

  程序框架其实就是一个半成品项目,在应用框架时,核心的服务程序……

[详细]
腾讯NBA文字直播和

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点搜索资……

[详细]
突出运动感EU5定位

  突出运动感。EU5定位于紧凑型纯电动轿车,不按人文学科的要求来……

[详细]
王中王跑狗图让真正

  让真正优秀的作品脱颖而出, 文/图 吴茂林 本报记者 桂爽文物和……

[详细]
NEXT VR登陆Quest为

  )支持三星Gear VR,Oculus Go和Oculus Rift平NEXT VR是一款体育……

[详细]
NBA直播:雄鹿VS猛

  北京时间5月26日8:30,东部决赛第6战雄鹿客场挑战猛龙。雄鹿在系……

[详细]
nba直播2014篮球世

  【篮球教学】非洲天王 奥拉朱旺 勒布朗詹姆斯 一对一篮球教学 篮……

[详细]
PHP代码优化技巧

  在执行for循环之前确定最大循环数,不要每循环一次都计算最大值……

[详细]
NBA直播:猛龙VS勇

  北京时间6月14日9点,2019年NBA总决赛猛龙vs勇士第6场,猛龙3-2……

[详细]
黄大仙心水论坛| 全年白小姐送两波资料| 六合走势分析网| 本港台现场报码室东莞| 趋势线精准指标码源| 管家婆透码| 天空彩票与你同行资料| 六合马经资料大全| 118旺角高手心水论坛| 三肖中特期期准黄大仙|