首页 > 编程技术 > php

Zend Studio 3.0试用手记

发布时间:2016-11-25 17:16

ZDE虽然表面上看好像没有什么变化.:) 整体风格几乎没有变化. 但明显可以感觉速度上快了许多. 而对中文的支持一如既往只能用宋体之类的中文字体时才能正常显示, 很不清楚为什么Zend在这点上进行改进.
以下是ZEND的新特性介绍:
1.Profier……这个东西太强了………没话说,实在是很强很强.从DEMO上看来实在是太强了,可惜我没有Performance suit, 而似乎要装了才能使用这个功能.
2.Code Analyzer 代码分析, 非常酷的功能,你可以看下图.
它的分析能使你的应用程序有更好的安全性. 分析的文档可都是非常宝贝的经验啊.
3.浏览器上的直接Debug的按钮.这个需要安装Zend Server.
4.支持PHP5, 特别支持PHP5的一些新的语法关键词.
自动填充代码功能增强.你可以看下图.
之后你就会在该函数前获得自动注释.很方便你修改.而且ZDE自动填充时的信息是由注释提供的哦.这是一个让你养成好习惯的功能.同时的确增强了自动填充功能, 如果你用惯了Visual Studio等,那么这个的确是很好的功能.而且对于包含文件也能进行填充,虽然有些时候不大灵光. 同时你点GO TO SOURCE能跨文件直接在该函数定位.
6.只是HTML和JAVA SCRIPT的语法加亮显示.
7.ZDE更有效率更快了,的确,虽然它是用JAVA写的,但很精练.去除JRE的ZDE仅仅4M多.
另外还有代码整理功能,你可以看下图

效果很不错.而且非常好用, 因为你也许要接手其他人的项目而可能那个项目的代码写得非常差… 那么这个功能就大显身手了.
一个好的开发工具是一个语言成功的条件之一,在这一点上MS一直做得非常好.而就我而言对PHP的厌恶之情由来依旧,并早已决定除非需要否则放弃使用,但可以说ZEND这次的确带来了惊喜.我一直对PHP5缩宣扬的新特性持由怀疑态度的, 但通过这次对ZDE的支持PHP5关键词的测试, 看来的确是真的. 所以准备对现在PHP5的BETA版本进行一下接触^_^. 希望也能给我带来惊喜 :)
     
1、在建库时,catproc一定要运行,否则用rman时会出现如下字符集的错误:
RMAN-00554: initialization of internal recovery manager package failed
RMAN-04005: error from target database: ORA-06553: PLS-213: package STANDARD noe
RMAN-04015: error setting target database character set to ZHS16CGB231280
如果建库时没有问题,那么可以Re-run catproc.sql. This will in turn call the dbmsbkrs.sql script which creates the dbms_backup_restore package.
2、中文字符集说明
ZHS16CGB231280 CGB2312-80 16-bit Simplified Chinese MB, ASCII
ZHS16GBK GBK 16-bit Simplified Chinese MB, ASCII, UDC
简单地说ZHS16GBK是ZHS16CGB231280的超集。
一九九○年中国、日本、韩国共同制定的统一东亚表意文字字符集,即常称的国标扩展码字符集(GBK)。
3、如何避免中文支持问题
我们的一贯建议是在建库时就做好规划,这样以后就不会有问题了。
1)create database
character set ZHS16GBK
national character set ZHS16GBK
2)环境变量:NLS_LANG=american_america.ZHS16GBK
最好export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'指明日期格式;
3)如果建库时指定了props$中characterset肯定就是ZHSS16GBK了:
NLS_CHARACTERSET ZHS16GBK
NLS_NCHAR_CHARACTERSET ZHS16GBK
如果不是可以使用update改变,但这样做对于已有数据会有影响,甚至会导致整个数据库不能用,所以还是在建库之后就进行验证,一个好的DBA就是能够尽量避免问题的发生,而不是等到出了问题再去救火。
如此一来就不会再有字符集和中文支持的问题了。还有问题吗?和我联系:)
 
动态信息理论
据Merriam-Webster Online地解释,动态一词的意思是网页的内容由“通常是连续的和实时生成的活动或者改变的信息组成。”因此当我们谈论动态数据的时候,我们也就是在谈论作为Web页面发送给用户的信息是由不同的源数据组合而成的。这与静态网页的概念是相对的,静态网页的内容并不依赖用户输入的数据而改变而且通常是直接解析给用户。Web页面上的动态信息有三种主要的类型:
动态数据--在一个Web页面里产生的变量。
动态Web页面--整个Web页面都是动态生成的。
动态内容--Web页面的一部分是动态生成的。
你如果希望对动态内容产生的过程进行细微的控制,就象动态数据的那种类型一样,那么数据处理的过程就会复杂一些。而如果你想生成大范围的信息,就象动态Web页面的生成那样,那么程序的逻辑就会变得复杂。动态内容的生成是这两种方式的折衷,它能够让我们使用两个很有用的PHP函数,include()和require()。
要记住,你在后端加入的逻辑越多,那么你的Web站点的性能将会损失得越严重。幸运的是,PHP能够很流畅的进行预处理过程,所以当我在处理动态内容和数据的时候都尽可能多的使用PHP的功能。
数据源和PHP功能
所有的动态内容都有一个共同点:它们从一个原始页面以外的数据源而来。图A列出了一些常见的数据源以及用来处理它们的相应的PHP函数。
Figure A
数据源
PHP 函数
注释

