# 为什么写这本书?
鉴于世面上没有一本关于ThinkPHP的书,而ThinkPHP的新手热情不断,但是总是问题不断,学习效率却不高的情况。老杨决定写一本书,来带领新人们走入ThinkPHP的殿堂。
同时对于很多人对ThinkPHP的开源问题比较关心。我会讲解一些ThinkPHP开源运动。
我觉得,写书总结一下所学所用,对自己对大家都有好处。另外,作为一个过来人的程序员,我会分享我在成长中所学到的,以及亲身体会和感想。
# 本书特色
基于markdown语言,在看云平台编写完成。
全书附带一个完整项目源码及演示、案列也是开放于git上的。不光讲了ThinkPHP3的知识点,也讲了一些编程思想。讲了ThinkPHP流行的应用场景,还讲了ThinkPHP流行的应用场景。讲了一些PHP新手如何提升的知识。
# 本书适合于什么样的人看?
本书适合学习了PHP基础,想学习一个PHP框架提高开发效率的新手,同时也适合那些对ThinkPHP有所了解,但不是完全精通的半吊子,对于完全精通的人,可以直接看应用示列部分,了解ThinkPHP处理常见的应用场景,和看附录增加一些ThinkPHP常见问题先关的见识。
# 学习ThinkPHP前要了解的知识
## PHP是什么?
用老杨的话说,“PHP是一门弱类型的脚本语言,主要用于web开发,使用率广、新手入门容易,有很大发展前途”。
60%的网站都在采用PHP开发,90%以上的Web 2.0应用是采用PHP技术开发完成的。全国排名前十的网站,其中有八家都在应用着PHP技术,包括:腾讯、新浪、百度、淘宝、搜狐、网易等。国外的Facebook,YouTube,WordPress等。
## ThinkPHP是什么?
ThinkPHP是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架。
最新的ThinkPHP为WEB应用开发提供了强有力的支持,这些支持包括:
- MVC支持-基于多层模型(M)、视图(V)、控制器(C)的设计模式
- ORM支持-提供了全功能和高性能的ORM支持,支持大部分数据库
- 模板引擎支持-内置了高性能的基于标签库和XML标签的编译型模板引擎
- RESTFul支持-通过REST控制器扩展提供了RESTFul支持,为你打造全新的URL设计和访问体验
- 云平台支持-提供了对新浪SAE平台和百度BAE平台的强力支持,具备“横跨性”和“平滑性”,支持本地化开发和调试以及部署切换,让你轻松过渡,打造全新的开发体验。
- CLI支持-支持基于命令行的应用开发
- RPC支持-提供包括PHPRpc、HProse、jsonRPC和Yar在内远程调用解决方案
- MongoDb支持-提供NoSQL的支持
- 缓存支持-提供了包括文件、数据库、Memcache、Xcache、Redis等多种类型的缓存支持
框架在系统层面提供了众多的安全特性,确保你的网站和产品安全无忧。这些特性包括:
- XSS安全防护
- 表单自动验证
- 强制数据类型转换
- 输入数据过滤
- 表单令牌验证
- 防SQL注入
- 图像上传检测
## ThinkPHP能做什么?
PHP能做到的ThinkPHP都能做到。从博客、企业站到大型门户、商城、社交网站、企业内部人员管理平台,还有一些二次开发平台。
我个人接触过的就有商城、SNS、高校门户、企业内部药品生产系统。当然还有我们万能的OneThink。
# 最快的学习方法
带着问题去学,学后立即实践。将知识理解后存在脑子里。
# 本书里能学到什么?
- 如何正确的用最少的ThinkPHP代码实现想要的功能
- 会有一些个人理解的编程思想
- 理解ThinkPHP的思想-“大道至简,开发由我”
- 如何从零开发一个网站,和如何进行网站性能优化,测试。正确的学以致用。
# 本书的规范
本书用markdown文本格式编写。一些引用名人名言会用 像下面的显示。
> 这是老杨说的话。
然后 会有主次分明的一到五级的标题。这个从目录可以看出来。
会有*重点*字词,也会有注解。 有序和无序列表。
**ThinkPHP**本书后面会简称**TP**。
本书的所有示列代码均会在<http://yangweijie.cn/index/index/single.html?name=%E7%94%B5%E5%BD%B1%E8%AE%B0%E5%BF%86>上有演示。
# 联系方式
为了方便大家讨论书的问题,我建了一个qq群。大家可以手机qq扫码加入。
![document/2015-09-02/55e6a9f32f19a](http://box.kancloud.cn/document_2015-09-02_55e6a9f32f19a.jpg)
也可以查找qq群号:276308076,申请加入。
- 序
- 前言
- 内容简介
- 目录
- 基础知识
- 起步
- 控制器
- 模型
- 模板
- 命名空间
- 进阶知识
- 路由
- 配置
- 缓存
- 权限
- 扩展
- 国际化
- 安全
- 单元测试
- 拿来主义
- 调试方法
- 调试的步骤
- 调试工具
- 显示trace信息
- 开启调试和关闭调试的区别
- netbeans+xdebug
- Socketlog
- PHP常见错误
- 小黄鸭调试法,每个程序员都要知道的
- 应用场景
- 第三方登录
- 图片处理
- 博客
- SAE
- REST实践
- Cli
- ajax分页
- barcode条形码
- excel
- 发邮件
- 汉字转全拼和首字母,支持带声调
- 中文分词
- 浏览器useragent解析
- freelog项目实战
- 需求分析
- 数据库设计
- 编码实践
- 前端实现
- rest接口
- 文章发布
- 文件上传
- 视频播放
- 音乐播放
- 图片幻灯片展示
- 注册和登录
- 个人资料更新
- 第三方登录的使用
- 后台
- 微信的开发
- 首页及个人主页
- 列表
- 归档
- 搜索
- 分页
- 总结经验
- 自我提升
- 进行小项目的锻炼
- 对现有轮子的重构和移植
- 写技术博客
- 制作视频教程
- 学习PHP的知识和新特性
- 和同行直接沟通、交流
- 学好英语,走向国际
- 如何参与
- 浏览官网和极思维还有看云
- 回答ThinkPHP新手的问题
- 尝试发现ThinkPHP的bug,告诉官方人员或者push request
- 开发能提高效率的ThinkPHP工具
- 尝试翻译官方文档
- 帮新手入门
- 创造基于ThinkPHP的产品,进行连带推广
- 展望未来
- OneThink
- ThinkPHP4
- 附录