标签归档:PHP

对 Zend Studio 7.0 失望了

Zend Studio 7.0出来几个月了,一直都没空试用它,今天看了Zend官方的一篇文章,又恰好有些空余时间,心里稍微蠢蠢欲动一下,就把7.0安装到了硬盘上。

官方文章中描述的总是令人心潮澎湃,罗列了7.0的一堆优点,并建议用户升级,就文字方面的描述,确实很有吸引力。但当你用过之后,就像一盆冷水浇到了发烫的脑袋上,除了很爽之外还会让你很郁闷。

Zend Studio作为一个历史悠久的IDE,从诞生以来就BUG不断,5.5版本算是最经典的,从6.0开始使用了eclipse架构,虽然提高了系统的兼容性,但是Java那东西太耗费系统资源了,没有强悍的硬件支持,跑一个Zend Studio 7 简直是折磨。

折磨就折磨一下吧,卡一点,慢一点还可以忍受,if、while等语句不能折叠这我也能忍受,偶尔有点中文乱码我也勉强忍受了,但是最最不能忍受的是代码提示慢,我代码都敲完了,他的代码提示还没出来,总不能逼我按Alt+/去手动打开代码提示吧。

Zend Studio 6.x 已经很失败了,7.0虽有亮点但依然鸡肋,不知未来的8.0会不会那么让人失望。

把Zend Studio 7 OOXX了一下,不过按照惯例还是提供一下注册码:

User Name:mimiz_cn
License Key:3B9B9BB76C218B98BB76C218

官方下载地址:http://downloads.zend.com/studio-eclipse/7.0.0/ZendStudio-7.0.0.exe

20090826:
很抱歉我错怪了 ZendStudio7,既然是基于Eclipse开发的东西,同样也继承了eclipse的优点,在Window -> preferences -> PHP -> Editor -> Content assist -> Auto-Activation 中,可以调整自动提示的时间,我把它改为0,提示超快,哇咔咔~~~ :mrgreen:

20090920:
使用Zend Studio 7.0一个多月,越来越顺手了,现在他已经成了我最主要的php开发集成环境,甚至我的CentOS上面也把Eclipse换Zend Studio 7

20100118:
不少朋友说代码提示慢,确实,跟5.5比是慢多了,但这个是跟硬件环境成正比的,硬件在飞速的发展,软件当然也越做越大,越来越耗费资源,目前我用双核U,3G内存,没有任何不妥,硬件配置不高的朋友,建议回到5.5的平台,或者试试 NetBeans 和 Komodo 。古董机的话,还是用Editplus或者Dreamweaver吧。

Zend Studio for Eclipse 6 最优秀的PHP开发环境

Zend Studio一个屡获大奖的专业 PHP 集成开发环境,具备功能强大的专业编辑工具和调试工具,支持PHP语法加亮显示,支持语法自动填充功能,支持书签功能,支持语法自动缩排和代码复制功能,内置一个强大的PHP代码调试工具,支持本地和远程两种调试模式,支持多种高级调试功能。

自从Zend Studio 5.5 之后,Zend Studio 基于 Eclipse 和 PDT 开发,改为Zend Studio for Eclipse,加入了ZendStudio的专用特性,ZF框架,ZendCore Zend Platform等。

关于 Zend Studio 5.5 的详细信息请看这里:http://mimiz.cn/index.php/web/php-integrated-development-environment-zendstudio/

目前最新版Zend Studio for Eclipse 6.1.2下载地址
Windows:
http://downloads.zend.com/studio-eclipse/6.1.2/ZendStudioForEclipse-6.1.2.zip
Linux:
http://downloads.zend.com/studio-eclipse/6.1.2/ZendStudioForEclipse-6.1.2.tar.gz

提供几个注册码

User Name / Order:mimiz.cn
License Key:7B2E609E216668150000

User Name / Order:mimiz_cn
License Key:6F4CFCAD286663810000

最优秀的PHP开发环境-Zend Studio

什么是Zend Studio?
Zend Studio 是一个屡获大奖的 PHP 集成开发环境,也可以说是目前开发人员在使用PHP开发周期中唯一的、强大的、集成开发环境 (IDE),它具备功能强大的专业编辑工具和调试工具,支持PHP语法加亮显示,支持语法自动填充功能,支持书签功能,支持语法自动缩排和代码复制功能,内置一个强大的PHP代码调试工具,支持本地和远程两种调试模式,支持多种高级调试功能,包括了PHP所有必须的开发部件。通过一整套编辑、调试、分析、优化和数据库工具,Zend Studio 加速开发周期,并简化复杂的应用方案。

Zend Studio 特点
快速代码开发与配置本地和远程调试器
数据库连通性 & SQL工具 团队合作环境
完全 PHP 4/PHP 5 切换 PHPDocs/PHP文档处理程序支持
SFTP, FTP以至SSH的安全连接 100个以上代码摘录
50个以上样品数据库应用程序 与Zend Platform™组合

Zend Studio产品特征
Zend Studio 设计时考虑了商务应用开发的需要,是开发者利用PHP创造强有力数据库应用软件的完美开发环境。Zend Studio 具有专业和企业开发者开发、配置、调试和管理关键商务PHP应用的易使用性、可伸缩性、可靠性和扩展性。

