使用VisualStudio开发php的图文设置方法


Posted in PHP onAugust 21, 2010

现在,三层、mvc之类的思想遍地开花,使得代码和html得以分离,加之随着开发的分工和项目的增大,一个好的IDE能为编码工作提供了许多的便利。就像开发java用eclipse,.NET用visual studio一样,开发PHP也很需要一种这样的利器。常见的php的IDE有Eclipse,NetBeans,Zend studio,vs.php等。这几个我也都用过,其中Eclipse,NetBeans,Zend studio都有win和linux的版本,也都集成了像代码感知、调试、设计、片段等的功能,都用过一阵子后发现,在windows下,个人感觉还是vsiual studio+vs.php最是好使。主要的原因就是速度。 vs的速度真的是快其他的IDE太多了,无论是从启动速度还是使用过程中资源的耗用都要好于其他3款,毕竟是微软自家的东西。

      vs.php以插件形式安装到vs,现在已经出到2.9,支持visual studio2005~2010,到官网下载安装即可。默认是30天试用,可以搭配visualstudio express。安装以后,在visual studio的新建项目里就会多出来php的项目。

使用VisualStudio开发php的图文设置方法

当然也支持一个解决方案,多个项目。

使用VisualStudio开发php的图文设置方法

 

vs.php在启动的时候,会自动扫描包含在项目里的php文件,并加载到代码自动感知里。同时,未避免加载太多的感知支持,默认并没有加载不常用的php扩展的感知支持,如果有需要的话,可以右键项目,选择Add Php Module, 在列表里选择要添加的扩展,如图。 如果要对项目外的文件添加感知,也可以通过右键项目,选择Add Php Refence,选择文件添加支持。

使用VisualStudio开发php的图文设置方法

 

需要调试的话,可以编辑项目属性,这里的话,有个不太好的地方就是Start page一定要设置,不然无法启动调试,而且按F5运行调试时,就是打开这个起始页,没办法像ASP.NET那样,运行当前打开的页面。

使用VisualStudio开发php的图文设置方法

你可以根据需要选择调试的模式等配置,当然,如果你觉得有的东西老改麻烦的话,也可以通过修改vs.php的配置来一劳永逸。vs.php内带了一个apache2.2在安装目录下,所以,选择调试的时候,你可以决定用内置的apache还是服务器的apache,同时,安装目录下有PHP4,PHP5的目录,里面的东西也可以修改使用,诸如php.ini。如果使用xdebug来调试的话,推荐修改下php5下的php-xdebug.ini,添加修改下

[XDebug]
xdebug.idekey = vsphp
xdebug.auto_trace=On
xdebug.collect_params=On   
xdebug.collect_return=On   
xdebug.trace_output_dir="d:/x-debuginfo"
xdebug.profiler_enable=On    ;打开效能监测器
xdebug.profiler_output_dir="d:/x-debuginfo"   
xdebug.default_enable = On
xdebug.show_mem_delta=On

 

这样,调试时就会输出调试信息到d:/x-debuginfo,再使用WinCacheGrind来查看这个执行的CPU,内存使用情况,函数执行时间,尤其方便进行性能优化。如

使用VisualStudio开发php的图文设置方法

Language Reference目录下存放的是php的函数注解,智能感知就依赖这些文件,修改里面的注释信息,就可以改变感知时的提示,现在是全英文的,不知道会不会出一个中文的注释,期待。

 

在代码智能感知方面,vs.php只能打到80分这样,有的时候出不来是比较郁闷的。当然,这可能与你将类或函数分布在其他的文件里有关系,vs.php会自动解析require,include等的包含语句,并尝试加载解析这个文件,在使用实例化对象时,在当前的信息不足时,会尝试按照项目配置属性里的设置加载该文件

使用VisualStudio开发php的图文设置方法

就如同php里面的__autoload。

 

另外,规范合理的注释将为代码感知的提示提供极大的便利,尤其是对于自定义的类对象,尤为有效。就比如说,

使用VisualStudio开发php的图文设置方法

这里的$this->response,他并不知道是什么类型,所以任何提示都不会有,但是如果加上了类型声明 @var 类型, 那就可以正常显示该对象的成员信息、提示等

使用VisualStudio开发php的图文设置方法

在断点调试方面,虽然有时候无法捕获断点,但是也算是实现了。

使用VisualStudio开发php的图文设置方法

 

其实很多时候,因为这个功能的不够可靠,这种情况我还是倾向于自己输出变量查看。

 

