# :-: 调试环境的搭建
项目的编写过程中,无时不刻都会有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,这样说明成功
![](https://box.kancloud.cn/e3983d5877b1b844e54cbfc433b898bf_961x383.png)
# :-: 修改 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里设置里对应的端口也改为一样即可
![](https://box.kancloud.cn/2230fdd7f812c11bd9ce8e33414dd007_1009x625.png)
# :-: 测试
## 上面步骤完成后重启web服务器,打开phpstrom,在项目里建一个测试文件
*****
> ## 打上断点
> ![](https://box.kancloud.cn/7cd87b70658bf496daf33f485924cfa9_524x183.png)
*****
> ## 确保调试模式已经打开
> ![](https://box.kancloud.cn/d7a1bf4512ccff2e6006950e17acf4e7_133x128.png)
*****
> ## 确保Break as first line PHP scrips 选项未被选中
>![](https://box.kancloud.cn/382f7715c990cb4635079bcbd3f3ec71_713x951.png)
*****
> ## 浏览器访问这个页面
> 如果你看到这个景象,表明环境已经搭建成功
> 点击下图圈起来的绿色三角按钮让请求通过
> ![](https://box.kancloud.cn/a5698e18d5db1d19ad57bfe4f5195841_835x815.png)
- 序言
- 图片预览
- 诠释高效开发
- 提问的智慧
- GIT命令参考
- 安装composer
- 断点调试技巧
- 调试环境的搭建
- 调试工具的使用及技巧
- 前置基础-TP底层讲解
- 理解编程的抽象
- 耦合与解耦
- 自动加载
- 反射类
- 控制反转(IOC)和依赖注入(DI)
- iThink 自定义依赖注入的实现
- 常用设计模式
- SPL标准库
- 行为-钩子-插件
- AOP-面向切面
- RBAC和Auth类的本质
- 安装iThink
- 环境要求
- 代码下载与环境配置
- 执行安装
- 体验测试模块
- apache配置
- nginx配置
- 系统架构详解
- 目录详解
- 执行流程图
- 数据字典
- RBAC 权限管理架构
- 系统分层详解
- 控制器层(controller)
- 逻辑层(logic)
- 视图层(view)
- 模型层(model)
- 服务层(service)
- 应用包架构详解
- 目录结构
- 开发规范
- 数据库规范
- 编码规范
- 功能设计原则与规范
- 后台功能详解
- 基础功能
- RBAC + Auth 权限机制
- 应用化功能机制
- 代码生成器(重要)
- 应用骨架代码生成
- 数据表 CURD 代码生成
- 页面构造器(重要)
- 通用元素构造器
- 表格元素构造器
- 搜索表单元素构造器
- 表单元素构造
- 闭包事物构造器
- 应用的开发
- 函数参考