• 9527 微信小程序商城系统源码+thinkphp后台+mysql数据库

    源码信息:微信小程序商城系统源码+thikh后台+myql数据库后台环境要求:h+myql商城系统...

    2023-02-09

  • ThinkPHP实战pdf|百度网盘下载

    编辑评论:ThikPHP实用df电子书是一本关于计算机技术的书,主要讲开源脚本语言的概念,适用于we开发领域,包含大量的计算机知识和实用技能.ThikPHP实战df内容简介PHP是一种通用的开源脚本语言,开源、跨平台、易于使用,主要用于We开发。MVC模式使得PHP在大型We项目的开发中具有低耦合、高复用性和高可维护性,有利于软件工程管理。本书以实用性为目标,系统地介绍了ThikPHP框架的相关技术及其在We开发中的应用。全书共14章,每一章都是相对独立的知识点的集合。内容涵盖ThikPHP的常用功能模块和实用技巧、MySQL数据库的设计与应用、完整的We项目开发流程等PHP开发中的主流技术。了解和掌握。*最后通过4个完整的项目,详细介绍了We应用从设计到操作的各个环节,方便读者更好的实践。对于有PHP基础但不知道下一步该做什么的读者来说,这本书是一本很好的入门教材。本书中的所有示例都可以直接用于We开发,使读者能够加快We应用开发的进程。.此外,本书也适合对网络开发感兴趣的读者,以及高等院校和培训机构的师生阅读和参考。ThikPHP实战df阅读器评测最基本的ytho数据分析入门书,除了ytho的介绍外,还介绍了常用的数据录入,Pada,以及一些基本的matlotli绘图。整体来说没有具体案例,适合作为一本了解ytho数据分析的书。ThikPHP实战df精彩内容ThikPHP是一个免费、开源、快速、简单、面向对象和轻量级的PHP开发框架。它创建于2006年初,在Aache2开源协议下发布。它旨在加快We应用程序开发并简化企业应用程序开发。出生。ThikPHP从诞生之初就秉承简单实用的设计原则,在保持卓越性能和最少代码的同时,也注重易用性。同时,ThikPHP具有许多独创的功能和特性。在社区团队的积极参与下,在易用性、可扩展性等性能方面不断优化提升,成长为国内最领先、最具影响力的We应用开发。框架,许多典型案例保证了它可以稳定地用于商业和门户级的开发。...

    2022-05-11 thinkphp源码分析 thinkphp 数据库

  • ThinkPHP 5实战(txt+pdf+epub+mobi电子书下载)|百度网盘下载

    ...

    2022-04-02 模块建房 模块化设计

  • ThinkPHP 5实战(txt+pdf+epub+mobi电子书下载)|百度网盘下载

    作者:夏磊出版社:清华大学出版社格式:AZW3,DOCX,EPUB,MOBI,PDF,TXTThikPHP5实战试读:内容简介本书针对ThikPHP5进行编写,内容由浅入深,由局部到整体,以实用性为目标,系统地介绍ThikPHP框架的相关技术及其在We开发中的应用。本书分为18章,内容包括开发环境搭建、配置系统、路由、控制器、数据库操作层、模型层、视图、验证器、缓存、Seio和Cookie、命令行应用、开发调试、服务器部署、数据库设计、多人博客系统开发、图书管理系统开发、论坛系统开发与微信小程序商城系统开发。如果读者在阅读本书时遇到问题,还可以到Githu上提出问题获得解答。本书适合ThikPHP初学者、PHP应用开发人员,也适合作为高等院校和培训学校计算机相关专业的师生教学参考。夏磊,毕业于湖南工业大学网络工程专业;目前从事软件开发工作,精通PHP服务器脚本语言技术,善于把握与运用新技术,如LAMP平台下We软件的开发、软件架构、设计模式、JavaScrit、YII、Golag等;博客上有大量的We相关技术文章,深受读者好评;著有图书《ThikPHP实战》。前言PHP是一种通用开源脚本语言,开源、跨平台、易于使用,主要适用于We开发领域。MVC模式使得PHP在大型We项目开发中耦合性低、重用性高、可维护性高、有利于软件工程化管理。作为国内MVC框架中的佼佼者,ThikPHP是一个免费开源、快速、简单的、面向对象的、轻量级PHP开发框架,已经成长为国内最领先和最具影响力的We应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级网站的开发。ThikPHP5版本是一个颠覆和重构版本,采用全新的架构思想,引入了更多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载,支持comoer,并针对API开发做了大量的优化,包括路由、日志、异常、模型、数据库、模板引擎和验证等模块都已经重构,不适合原有ThikPHP3.2项目的升级,所以编写了本书。本书编写的目的是让读者能够系统地学习ThikPHP5框架。即使读者不了解MVC模式或者MVC框架,阅读本书也不会有太大的问题,并且学完本书后能基于ThikPHP5开发自己的项目。为了加强读者对内容的理解,每一章都有配套示例以及详尽的注释,便于读者理解和学习。大部分章节都会配有练习,进行针对性的训练。在本书的后半部分更是直接展示一个完整项目的开发流程,让读者可以在实践中学习。毕竟ldquo眼过千遍,不如手写一遍rdquo。本书示例代码针对上一版代码Githu单个仓库托管问题,本书实例代码已经改为组织托管,每个项目都会使用独立的仓库保存。所有的实例都可以在We开发中直接使用,省去了读者ldquo造轮子rdquo的过程,以专注于业务逻辑开发。对于本书内容有任何疑问或者在实际开发中遇到问题的读者可以在Githu上的iue中提出问题,作者会进行解答。本书仓库地址为htt://githu.com/thikh5-iactio。如果下载有问题,请联系ookaga@163.com,邮件主题为ldquoThikPHP5实战rdquo。本书开发环境操作系统:Widow10专业版We服务器:PHP自带PHP版本:PHP7.2.5(NTS)(ThikPHP5要求PHP版本大于等于5.6即可)IDE:PHPStorm2018.1ThikPHP版本:ThikPHP5.0.19(本书提到的ThikPHP5即指这个版本)浏览器:GoogleChrome66(更高的版本也没有问题)本书适合读者●We开发爱好者●拥有PHP基础想深入学习PHP大型项目开发的人员●大中专院校以及培训机构的讲师●初/中级网站开发人员著者2019年8月第1章搭建开发环境1.1下载开发工具/软件ldquo工欲善其事,必先利其器rdquo。为了给后续的学习打下基础,避免由于环境不一致而导致的问题,本节将简述开发环境。下面的链接仅供参考,如果有变动,请到相关网站查找并下载。(1)下载PHP7.2.5,下载链接为htt://widow.h.et/dowload/releae/h-7.2.5-t-Wi32-VC15-x64.zi。(2)下载PHPStorm,下载链接为htt://www.jetrai.com/htorm/dowload/#ectio=widow。(3)下载Chrome浏览器,下载链接为htt://rj.aidu.com/oft/detail/14744.html。(4)下载ThikPHP5.0.19核心版,下载链接为htt://www.thikh.c/doate/dowload/id/1148.html。(5)将下载的PHP解压之后,添加PHP目录到操作系统的PATH环境变量中。1.2HelloWorld几乎所有的编程语言入门都是从HelloWorld开始的,本书也不例外。解压ThikPHP5压缩包之后打开PHPStorm,如图1-1所示。图1-1点击Oe菜单打开刚才解压的目录,打开之后会进入IDE主界面,如图1-2所示。图1-2点击图1-2左下角画红框的按钮会打开扩展菜单,然后点击Termial打开控制台,如图1-3所示。图1-3输入ldquoh-Slocalhot:8080-tulicrdquo,如图1-4所示。图1-4如果命令执行错误,请检查PHP环境变量是否配置正确。命令参数解释:●-S:启动开发服务器(PHP5.4+自带)并设置监听地址。●-t:设置We根目录,ThikPHP对安全的要求是We目录和PHP源代码分离,故将ulic目录单独作为We目录,源码不在该目录中,有效地提升了服务器的安全性。打开Chrome浏览器,输入ldquohtt://localhot:8080rdquo,输出如图1-5所示。图1-5恭喜你,本书学习的第一步已经完成。如果看不到上面的输出,请到Githu上面提iue,作者会耐心解答。第2章配置系统目前大部分框架的习惯都是ldquo配置大于编码rdquo,ThikPHP5也不例外。配置优先的方式可以让我们只修改配置部分,不需要修改程序源代码,有效减少了程序出错的可能。ThikPHP5默认使用PHP数组方式定义配置,支持惯例配置、公共配置、模块配置、扩展配置、场景配置、环境变量配置和动态配置。ThikPHP5的配置非常灵活,举一个简单的例子:假设你在家里、公司两个不同的地点开发同一个项目,通过配置a_tatu,系统就会自动加载不同环境下的配置文件,实现ldquo无缝开发rdquo。怎么样?是不是很期待呢?那就跟我一起来学习一下ThikPHP5的配置吧!2.1配置的路径ThikPHP5默认配置目录为alicatio目录,该目录(不包括子目录)下的文件为全局配置,整个程序都可以访问到。如果是模块(如idex模块)下的配置,就只对该模块生效。如果需要将alicatio/cofig.h的配置按照组件拆分(如拆分为数据库配置、缓存配置等)为多个文件,那么请放在alicatio/extra目录下,文件名为键名,文件直接返回数组即可。将配置文件拆分有利于规范项目文件结构,尽量做到单一职责,一个配置文件只负责一个组件/功能。2.2配置的格式ThikPHP5默认的格式为PHP数组,这也是ThikPHP3的做法,不过需要注意的是ThikPHP5推荐数组键名使用小写,而ThikPHP3的键名是大写。键值支持PHP所有数据类型,包括简单类型(字符串、数字、布尔值等)以及嵌套数组等。2.3配置的加载顺序在本章开始的时候提到过ThikPHP5支持多种配置,这就会带来一个问题,即配置的加载顺序如何?如果不弄清楚这个问题,在实际开发中可能会出现由于配置冲突、覆盖之类的问题而一时找不到问题出在哪里。ThikPHP5配置加载顺序如下:(1)框架配置(框架自带的默认配置)。(2)全局配置(alicatio/cofig.h)。(3)扩展配置(alicatio/extra目录下的配置文件)。(4)场景配置(上文提到的a_tatu常量,如定义a_tatu为comay,框架就会加载alicatio/comay.h配置)。(5)模块配置(alicatio/模块名/cofig.h,支持a_tatu常量,如第4点的a_tatu则会加载alicatio/模块名/comay.h配置)。(6)动态配置(使用Cofig类进行操作)。可以看到优先级是从上到下越来越低,希望读者能记住配置的加载顺序,这个顺序在开发中会带来很大的方便。2.4配置的读写与示例使用配置的最终目的是方便开发,也就是在合适的时候需要读写配置,比如实例化数据库的时候需要读取dataae配置。ThikPHP通过Cofig::get和Cofig::et读写配置。下面我们来看配置的一个示例,这个示例将完成以下内容的验证:●惯例配置的加载●全局配置的加载●扩展配置的加载●场景配置的加载●模块配置的加载●动态配置的加载与读写步骤说明如下:(1)解压缩ThikPHP5核心版。(2)运行PHP服务器,启动命令参照1.2节的相关内容。(3)编辑alicatio/idex/cotroller/Idex.h:(4)访问htt://localhot:8080,可以看到输出了一段JSON,这就是ThikPHP的默认配置(惯例配置)。(5)新建alicatio/extra/amq.h文件(如果extra目录不存在,就手动创建)。(6)刷新页面,可以看到有刚才配置的amq配置。(7)将alicatio/cofig.h的a_tatu更改为home。(8)添加alicatio/home.h。(9)刷新页面,可以看到amq的输出已经变成home.h中定义的内容。(10)添加alicatio/idex/cofig.h。(11)刷新页面,发现amq又发生了变化,与上面定义的文件一致。(12)添加alicatio/idex/home.h。(13)继续刷新页面,发现amq又发生了变化,与上面定义的文件一致。(14)编辑alicatio/idex/cotroller/Idex.h,添加rw方法测试配置的读写。(15)访问htt://localhot:8080/idex/idex/rw,可以看到如下输出:NULLtrig(3)"111"2.5小结经过本章的学习与示例项目的演示,验证了我们本章学习的所有知识,希望大家能够全部掌握,为后续的学习打下基础。本章代码地址:htt://githu.com/thikh5-iactio/cofig-demo。第3章路由ThikPHP5采用的默认规则是PATHINFO模式,也就是如下的URL形式:htt://erver/module/cotroller/actio/aram/value/与ThikPHP3最大的不同是ThikPHP5的路由更加灵活,支持路由到模块的控制器/操作、控制器类的方法、闭包函数和重定向地址,甚至是任何类库的方法。需要注意的是,ThikPHP5的路由是针对应用而不是模块,所以路由是针对某个应用下的所有模块。如果需要按照模块定义路由,就需要自定义如下入口文件:3.1路由模式ThikPHP5的路由通过url_route_o和url_route_mut来控制路由行为。根据这两个配置,存在三种路由模式:普通模式、混合模式和强制模式。3.1.1普通模式禁用路由,系统按照PATHINFO模式解析请求:'url_route_o'=gtfale,3.1.2混合模式系统按照PATHINFO模式+路由定义解析请求:'url_route_o'=gttrue,'url_route_mut'=gtfale,若定义了路由,则执行路由,否则按照PATHINFO解析。3.1.3强制模式该模式下所有请求必须设置路由,否则抛出异常:'url_route_o'=gttrue,'url_route_mut'=gttrue,3.2路由定义3.2.1编码定义顾名思义,就是使用硬编码的形式进行定义(区别于配置式定义)。一般路由定义在alicatio/route.h文件中,注册形式如下:Route::rule('路由表达式','路由地址','请求方法','路由条件','变量规则')例如,下面的注册代码将会使访问ldquo/ew/rdquo新闻ID的链接路由到idex模块的New控制器的read方法:Route::rule('ew/:id','idex/New/read')由于ThikPHP5的路由是针对所有模块的,所以定义的时候需要加上模块名。ThikPHP5支持GET、POST、PUT、DELETE以及任意(*)请求方法定义。系统内置以下方法来简化路由定义:Route::get('ew/:id','New/read')//GETRoute::ot('ew/:id','New/udate')//POSTRoute::ut('ew/:id','New/udate')//PUTRoute::delete('ew/:id','New/delete')//DELETERoute::ay('ew/:id','New/read')//任意请求方法如果一个路由可以同时支持多种请求方法,可以使用ldquo|rdquo符号,意思和ldquo或rdquo一致。例如,有如下定义:Route::rule('ew/:id','idex/New/read','GET|POST')则该路由允许POST和GET请求方法访问。3.2.2配置定义通过返回数组来定义路由,而且可以批量定义,简化代码编写量。该定义方式和ThikPHP3很相似,但是不支持正则定义。例如:'idex/idex/idex','ew/:id'=gt'idex/New/read',//变量定义'ew/[:id]'=gt'idex/ew/read',//可选变量定义'ew/:id$'=gt'idex/ew/read',//完全匹配'uer/:id'=gt'idex/uer/how?tatu=1',//传递隐式参数//限制变量类型'ot/:id'=gt['idex/ot/how',['ext'=gt'html'],['id'=gt'\d{4}']],]3.3路由条件路由条件的意思是即使当前的URL满足了路由定义的地址,也可以通过控制路由条件来决定允许/拒绝该请求,提升了路由的灵活性。可用的路由参数如表3-1所示。表3-1路由参数示例:3.4路由地址路由地址就是路由匹配成功之后需要执行的操作。ThikPHP5支持以下几种方式:●路由到模块/控制器●重定向●路由到控制器方法●路由到类静态方法●路由到闭包函数3.4.1路由到模块/控制器'ew/:id'=gt'idex/ew/read'控制器定义如下:控制器支持无限级设置,例如下面的路由定义将会执行a\idex\cotroller\ite\ew控制器的read方法:'ew/:id'=gt'idex/ite.ew/read'3.4.2重定向重定向和路由的区别是,重定向会在浏览器中产生一次301或302响应,而路由是浏览器无感知的。重定向以ldquo/rdquo(站内,请特别注意不要忘记斜杠)或ldquohttrdquo或ldquohttrdquo开始,站内跳转如下:'ew/:id'=gt'/ew/how/:id.html'访问/ew/id链接时,浏览器将会产生301响应,跳转到/ew/how/id.html地址。站外跳转如下:'ew/:id'=gt'htt://www.examle.com/ew/:id.html'3.4.3路由到控制器方法这种方式看起来似乎和第一种是一样的,但是不需要去解析模块/控制器/操作,同时也不会去初始化模块。例如,下面的定义将会执行idex模块的ew控制器的read方法:'ew/:id'=gt'@idex/ew/read'由于是直接路由到控制器方法,因此获取当前模块名、控制器名、操作名会报错,因为ThikPHP没有初始化这些变量。3.4.4路由到类静态方法此类路由支持任何类的静态方法,包括控制器。例如,下面的定义将会路由到idex模块中New控制器的静态read方法:'ew/:id'=gt'a\idex\cotroller\New::read'3.4.5路由到闭包此类路由直接在alicatio/route.h中定义,典型的例子如下:Route::get('ew/:id',fuctio($id){retur'访问'.$id.'的新闻'})3.5Retful路由3.5.1普通资源Retful路由的核心是通过标准HTTP方法来操作/获取数据,所以设计路由的时候尽量以请求资源为核心。ThikPHP5对Retful路由的支持比较完善,通过以下两种方式都可以定义Retful路由:(1)编码定义Route::reource('ew','idex/ew')(2)配置定义以ew资源为例,ThikPHP5会自动注册7个路由规则,对应控制器不同的操作方法,如表3-2所示。表3-2路由规则说明需要注意的是,Retful标准中一般有以下几种请求:●GET:获取单个资源或资源列表,返回单个JSON或列表JSON。●POST:创建资源,返回创建后的JSON。●PUT:编辑资源,返回编辑后的JSON。●DELETE:删除资源,返回204状态码和空响应体。对资源路由设计有深入兴趣的读者可以学习慕课网上的视频《RetfulAPI实战》(htt://www.imooc.com/lear/811)。3.5.2嵌套资源有时候资源是有上下级关系的,比如新闻的评论依赖于新闻,这时就需要用到嵌套路由定义。ThikPHP5对此也是支持的,例如:3.6路由分组如果同一个控制器的操作很多,在需要定义多个路由的情况下,可以将此类路由合并到一个分组,提高路由匹配效率。●启用路由分组之前的定义:●启用路由分组之后的定义:在路由比较多的时候可以适当地采取该方式定义路由。当分组访问到不存在的路由,例如定义了ew分组但是没有定义delete方法,这时可以给ew分组新增一个__mi__路由来捕获此类访问。3.7全局404路由与分组路由404类似,全局404路由也用来处理访问路由不存在的情况,不过作用域大一些,会捕获该应用所有的404。例如:当访问到404时,系统将会执行idex控制器的otfoud方法。3.8路由绑定如果当前入口文件只需要使用idex这个模块,就可以绑定路由来简化路由定义,否则每次都需要在路由地址声明完整路径(包括模块名)。在入口文件中使用以下代码即可完成绑定:Route::id('idex')绑定之后可以简化路由定义,例如以下代码就省略了idex这个链接:htt://a.aidu.com//1IK-6oN16VMj62Ngd3P7JGA...

    2022-04-03 模块化设计 模块建房

  • ThinkPHP 5.1(60天成就PHP大牛线上培训班课)(视频+课件),百度网盘,阿里云盘下载

    这套课程来自PHP中文网的ThikPHP5.1(60天成就PHP大牛在线培训班)本课程属于适合基础学生的中级班。如果你是零基础的,你可以看看PHP工程师就业班或PHP第六期中文在线培训教程这两门课程从入门到高级。本课程更新至11章,需要完整版本h中文网下载20章。60天可以学会PHP编程?PHP你不会怀疑中文网的教学计划。PHP教程视频随机截图课程目录:ThikPHP5.1(60天成就PHP大牛线上培训班)大小3.45G│源码.zi├第10章前端页面与用户注册││10-1社区问答的前端页面_1.m4││10-2社区前端页面_2.m4│└10-3用户注册功能的初步实现.m4├第11章用户登录和验证││11-1验证注册信息.m4││11-2用户模型的基本设置.m4││11-3用户登录验证.m4│└11-4退出,防止重复登录.m4├第1章ThikPHP安装和操作过程││1Comoer安装ThikPHP5.m4│└2TP5的运行流程.m4├第2章ThikPHP配置技巧││2-1TP51配置概述.m4││2-2获取和设置配置.m4│└2-3使用助手函数配置方法.m4├第3章ThikPHP设计模式与Trait技术││3-1Comoer安装TP51_Wi版.m4││3-2PHP经典的设计模式.m4│└3-3Trait类代码复用.m4├第四章容器依赖于注入静态代理请求对象││4-1容器类Cotaier简介.m4││4-10Requet请求对象_2.m4││4-2自动依赖注入_1.m4││4-3自动依赖注入_2.m4││4-4将类绑定到容器中.m4││4-5将闭包绑定到容器中.m4││4-6Facade静态代理_1.m4││4-7Facade静态代理_2.m4││4-8Facade静态代理_3.m4│└4-9Requet请求对象_1.m4├第五章数据库和模型││5-1揭开数据库的连接方式.m4││5-2数据库的增删改查操作.m4│└5-3模型简介.m4├第6章模板变量与常用标签││6-1模板赋值与变量输出_1.m4││6-2模板赋值和变量输出_2.m4││6-3外部资源导入和格式输出.m4│└6-4循环判断和分页输出.m4├第7章模板继承和创建数据表││7-1知乎首页快速生成.m4││7-2模板布局.m4││7-3模板继承.m4│└7-4创建数据表.m4├第八章验证器││8-1验证器和静态代理.m4││8-1验证器和静态代理_tm.m4││8-2控制器验证.m4│└8-3独立验证.m4└第9章Peter陪你看手册│9-1Peter陪您看手册_1.m4│9-2Peter陪你看手册_2.m4│9-3Peter陪您看手册_3.m4└9-4Peter陪您看手册_4.m4相关下载点击下载...

    2022-04-03 模板验收规范及标准 模板网站

  • ThinkPHP 5实战PDF高清扫描版本|百度网盘下载

    作者:夏磊出版社:清华大学出版社格式:AZW3,DOCX,EPUB,MOBI,PDF,TXTThikPHP5实战试读:内容简介本书针对ThikPHP5进行编写,内容由浅入深,由局部到整体,以实用性为目标,系统地介绍ThikPHP框架的相关技术及其在We开发中的应用。本书分为18章,内容包括开发环境搭建、配置系统、路由、控制器、数据库操作层、模型层、视图、验证器、缓存、Seio和Cookie、命令行应用、开发调试、服务器部署、数据库设计、多人博客系统开发、图书管理系统开发、论坛系统开发与微信小程序商城系统开发。如果读者在阅读本书时遇到问题,还可以到Githu上提出问题获得解答。本书适合ThikPHP初学者、PHP应用开发人员,也适合作为高等院校和培训学校计算机相关专业的师生教学参考。夏磊,毕业于湖南工业大学网络工程专业;目前从事软件开发工作,精通PHP服务器脚本语言技术,善于把握与运用新技术,如LAMP平台下We软件的开发、软件架构、设计模式、JavaScrit、YII、Golag等;博客上有大量的We相关技术文章,深受读者好评;著有图书《ThikPHP实战》。前言PHP是一种通用开源脚本语言,开源、跨平台、易于使用,主要适用于We开发领域。MVC模式使得PHP在大型We项目开发中耦合性低、重用性高、可维护性高、有利于软件工程化管理。作为国内MVC框架中的佼佼者,ThikPHP是一个免费开源、快速、简单的、面向对象的、轻量级PHP开发框架,已经成长为国内最领先和最具影响力的We应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级网站的开发。ThikPHP5版本是一个颠覆和重构版本,采用全新的架构思想,引入了更多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载,支持comoer,并针对API开发做了大量的优化,包括路由、日志、异常、模型、数据库、模板引擎和验证等模块都已经重构,不适合原有ThikPHP3.2项目的升级,所以编写了本书。本书编写的目的是让读者能够系统地学习ThikPHP5框架。即使读者不了解MVC模式或者MVC框架,阅读本书也不会有太大的问题,并且学完本书后能基于ThikPHP5开发自己的项目。为了加强读者对内容的理解,每一章都有配套示例以及详尽的注释,便于读者理解和学习。大部分章节都会配有练习,进行针对性的训练。在本书的后半部分更是直接展示一个完整项目的开发流程,让读者可以在实践中学习。毕竟ldquo眼过千遍,不如手写一遍rdquo。本书示例代码针对上一版代码Githu单个仓库托管问题,本书实例代码已经改为组织托管,每个项目都会使用独立的仓库保存。所有的实例都可以在We开发中直接使用,省去了读者ldquo造轮子rdquo的过程,以专注于业务逻辑开发。对于本书内容有任何疑问或者在实际开发中遇到问题的读者可以在Githu上的iue中提出问题,作者会进行解答。本书仓库地址为htt://githu.com/thikh5-iactio。如果下载有问题,请联系ookaga@163.com,邮件主题为ldquoThikPHP5实战rdquo。本书开发环境操作系统:Widow10专业版We服务器:PHP自带PHP版本:PHP7.2.5(NTS)(ThikPHP5要求PHP版本大于等于5.6即可)IDE:PHPStorm2018.1ThikPHP版本:ThikPHP5.0.19(本书提到的ThikPHP5即指这个版本)浏览器:GoogleChrome66(更高的版本也没有问题)本书适合读者●We开发爱好者●拥有PHP基础想深入学习PHP大型项目开发的人员●大中专院校以及培训机构的讲师●初/中级网站开发人员著者2019年8月第1章搭建开发环境1.1下载开发工具/软件ldquo工欲善其事,必先利其器rdquo。为了给后续的学习打下基础,避免由于环境不一致而导致的问题,本节将简述开发环境。下面的链接仅供参考,如果有变动,请到相关网站查找并下载。(1)下载PHP7.2.5,下载链接为htt://widow.h.et/dowload/releae/h-7.2.5-t-Wi32-VC15-x64.zi。(2)下载PHPStorm,下载链接为htt://www.jetrai.com/htorm/dowload/#ectio=widow。(3)下载Chrome浏览器,下载链接为htt://rj.aidu.com/oft/detail/14744.html。(4)下载ThikPHP5.0.19核心版,下载链接为htt://www.thikh.c/doate/dowload/id/1148.html。(5)将下载的PHP解压之后,添加PHP目录到操作系统的PATH环境变量中。1.2HelloWorld几乎所有的编程语言入门都是从HelloWorld开始的,本书也不例外。解压ThikPHP5压缩包之后打开PHPStorm,如图1-1所示。图1-1点击Oe菜单打开刚才解压的目录,打开之后会进入IDE主界面,如图1-2所示。图1-2点击图1-2左下角画红框的按钮会打开扩展菜单,然后点击Termial打开控制台,如图1-3所示。图1-3输入ldquoh-Slocalhot:8080-tulicrdquo,如图1-4所示。图1-4如果命令执行错误,请检查PHP环境变量是否配置正确。命令参数解释:●-S:启动开发服务器(PHP5.4+自带)并设置监听地址。●-t:设置We根目录,ThikPHP对安全的要求是We目录和PHP源代码分离,故将ulic目录单独作为We目录,源码不在该目录中,有效地提升了服务器的安全性。打开Chrome浏览器,输入ldquohtt://localhot:8080rdquo,输出如图1-5所示。图1-5恭喜你,本书学习的第一步已经完成。如果看不到上面的输出,请到Githu上面提iue,作者会耐心解答。第2章配置系统目前大部分框架的习惯都是ldquo配置大于编码rdquo,ThikPHP5也不例外。配置优先的方式可以让我们只修改配置部分,不需要修改程序源代码,有效减少了程序出错的可能。ThikPHP5默认使用PHP数组方式定义配置,支持惯例配置、公共配置、模块配置、扩展配置、场景配置、环境变量配置和动态配置。ThikPHP5的配置非常灵活,举一个简单的例子:假设你在家里、公司两个不同的地点开发同一个项目,通过配置a_tatu,系统就会自动加载不同环境下的配置文件,实现ldquo无缝开发rdquo。怎么样?是不是很期待呢?那就跟我一起来学习一下ThikPHP5的配置吧!2.1配置的路径ThikPHP5默认配置目录为alicatio目录,该目录(不包括子目录)下的文件为全局配置,整个程序都可以访问到。如果是模块(如idex模块)下的配置,就只对该模块生效。如果需要将alicatio/cofig.h的配置按照组件拆分(如拆分为数据库配置、缓存配置等)为多个文件,那么请放在alicatio/extra目录下,文件名为键名,文件直接返回数组即可。将配置文件拆分有利于规范项目文件结构,尽量做到单一职责,一个配置文件只负责一个组件/功能。2.2配置的格式ThikPHP5默认的格式为PHP数组,这也是ThikPHP3的做法,不过需要注意的是ThikPHP5推荐数组键名使用小写,而ThikPHP3的键名是大写。键值支持PHP所有数据类型,包括简单类型(字符串、数字、布尔值等)以及嵌套数组等。2.3配置的加载顺序在本章开始的时候提到过ThikPHP5支持多种配置,这就会带来一个问题,即配置的加载顺序如何?如果不弄清楚这个问题,在实际开发中可能会出现由于配置冲突、覆盖之类的问题而一时找不到问题出在哪里。ThikPHP5配置加载顺序如下:(1)框架配置(框架自带的默认配置)。(2)全局配置(alicatio/cofig.h)。(3)扩展配置(alicatio/extra目录下的配置文件)。(4)场景配置(上文提到的a_tatu常量,如定义a_tatu为comay,框架就会加载alicatio/comay.h配置)。(5)模块配置(alicatio/模块名/cofig.h,支持a_tatu常量,如第4点的a_tatu则会加载alicatio/模块名/comay.h配置)。(6)动态配置(使用Cofig类进行操作)。可以看到优先级是从上到下越来越低,希望读者能记住配置的加载顺序,这个顺序在开发中会带来很大的方便。2.4配置的读写与示例使用配置的最终目的是方便开发,也就是在合适的时候需要读写配置,比如实例化数据库的时候需要读取dataae配置。ThikPHP通过Cofig::get和Cofig::et读写配置。下面我们来看配置的一个示例,这个示例将完成以下内容的验证:●惯例配置的加载●全局配置的加载●扩展配置的加载●场景配置的加载●模块配置的加载●动态配置的加载与读写步骤说明如下:(1)解压缩ThikPHP5核心版。(2)运行PHP服务器,启动命令参照1.2节的相关内容。(3)编辑alicatio/idex/cotroller/Idex.h:(4)访问htt://localhot:8080,可以看到输出了一段JSON,这就是ThikPHP的默认配置(惯例配置)。(5)新建alicatio/extra/amq.h文件(如果extra目录不存在,就手动创建)。(6)刷新页面,可以看到有刚才配置的amq配置。(7)将alicatio/cofig.h的a_tatu更改为home。(8)添加alicatio/home.h。(9)刷新页面,可以看到amq的输出已经变成home.h中定义的内容。(10)添加alicatio/idex/cofig.h。(11)刷新页面,发现amq又发生了变化,与上面定义的文件一致。(12)添加alicatio/idex/home.h。(13)继续刷新页面,发现amq又发生了变化,与上面定义的文件一致。(14)编辑alicatio/idex/cotroller/Idex.h,添加rw方法测试配置的读写。(15)访问htt://localhot:8080/idex/idex/rw,可以看到如下输出:NULLtrig(3)"111"2.5小结经过本章的学习与示例项目的演示,验证了我们本章学习的所有知识,希望大家能够全部掌握,为后续的学习打下基础。本章代码地址:htt://githu.com/thikh5-iactio/cofig-demo。第3章路由ThikPHP5采用的默认规则是PATHINFO模式,也就是如下的URL形式:htt://erver/module/cotroller/actio/aram/value/与ThikPHP3最大的不同是ThikPHP5的路由更加灵活,支持路由到模块的控制器/操作、控制器类的方法、闭包函数和重定向地址,甚至是任何类库的方法。需要注意的是,ThikPHP5的路由是针对应用而不是模块,所以路由是针对某个应用下的所有模块。如果需要按照模块定义路由,就需要自定义如下入口文件:3.1路由模式ThikPHP5的路由通过url_route_o和url_route_mut来控制路由行为。根据这两个配置,存在三种路由模式:普通模式、混合模式和强制模式。3.1.1普通模式禁用路由,系统按照PATHINFO模式解析请求:'url_route_o'=gtfale,3.1.2混合模式系统按照PATHINFO模式+路由定义解析请求:'url_route_o'=gttrue,'url_route_mut'=gtfale,若定义了路由,则执行路由,否则按照PATHINFO解析。3.1.3强制模式该模式下所有请求必须设置路由,否则抛出异常:'url_route_o'=gttrue,'url_route_mut'=gttrue,3.2路由定义3.2.1编码定义顾名思义,就是使用硬编码的形式进行定义(区别于配置式定义)。一般路由定义在alicatio/route.h文件中,注册形式如下:Route::rule('路由表达式','路由地址','请求方法','路由条件','变量规则')例如,下面的注册代码将会使访问ldquo/ew/rdquo新闻ID的链接路由到idex模块的New控制器的read方法:Route::rule('ew/:id','idex/New/read')由于ThikPHP5的路由是针对所有模块的,所以定义的时候需要加上模块名。ThikPHP5支持GET、POST、PUT、DELETE以及任意(*)请求方法定义。系统内置以下方法来简化路由定义:Route::get('ew/:id','New/read')//GETRoute::ot('ew/:id','New/udate')//POSTRoute::ut('ew/:id','New/udate')//PUTRoute::delete('ew/:id','New/delete')//DELETERoute::ay('ew/:id','New/read')//任意请求方法如果一个路由可以同时支持多种请求方法,可以使用ldquo|rdquo符号,意思和ldquo或rdquo一致。例如,有如下定义:Route::rule('ew/:id','idex/New/read','GET|POST')则该路由允许POST和GET请求方法访问。3.2.2配置定义通过返回数组来定义路由,而且可以批量定义,简化代码编写量。该定义方式和ThikPHP3很相似,但是不支持正则定义。例如:'idex/idex/idex','ew/:id'=gt'idex/New/read',//变量定义'ew/[:id]'=gt'idex/ew/read',//可选变量定义'ew/:id$'=gt'idex/ew/read',//完全匹配'uer/:id'=gt'idex/uer/how?tatu=1',//传递隐式参数//限制变量类型'ot/:id'=gt['idex/ot/how',['ext'=gt'html'],['id'=gt'\d{4}']],]3.3路由条件路由条件的意思是即使当前的URL满足了路由定义的地址,也可以通过控制路由条件来决定允许/拒绝该请求,提升了路由的灵活性。可用的路由参数如表3-1所示。表3-1路由参数示例:3.4路由地址路由地址就是路由匹配成功之后需要执行的操作。ThikPHP5支持以下几种方式:●路由到模块/控制器●重定向●路由到控制器方法●路由到类静态方法●路由到闭包函数3.4.1路由到模块/控制器'ew/:id'=gt'idex/ew/read'控制器定义如下:控制器支持无限级设置,例如下面的路由定义将会执行a\idex\cotroller\ite\ew控制器的read方法:'ew/:id'=gt'idex/ite.ew/read'3.4.2重定向重定向和路由的区别是,重定向会在浏览器中产生一次301或302响应,而路由是浏览器无感知的。重定向以ldquo/rdquo(站内,请特别注意不要忘记斜杠)或ldquohttrdquo或ldquohttrdquo开始,站内跳转如下:'ew/:id'=gt'/ew/how/:id.html'访问/ew/id链接时,浏览器将会产生301响应,跳转到/ew/how/id.html地址。站外跳转如下:'ew/:id'=gt'htt://www.examle.com/ew/:id.html'3.4.3路由到控制器方法这种方式看起来似乎和第一种是一样的,但是不需要去解析模块/控制器/操作,同时也不会去初始化模块。例如,下面的定义将会执行idex模块的ew控制器的read方法:'ew/:id'=gt'@idex/ew/read'由于是直接路由到控制器方法,因此获取当前模块名、控制器名、操作名会报错,因为ThikPHP没有初始化这些变量。3.4.4路由到类静态方法此类路由支持任何类的静态方法,包括控制器。例如,下面的定义将会路由到idex模块中New控制器的静态read方法:'ew/:id'=gt'a\idex\cotroller\New::read'3.4.5路由到闭包此类路由直接在alicatio/route.h中定义,典型的例子如下:Route::get('ew/:id',fuctio($id){retur'访问'.$id.'的新闻'})3.5Retful路由3.5.1普通资源Retful路由的核心是通过标准HTTP方法来操作/获取数据,所以设计路由的时候尽量以请求资源为核心。ThikPHP5对Retful路由的支持比较完善,通过以下两种方式都可以定义Retful路由:(1)编码定义Route::reource('ew','idex/ew')(2)配置定义以ew资源为例,ThikPHP5会自动注册7个路由规则,对应控制器不同的操作方法,如表3-2所示。表3-2路由规则说明需要注意的是,Retful标准中一般有以下几种请求:●GET:获取单个资源或资源列表,返回单个JSON或列表JSON。●POST:创建资源,返回创建后的JSON。●PUT:编辑资源,返回编辑后的JSON。●DELETE:删除资源,返回204状态码和空响应体。对资源路由设计有深入兴趣的读者可以学习慕课网上的视频《RetfulAPI实战》(htt://www.imooc.com/lear/811)。3.5.2嵌套资源有时候资源是有上下级关系的,比如新闻的评论依赖于新闻,这时就需要用到嵌套路由定义。ThikPHP5对此也是支持的,例如:3.6路由分组如果同一个控制器的操作很多,在需要定义多个路由的情况下,可以将此类路由合并到一个分组,提高路由匹配效率。●启用路由分组之前的定义:●启用路由分组之后的定义:在路由比较多的时候可以适当地采取该方式定义路由。当分组访问到不存在的路由,例如定义了ew分组但是没有定义delete方法,这时可以给ew分组新增一个__mi__路由来捕获此类访问。3.7全局404路由与分组路由404类似,全局404路由也用来处理访问路由不存在的情况,不过作用域大一些,会捕获该应用所有的404。例如:当访问到404时,系统将会执行idex控制器的otfoud方法。3.8路由绑定如果当前入口文件只需要使用idex这个模块,就可以绑定路由来简化路由定义,否则每次都需要在路由地址声明完整路径(包括模块名)。在入口文件中使用以下代码即可完成绑定:Route::id('idex')绑定之后可以简化路由定义,例如以下代码就省略了idex这个试读结束[说明:试读内容隐藏了图片]点击下载...

    2022-04-02 模块化设计 模块建房

学习考试资源网-58edu © All Rights Reserved.  湘ICP备12013312号-3 
站点地图| 免责说明| 合作请联系| 友情链接:学习乐园