User
$HTTP_POST_VARS
$HTTP_GET_VARS
这些函数处理由用户通过Web表单直接输入的数据。
Database (local or remote)
<dbtype>_connect()
<dbtype>_pconnect()
<dbtype>_close()
<dbtype>_<function>()
example:
mysql_fetch_array()
这些都只是PHP许多数据库访问函数中的一部分,许多函数是为每个不同的数据库特别编写的。你能够在PHP函数参考手册里找到这些函数的完整列表。
Remote file
fopen(), fclose()
fgets(), fputs()
这些函数处理一个远程服务器上文件中的数据,这个文件可以通过FTP访问。
Local file
include(), require()
fopen(), fclose()
这些函数处理位于本地服务器上的文件中的数据,比方说配置文件。

常见的数据源和处理它们的PHP函数
在这篇文章“教程:PHP起步中,”我们观看了一个演示的脚本,这个脚本要求用户输入他们最喜欢的数字。根据用户输入的结果,我们在Web页面上显示一条消息。这就是一个由用户驱动的动态Web内容的例子。从Web表单返回的结果将决定显示的内容。一个更复杂的例子是“点击流程”应用程序,这个程序能够根据一个用户在Web站点上访问过的页面来决定向他或者她发送什么广告。
虽然 PHP5 还没有正式发布(开发版本已经提供下载),但我们现在就可以开始体验一下新的版本 将要带给我们的惊喜。在以下的介绍中,我们将重点讲述 PHP5 中的三大特色功能。这三大特点为:
* 新的对象模式 (New Object Mode)
* 异常处理 (Exceptions)
* 名称空间 (Namespace)
在开始之前,要声明两点:
* 文章中的例子为了说明如何操作,有些部分使用了 PHP4 的表现手段,这仅仅是为了提高文章的可读性。
* 文章中描述的部分与 PHP5 的最终发布版可能会有一些出入
在 PHP5 没有最终正式发布前,你可以随时从 http://snaps.php.net 下载到最新的编译版本来亲自体验一下 PHP5 所带给我们这些崭新的功能。
新的对象模式
PHP5 中的对象已经进行了较系统、较全面的调整,现在的样子可能看起来会有些类似于 Java。本小节着重讲述 PHP5 中新的对象模式,并举了一些较简易的例子来说明。就让本节成为你的 PHP5 之旅的一个新起点吧。:)
* 构造函数和析构函数
* 对象的引用
* 对象的克隆
* 对象中的私有、公共及受保护模式
* 接口 (Interfaces)
* 抽象类
* __call
* __set 和 __get
* 静态成员
构造函数和析构函数
在 PHP4 中,当函数与对象同名时,这个函数将成为该对象的构造函数,并且在 PHP4 中没有析构函数的概念。
在 PHP5 中,构造函数被统一命名为 __construct,并且引入了析构函数的概念,被统一命名为 __destruct。
例一:构造函数和析构函数
<?php
class foo {
var $x;
function __construct($x) {
$this->x = $x;
}
function display() {
print($this->x);
}
function __destruct() {
print("bye bye");
}
}
$o1 = new foo(4);
$o1->display();
?>
在上面的例子中,当你终止调用 foo 类的时候,其析构函数将会被调用,上例中会输出 “bye bye”。
对象的引用
众所周知,在PHP4 中,传递变量给一个函数或方法,实际是把这个变量做了一次复制,也就意味着你传给函数或方法的是这个变量的一个副本,除非你使用了引用符号 “&” 来声明是要做一个引用,而不是一个 Copy。在 PHP5 中,对象总是以引用的形式存在的,对象中的赋值操作同样也都是一个引用操作。
例二:对象的引用
PHP中如何增加一个系统用户 下面是一段例程,增加一个名字为james的用户,root密码是 verygood。仅供参考
$sucommand = "su --login root --command";
$useradd = "useradd ";
$rootpasswd = "verygood";
$user = "james";
$user_add = sprintf("%s "%s %s"",$sucommand,$useradd,$user);
$fp = @popen($user_add,"w");
@fputs($fp,$rootpasswd);
@pclose($fp);

标签:[!--infotagslink--]

您可能感兴趣的文章: