下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922
读书 > Web开发 >PHP > PHP MVC 开发实战(国内首部全面介绍PHP MVC开发模式实战大全,一本书PHP建站全掌握)

PHP MVC 开发实战(国内首部全面介绍PHP MVC开发模式实战大全,一本书PHP建站全掌握)

综合评级:★★★★★

定价:98.80

作者:李开涌 编著

出版社:机械工业出版社

出版日期:2013年7月

页数:600

字数:961000

ISBN:9787111428527

书籍介绍

  MVC是一种先进的开发模式,能够解决团队开发之间协同配合的问题,使得网站各部件以更高的效率运行。MVC模式将网站分为3大部件,分别为模型、视图、控制器。这3大部件各自分离,但又相互依存,最终形成了一个容易维护、容易扩展、高效运行的网站平台。对于后台程序员,借助于MVC模式就可以更加专注于功能的实现,而不需要太多地涉及页面与前端。这种分工协作的最终目的是提高开发效率及项目质量。对于个人项目,也许在其他编程技术(例如Java、Python)中,MVC模式并没有优势,但在PHP中,由于支持混合编程,所以使用MVC模式进行编程,能显著提高工作效率。

  本书是国内第一本专门介绍PHP MVC开发模式的图书,全书围绕MVC实现思路进行细致的讲解。通过MVC编程模式,以点带面,全面深入探讨PHP核心技术。同时,本书也是一本深入介绍利用PHP构建高性能网站的图书,通过MVC的数据库中间件,可以轻松实现网站群体、读写分离等高级应用,本书在此基础上还会进一步介绍当前流行的NoSQL应用、全文搜索应用等。最后,作者通过一个自行编写的MVC框架,引导读者开发属于自己的PHP MVC框架。

  本书内容通俗易懂、示例形象,适合广大的Web从业人员阅读。由于PHP非常简单、易用,所以就算是未接触过PHP的读者或者初学者,只要掌握了基础的面向对象编程思想就可以轻松上手。

相关课程
目录

前言

基 础 篇

 第1章 开发前准备

 第2章 面向对象基础

 第3章 类的高级特性

实 战 篇

 第4章 php MVC发展状况

 第5章 ThinkPHP开发入门

 第6章 ThinkPHP开发MVC应用

 第7章 ThinkPHP的数据库操作

 第8章 安全与调试

 第9章 ThinkPHP功能库

 第10章 网站静态化

 第11章 ThinkPHP扩展

 第12章 SOAP分布式开发

 第13章 整合Smarty模板引擎

 第14章 整合Coreseek全文搜索服务

 第15章 使用mongodb

 第16章 Redis实战

项 目 篇

 第17章 开发论坛系统

 第18章 开发自己的MVC框架

附录

 附录A 让Nginx支持Pathinfo模式

 附录B 配置团队开发环境

前言

前 言

我的编程之路

我本身是学习动画设计的,一次偶然的机会,接触到了计算机编程。记得那是2003年的时候,我刚拥有自己的第一台计算机,通过老师的介绍,学会了上网。那年暑假,在广州的计算机城购买了一套洪恩教育软件,认识了网页编程。那时的网页编程技术主流的是ASP,由于ASP简单、易学,很快我就使用ASP技术构建了我的第一个网站(名称叫木棉休闲站,现已关闭),我的网站主要介绍天文知识,由于那时的ASP空间很贵,而且多数都不支持FSO组件,所以在实现图片上传时都是原图上传的(没有压缩等前期处理),随着访问人气的越来越高(大约30个请求量),很快网站就挂了。

后来我应聘到一家楼盘做网络管理员,并且负责文案录入,期间接触到了Apache服务器。我发现其网站后台也是使用Web设计的,可以对图片进行前期的压缩、裁剪、加水印等操作,而且单一服务器竟然轻松应对1000个以上请求量,而对外提供查询服务的正是PHP脚本。于是每到周末,我就到广州购书中心苦寻有关PHP的书籍,但是那时的PHP资料非常少,多数都是关于JSP以及ASP的。

2004年初,随着国内网络的普及,很快网络上就活跃了一批开源爱好者,他们乐意将自己的学习成果分享到网络上,也就从那时起,我接触到了PHP。由于早期的PHP在语法上与C很相似,所以我很快就上手了(在学校时我业余学习过C语言)。大约学习了3个月,PHP的常见功能几乎能够运用自如了,与很多初学者一样,感觉PHP原来这么简单。

随着Web 2.0的到来,那时大兴Flash动画之风,我花了9个月时间使用PHP+Flash技术重写了木棉网(即前木棉休闲站),提供了在线制作大头贴的功能,并且允许将大头贴发布到论坛及QQ空间上,从而有效地积累了一批用户。也正因为这些经历,让我意识到了设计模式的重要性。