总的说来,个人比较喜欢vs.php,相比zendstudio,NetBeans等的运行速度和资源占用,这无疑是更好的选择。而且,我个人喜欢使用ASP.NET的页面搭配smarty的语法作为php的模板,比起纯粹的html模板,.NET的页面在visualstudio里面有着无可比拟的优点,例如Masterpage和usercontroller,都能正常显示,这个对于控件复用和设计而言,相当的方便。具体的模板类,有空的时候整理下再放出。

如果你还在用记事本啦,Dreamweaver之类的,不妨试试vs。

PHP 相关文章推荐
php 多线程上下文中安全写文件实现代码
Dec 28 PHP
php cookie的操作实现代码(登录)
Dec 29 PHP
设置php页面编码的两种方法示例介绍
Mar 03 PHP
php实现mysql封装类示例
May 07 PHP
PHP面向对象精要总结
Nov 07 PHP
php在apache环境下实现gzip配置方法
Apr 02 PHP
详解PHP中的状态模式编程
Aug 11 PHP
在Mac OS的PHP环境下安装配置MemCache的全过程解析
Feb 15 PHP
Redis使用Eval多个键值自增的操作实例
Nov 04 PHP
php使用Jpgraph创建折线图效果示例
Feb 15 PHP
ThinkPHP中create()方法自动验证表单信息
Apr 28 PHP
thinkPHP5.1框架使用SemanticUI实现分页功能示例
Aug 03 PHP
利用Memcached在php下实现session机制 替换PHP的原生session支持
Aug 21 #PHP
ThinkPHP中实例Model方法的区别说明
Aug 21 #PHP
PHP 数组基础知识小结
Aug 20 #PHP
一个简单php扩展介绍与开发教程
Aug 19 #PHP
php checkbox 取值详细说明
Aug 19 #PHP
PHP 截取字符串专题集合
Aug 19 #PHP
php 过滤器实现代码
Aug 09 #PHP
You might like
德生PL990,目前市面上唯一一款便携式插卡蓝牙全波段高性能收音机
2021/03/02 无线电
在同一窗体中使用PHP来处理多个提交任务
2008/05/08 PHP
php 从数据库提取二进制图片的处理代码
2009/09/09 PHP
php多功能图片处理类分享(php图片缩放类)
2014/03/14 PHP
php 如何禁用eval() 函数实例详解
2016/12/01 PHP
PHP8.0新功能之Match表达式的使用
2020/07/19 PHP
保证JavaScript和Asp、Php等后端程序间传值编码统一
2009/04/17 Javascript
javascript GUID生成器实现代码
2009/10/31 Javascript
js判断生效时间不得大于失效时间的思路及代码
2013/04/23 Javascript
Jquery增加鼠标中间功能mousewheel的实例代码
2013/09/05 Javascript
js图片闪动特效可以控制间隔时间如几分钟闪动一下
2014/08/12 Javascript
前端jquery部分很精彩
2016/05/03 Javascript
完美实现八种js焦点轮播图(下篇)
2020/04/20 Javascript
浅谈JavaScript中面向对象的的深拷贝和浅拷贝
2016/08/01 Javascript
vue.js指令v-model使用方法
2017/03/20 Javascript
基于BootStrap的前端分页带省略号和上下页效果
2017/05/18 Javascript
javascript 封装Date日期类实例详解
2017/05/28 Javascript
Bootstrap模态框插入视频的实现代码
2017/06/25 Javascript
JS一个简单的注册页面实例
2017/09/05 Javascript
基于three.js编写的一个项目类示例代码
2018/01/05 Javascript
Vue2.X 通过AJAX动态更新数据
2018/07/17 Javascript
Jquery的autocomplete插件用法及参数讲解
2019/03/12 jQuery
使用React手写一个对话框或模态框的方法示例
2019/04/25 Javascript
解决vue动态下拉菜单 有数据未反应的问题
2020/08/06 Javascript
[43:14]Liquid vs Optic 2018国际邀请赛淘汰赛BO3 第二场 8.21
2018/08/22 DOTA
python学习 流程控制语句详解
2016/06/01 Python
Python的CGIHTTPServer交互实现详解
2018/02/08 Python
详解python-图像处理(映射变换)
2019/03/22 Python
详解利用Python scipy.signal.filtfilt() 实现信号滤波
2019/06/05 Python
Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)方法
2019/08/23 Python
eDreams加拿大:廉价航班、酒店和度假
2019/03/29 全球购物
馥蕾诗美国官网:Fresh美国
2019/10/09 全球购物
创业女性典型材料
2014/05/02 职场文书
焦裕禄精神心得体会
2014/09/02 职场文书
《将心比心》教学反思
2016/02/23 职场文书
自定义函数实现单词排序并运用于PostgreSQL(实现代码)
2021/04/22 PostgreSQL