Zend Studio 主要组件
1 专业的集成开发环境 内置 编辑器, 调试器, 以及 帮助文档
2 Windows, Linux, Mac 等多个操作系统版本
3 多语言支持
4 专业的编辑器
5 关键字、语法加亮显示 (PHP, HTML, XHTML, and Javascript)
6 XML & CSS 的关键字、语法加亮显示
7 代码模板
8 支持 PHP 4 and PHP 5
9 代码自动完成功能
10 PHP Code (+PHPDoc) 分析功能
11 内部调试器
12 代码摘录
13 PHP 代码分析
14 远程调试器
15 Remote Profiler
16 数据库连接以及集成查询 ,适用于 : IBM DB2/Cloudscape, MySQL, Oracle Microsoft SQL Server, SQLite, and PostgreSQL
17 NEW! Set of SQL Tools: SQL Query Editor, SQL Explorer, and more.
18 NEW! PHPDocumentor
19 CVS 集成,方便团队开发
20 FTP 高度集成

目前最新版本是5.5.1,下载地址在这里找,最新版本内置中文语言包。
5.5.0默认英文,修改中文的方法是:
将{X}:Documents and Settings{User}ZDEconfig_5.{x}desktop_options.xml文件中
<customized_property ID=”desktop.language”>
  <locale language=”en” country=”” variant=””/>
</customized_property>
en改为zh,重启zend后就OK。

提供一个注册码
Name:mimiz.cn
Serial:9EA3B70712182039
可适用于5.5.X版本

好一个BOM,折磨了我3天!

至于什么是BOM,请看这篇文章

1月6日
被要求开发UTF-8的PHP站。
上午: 写了几个页面且测试OK。
下午: 出去Happy没动电脑。
晚上: 惊奇的发现DIV在Firefox下不能居中,
于是很郁闷的睡了一觉…… 😦

1月7日
上午: 以为CSS问题,尝试了各种hack,依然没有解决问题。
下午: 满世界求助,依然无解。
晚上: 自以为见了鬼,
于是很痛苦的睡了一觉…… 😥

1月8日
上午: 决定把问题简单化,
删除了多余的CSS、语句、标签,把.php保存为.html,
最后只剩下一个DIV标签和相应的CSS,竟然还不能居中!
又发现把DIV标签另存为另外的HTML文件,竟然可以居中!
此时看到两个内容一样,显示却不一样的html,好像见到了鬼 👿
快疯了……
下午: 冷静思考,排除CSS问题,继续研究HTML。
晚上: 使用杀手锏,满宇宙求助,经小福猪提醒,原来是BOM惹得祸。
彻底疯了……
我怎么就没想到BOM呢,大概最近劳累过度。不过总算解决了问题。
晚上做梦,梦见自己疯过来疯过去的…… 😆

About BOM

吃一堑,长一智。应该对BOM引起重视。

本文探讨的不是BOM本身,而是怎样解决在UTF-8编码下PHP的BOM问题。

这里指的BOM是Byte Order Mark,不是Bill Of Material,也不是Brower Object Model。
那么BOM具体是什么?官方的解释是这样的:
A byte order mark (BOM) consists of the character code U+FEFF at the beginning of a data stream, where it can be used as a signature defining the byte order and encoding form, primarily of unmarked plaintext files. Under some higher level protocols, use of a BOM may be mandatory (or prohibited) in the Unicode data stream defined in that protocol.

另外,fmdd也给出了解释:
在UCS编码中有一个叫做”ZERO WIDTH NO-BREAK SPACE”的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输字符”ZERO WIDTH NO-BREAK SPACE”。这样如果接收者收到FEFF,就表明这个字节流是Big-Endian的;如果收到FFFE,就表明这个字节流是Little-Endian的。因此字符”ZERO WIDTH NO-BREAK SPACE”又被称作BOM。

简单的说,用Windoes自带的记事本把一个文本文件另存为UTF-8编码,然后用UltraEdit以十六进制打开,就可以看到文件开头的”EF BB BF”,这个就是BOM。程序可以通过BOM来识别文件是否UTF-8编码。对大多数程序来说,这是个很聪明的方法。但遗憾的是,有些程序并不能很好的识别它,例如Win的记事本、Firefox还有PHP。

就UTF-8编码的PHP来说,由于代码必须在<?php code ?>这样的PHP标签中才会执行,而BOM总是在文件头的3个字符中,所以这3个字符会直接输出,在浏览器看到的是乱码或者空行。更严重的是”受COOKIE送出机制的限制,在这些文件开头已经有BOM的文件中,COOKIE无法送出,因为在COOKIE送出前PHP已经送出了文件头。”至于解决方法,很简单,如果只包含英文字符,可以把文件转成ASCII编码,如果包含中文字符,则需要转成没有BOM的UTF-8编码。以UltraEdit_v13为例,打开文件,点击菜单”File”,然后是”Save as”或者直接按快捷键F12,在弹出的对话框中选择”UTF-8-无BOM”即可。不过,您不必那么麻烦,我找到了一款开源免费的轻量级代码编辑器notepad++(点击打开)