2006年,为了给木棉网添加一个讨论区,我花了3000元钱购买了一套基于ASP.NET的论坛程序。论坛是搭建起来了,但是因为PHP与C#之间的差异性,论坛并没有很好地为用户提供服务(例如账号不同步,帖子内容不能与文章内容交互等)。于是那年5月,我决定推倒重来,苦心学习C#,而这样做的目的仅仅是为了让系统账号同步。

由于专注于学习,并没有多余的精力管理网站,所以很快网站人气就下来了,直到2007年,遗憾地关闭了网站。在学习ASP.NET编程的这段日子里,我重新审视了PHP开发模式,并且将ASP.NET中广泛应用的类工厂设计模式引入到了PHP开发中。结合Smarty模板引擎,能够很好地实现分层设计思路,这成为我后来开发PHP产品的主要设计模式。

2009年暑假,我当时参与设计的产品是基于Windows CE的图书管理系统,终端界面使用C#技术,而后台就是使用熟悉的LAMP组合。其中开发模式使用 Zend Framework编程框架,我主要的工作就是编写SOAP服务,当时首选的技术方案是ASP.NET,因为在ASP.NET中,创建SOAP服务是最简单及快速的方式,但考虑到成本及后期扩展等原因,最终放弃了该方案,而是使用了Zend Framework的SOAP功能组件。也就从那时起,我就对PHP MVC开发模式产生了浓厚的兴趣,我发现PHP MVC模式与之前经常采用的类工厂模式非常类似,但MVC分层更加彻底及明确,而且MVC框架都是单一入口的,所以无论是在调试还是后期维护方面,都为程序员提供了极高的灵活性。为此我试图寻找一款更加适合在中文环境下使用的MVC框架(Zend Framework1.x对中文支持不好),所以认识了国内比较早的FCS(即ThinkPHP早期版本)。

一转眼就过去几年了,相信阅读本书的读者与我一样,都是出于对编程的热爱才自学PHP的。每个人从自学到所谓的高手,都会经历着一翻波折,有些是必要的,有些则是完全没必要的。为此我将个人的编程经历写出来与读者分享,希望能够帮助读者从中找到适合自己的编程道路。总而言之,编程是枯燥的,但也是快乐的,当你在编程中把原本复杂的问题一一解开,喜悦的心情不用我多言,相信读者也能够感受得到。

目前我主要从事移动开发及云技术开发,参与开发的商业产品有“丽物收购站管理系统”、“海晨酒店管理系统”,这些产品都是终端采用C#,后台使用LAMP组合。此外还开发了一个Windows Phone休闲游戏。虽然工作辛苦,但能够看着自己的代码服务于社会,这是莫大的鼓励。

本书的写作背景

当前市面上很多PHP图书,都是以介绍PHP基础为重点的,例如PHP语法、函数等。我身边的一些朋友,在阅读PHP图书时,都会发出“书怎么那么厚?”的疑问。这直接给读者PHP很高深、很难学的印象。事实上,PHP是一门简单易懂的语言,它的函数命名方式非常形象化,只需要具备一点英文基础,就能够读懂其含义。借助于主流的IDE工具,就算没有计算机编程基础的读者也能够迅速上手,所以说到底PHP没有那么复杂。

当然,并不是说PHP的基础不用学,事实上任何的计算机编程技术,入门的课程还是需要牢固掌握的,例如语法、结构、运行原理等。但是,由于PHP开源及自由的特性,很多开发者,特别是初学者都没有开发模式的概念,导致编写的代码在后期维护时连自己都不认识。造成这一结果除了前面提到的因素外,还由于现在的PHP图书极少介绍PHP的开发模式。本书内容由始至终,一直围绕着PHP MVC展开,利用高效的MVC开发模式,彻底告别过去“面条式”的代码编写形式。

由于PHP全面开源的特性,所以现在国内外已经出现了很多针对MVC编程的PHP框架,选择哪一套框架作为开发平台,这对于PHP开发人员来讲又是一个极具考验的问题。在PHP中,虽然也有官方的MVC框架(Zend Framework),但其影响力远没有微软的ASP.NET MVC以及Java的SSH(Struts+Spring+Hibernate)那么大。所以在PHP中实现MVC编程,小项目通常使用现有的开源框架(包括Zend Framework)实现;而大型项目通常采用自行编写MVC框架的方式实现(或者在现在的开源框架上进行二次开发),本书为了兼顾这两种情况,在内容安排上均有涉及,相信读者能够从中找到适合自己的MVC框架。

Zend Framework虽然功能强大,是PHP MVC框架中最具代表的框架之一,很多大型的网站都是基于Zend Framework构建的,但是由于种种原因,Zend Framework在国内应用得并不广泛,加上Zend Framework的扩展是以组件化的方式提供的,而一些第三方功能组件在国内并不能够正常使用,所以本书并没有以Zend Framework作为PHP MVC平台,而是使用国内人气比较高的ThinkPHP作为MVC平台,读者在通过系统的学习后,不仅可以对现有的开源MVC框架轻松上手,而且还能动手编写一个自己的MVC框架。

