# 為什么寫這本書?
鑒于世面上沒有一本關于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掃碼加入。

也可以查找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
- 附錄