# :-: 調試環境的搭建
項目的編寫過程中,無時不刻都會有bug存在,掌握一門調試bug的技巧則可以讓你事半功倍,更高效方便的定位到bug的位置所在,其中最方便的應該要數斷點調試方法了,幾乎編寫任何一門語言都需要用的一項技術,他可以在指定的代碼段打上標記(專業術語叫斷點),在代碼運行到指定位置時停下來,通過手動控制,讓代碼一行一行執行,方便監控代碼中各個變量的變化
這里我們介紹phpstrom如何在使用中使用斷點調試,這個技術對我們后面的學習和開發尤為重要,包括學習ithink的源碼,編寫自己的應用等等,所以大家務必熟練掌握斷點調試的技巧
* 安裝phpstrom,參考 [phpstrom安裝](https://jingyan.baidu.com/article/e3c78d64b72df63c4c85f5fd.html)
* 安裝xdebug,參考 [xdebug安裝](https://www.cnblogs.com/imayanlong/p/6368882.html)
重啟apache,查看phpinfo();
查找xdebug,這樣說明成功

# :-: 修改 php.ini 配置
>[success]
> ### 這段配置文件復制到 php.ini 的最下部分
> ### 路徑配置根據自己情況修改
> [XDebug]
> zend_extension="D:\phpStudy\php\php-7.0.12-nts\ext\php_xdebug.dll"
> xdebug.profiler_output_dir="D:\phpStudy\tmp\xdebug"
> xdebug.trace_output_dir="D:\phpStudy\tmp\xdebug"
> xdebug.remote_enable = On
> xdebug.remote_handler = dbgp
> xdebug.remote_host= localhost
> xdebug.remote_port = 9000
> xdebug.remote_autostart= 1
> xdebug.idekey = PHPSTORM
>[danger]
>## 需要注意的是 remote_port 默認是 9000,可能會和nginx沖突
>## 如果你使用的nginx,那么將這個端口修改為其他未占用端口
>## 這里修改后將phpstrom里設置里對應的端口也改為一樣即可

# :-: 測試
## 上面步驟完成后重啟web服務器,打開phpstrom,在項目里建一個測試文件
*****
> ## 打上斷點
> 
*****
> ## 確保調試模式已經打開
> 
*****
> ## 確保Break as first line PHP scrips 選項未被選中
>
*****
> ## 瀏覽器訪問這個頁面
> 如果你看到這個景象,表明環境已經搭建成功
> 點擊下圖圈起來的綠色三角按鈕讓請求通過
> 
- 序言
- 圖片預覽
- 詮釋高效開發
- 提問的智慧
- GIT命令參考
- 安裝composer
- 斷點調試技巧
- 調試環境的搭建
- 調試工具的使用及技巧
- 前置基礎-TP底層講解
- 理解編程的抽象
- 耦合與解耦
- 自動加載
- 反射類
- 控制反轉(IOC)和依賴注入(DI)
- iThink 自定義依賴注入的實現
- 常用設計模式
- SPL標準庫
- 行為-鉤子-插件
- AOP-面向切面
- RBAC和Auth類的本質
- 安裝iThink
- 環境要求
- 代碼下載與環境配置
- 執行安裝
- 體驗測試模塊
- apache配置
- nginx配置
- 系統架構詳解
- 目錄詳解
- 執行流程圖
- 數據字典
- RBAC 權限管理架構
- 系統分層詳解
- 控制器層(controller)
- 邏輯層(logic)
- 視圖層(view)
- 模型層(model)
- 服務層(service)
- 應用包架構詳解
- 目錄結構
- 開發規范
- 數據庫規范
- 編碼規范
- 功能設計原則與規范
- 后臺功能詳解
- 基礎功能
- RBAC + Auth 權限機制
- 應用化功能機制
- 代碼生成器(重要)
- 應用骨架代碼生成
- 數據表 CURD 代碼生成
- 頁面構造器(重要)
- 通用元素構造器
- 表格元素構造器
- 搜索表單元素構造器
- 表單元素構造
- 閉包事物構造器
- 應用的開發
- 函數參考