ThinkPHP是国内比较早也是比较成熟的PHP MVC框架,在实现MVC编程方面,借鉴了大量先进的开源实现库思路,例如Struts、JSP Tag、Smarty等。其清晰的文件结构、高效及敏捷的编程方式,能够让开发者迅速上手。同时基于其灵活的扩展机制,使得项目的功能得到无限扩展。本书将重点对扩展的实现机制进行介绍,例如驱动扩展、类库扩展等,这些扩展的实现思路不仅适用于ThinkPHP,同样适用于其他PHP MVC框架。

本书适合读者群

? 各类型的PHP程序员。

? 系统架构师。

? 项目架构师。

? 开源技术爱好者。

? 广大的Web开发从业人员。

? 计算机专业的学生。

本书主要内容

本书共分为3大部分,分别为基础篇、实战篇、项目篇。在内容组织上尽量以循序渐进的方式深入地讲解每个知识要领。初级的PHP程序员在阅读本书内容时,由于引用示例形象不会感觉生搬硬套、敷衍应付;高级的PHP程序员在阅读本书内容时,也会感受到作者清晰的实现思路,从中获益。本书的内容组织如下。

第1章主要介绍了PHP与MVC设计模式的关系,并且介绍了在实验环境下及生产环境下的PHP MVC运行环境搭建过程。由于MVC设计模式的本质是解决团队开发所带来的分工问题,所以本章后面还加入了团队开发的环境配置,帮助每位读者建立起良好的团队协作的概念。

第2、3章主要介绍了PHP的类结构。由于后面我们还会重点介绍MVC扩展的实现,以及编写自己的MVC框架,而要学习这些课程,深入掌握PHP的面向对象编程是必要的。所以这里安排了2章针对PHP类结构的内容,帮助读者加深对类的认识。

第4章主要介绍了在PHP中主流的MVC框架发展状况,并通过简单的示例分别演示了这些框架的简单使用,帮助读者初步认识PHP MVC编程状况。

第5~9章主要介绍ThinkPHP MVC框架的使用。这5章内容中,作者通过简单、形象的示例,充分地讲解了ThinkPHP在实现MVC编程中的灵活及高效,例如MVC项目部署、数据库CURD操作、功能类库的使用等。此外,为了增强应用的稳定性,还介绍了第三方高效的开源库,例如Nginx文件上传、HttpSqs消息队列等。

第10、11章主要介绍了ThinkPHP的扩展机制。作者将会详细介绍ThinkPHP所支持的几种类型扩展,例如类库扩展、驱动扩展、模型扩展、视图扩展、行为扩展、缓存扩展等。

第12章将重点介绍PHP实现SOAP服务的过程,使用SOAP服务,就能够实现高效的业务整合。

第13章主要是为了兼顾传统的PHP程序员更好地利用ThinkPHP的模型与控制器机制,实现更灵活的MVC定制、从而将Smarty模板引擎无缝地移植到ThinkPHP中。

第14~16章是专门为构建高性能网站而撰写的。现在的网站对性能是非常苛刻的,如果你的网站正在被性能所困扰,建议阅读这3章。

第17章是本书内容的浓缩部分,作者通过一个论坛系统项目,详细回顾了本书前面所介绍的内容精华,帮助读者巩固所学的知识。

第18章再次突出“PHP MVC开发”这个主题,通过本章内容读者将由MVC框架的使用者变成MVC框架的开发者。作者将通过一个简单的MVC框架,帮助读者了解开发一个MVC框架所需要的技术及思路,从而有效提高PHP开发技能及组织能力。

致谢

由于PHP开源的特性,尽管我使用PHP MVC开发网站已有多年,但将庞大的碎片经验整合为一本厚达几百页的书,其中辛酸、个中滋味非三言两语能够道破的。最后能够面世,这里还要感谢一些人。

首先感谢女朋友的鼓励与支持,无数次的代码调试,烦躁孤寂的夜晚,QQ的那头总能感受到关爱,这是我勇于克服障碍的原动力。其次还要多谢家里人,是他们的宽容,让我能够以安静的心调试每一行代码。感谢华软吴呈老师耐心的指导,感谢认识我的同学。最后感谢时静等编辑给予我的帮助。

勘误及支持

尽管我已经花了很多时间及精力,对书中的文字、代码、图片等进行了细致核对,但由于能力所限,书中难免会出现纰漏。在此,恳请读者批评指正,我的邮件地址是:kf@86055.com

为了方便读者更好地学习,我还创建了本书的专属网站,感兴趣的读者可去浏览,网址是:http://beauty-soft.net/blog/ceiba

热门图书
推荐新闻
技术文库
论坛推荐