- 相关推荐
PHP 5.3 安装分析心得
满腔热血怎么能被安装毁了呢?以下是百分网小编精心为大家整理的PHP 5.3.0 安装分析心得,希望对大家安装PHP有所帮助!更多内容请关注应届毕业生网!
话说,一直犯懒没下载一个PHP 5.3,今天看到关于PHP5.3.0一时兴起打算更新一下本本上的PHP,于是乎下载了5.3来装。整个过程,可以这么说,惊异大于惊喜。并且我感受到了我第一次在Windows配置PHP时的那种脆弱无知感觉……
首先。。。PHP Team首次分离出了一个Windows团队。Windows的下载也挪到了windows.php.net。一个大进步。
其次。。。最大的惊异,PHP 5.3开始,居然没有了ISAPI支持……可以参看这里:ISAPI support, do we need it?
从没见PHP Team动作这么迅速。PHP 4停止支持还有一年的过渡期,ISAPI说没就没了……嗯,这个策略我支持,既然Microsoft发了IIS FastCGI支持,那停止就停止了吧。。。毕竟从稳定性上来说,FastCGI还是比ISAPI要好的……只是这么大的事儿,我居然不知道……真是孤陋寡闻了。在IIS下使用FastCGI设置PHP的介绍可以看这里。
再者。。。刚装上啥都没干,PEAR报错不能用-。-|||
好吧,不是我的错。关于这个错误,解释是这样的:
Some users have reported that the windows builds of PHP 5.3 are not able to open the shipped go-pear.phar file.
As a workaround, users can run the distributed phar with php -d phar.require_hash=0 go-pear.phar or download and use the http://pear.php.net/go-pear non-pharred version.
总结一下我的感受吧……
1. IIS 5.1、6.0、7,请先安装Microsoft FastCGI;
2. 没有了ISAPI支持之后,对于PHP 5.3来说,Installer和zip没有什么太大差别了;相比来说,个人觉得installer版本东西少(库没少带,还没有那个烦人的phar版PEAR),更清爽;
3. 安装完成后要改php.ini中的date.timezone设置,否则IIS会给你报个500错误……
4. 如果装的是installer版本并且还需要PEAR,那就这么做:1. 把http://pear.php.net/go-pear下载下来;2. php go-pear.
如果装的是zip版本,请执行php -d phar.require_hash=0 go-pear.phar,或者按照上边installer的方法装非phar版本的PEAR。
【拓展阅读】 异常在 PHP 5.3 中的最佳实践
每一个新的功能添加到PHP运行时会创建一个指数随机数,通过这样的方式开发者可以使用和甚至滥用这个新特性。然而,直到一些好的和坏的使用情况陆续出现开发者们才达成了共识。当这些新案例不断浮现,我们终于可以辨别出什么是最好或最坏的做法。
异常处理在PHP中的确无论如何都不算是一个新的特征。但在本文中,我们将讨论在PHP 5.3中基于异常处理的两个新的特点。第一个是嵌套异常第二是一套SPL(现在的PHP运行机制的一个核心扩展)的扩展的新的异常类型。这两个新特性,这本书里都能找到最佳实践值得各位去详细研究。
特别要注意:这些特性中的一些已经存在于低于5.3的PHP版本之中,或者至少能够在低于5.3的版本之中被实现. 而当本文提到 PHP 5.3, 并不是严责意义上的 PHP 运行时版本. 相反,它意味着代码库和项目是采用 PHP 5.3 作为最低版本的,但同时也是在新的发展阶段出现的所有最佳实践. 这个发展阶段所凸显的是特定的几个像Zend Framework, Symfony, Doctrine 以及 PEAR 这样的项目所进行的“2.0”尝试.
背景
PHP 5.2 只有一个异常类 Exception。按照 Zend Framework / PEAR 的开发标准, 这个类是你的库中所有异常类的基类。如果你创建一个名叫 MyCompany 的库,按 Zend Framework / PEAR 的标准, 库中所有的代码文件都会以 MyCompany_ 开头。要是你想给库创建自己的异常基类: MyCompany_Exception, 那就用该类继承 Exception,然后再由组件(component )继承和抛出该异常类。比如你有一个组件 MyCompany_Foo,你可以给它创建一个用在该组件内部的异常基类 MyCompany_Foo_Exception。这些异常能被捕捉 MyCompany_Foo_Exception,MyCompany_Exception 或 Exception 的代码捉到。 对于库中其他用到该组件的代码来说,这是个三层的异常(或更多,取决于 MyCompany_Foo_Exception 的子类有几层 ), 他们可以根据自己的需要处理这些异常。
在php5中,基本异常类已经支持嵌套的特性了。什么是嵌套呢?嵌套是一种能力可以去捕获特殊异常,或者捕获参照原始异常而创建的一个新的异常对象。这将会允许caller属性在更公开的类型的开销库中出现的两种异常类上得到体现,当然也会在具有原始异常行为的异常类上体现。
为什么这些特性很有用?通常,通过使用其他代码来抛出自己的类型的异常是最有效的代码。这些代码可能是使用适配器模式封装的提供一些适应性更强强的函数的第三方代码库的代码,或利用一些PHP扩展来抛出异常的简单代码。
例如,在组件 Zend_Db 中, 它使用了适配器模式来封装特定的 PHP 扩展,来创建一个数据库抽象层. 在一个适配器中, Zend_Db 封装了 PDO, 而 PDO 会抛出它自己的异常 PDOException, Zend_Db 需要捕获这些特定于 PDO 的异常,并让它们以可预期且类型已知的 Zend_Db_Exception 重新被抛出. 这样就给了开发者保证, Zend_Db 将总是抛出 Zend_Db_Exception 类型的异常(因此可以被捕获), 而他们同时也可以在需要的时候访问到最开始被抛出的 PDOException.
【PHP 5.3 安装分析心得】相关文章:
php5.3注意事项说明06-16
PHP的安装步骤09-29
PHP的安装方法11-04
PHP的安装方法及软件09-04
PHP递归效率分析08-25
PHP与ASP的分析对比10-27
php-memcache安装方法07-22
PHP开发环境安装的方法08-29
分析PHP队列是什么10-05
php中引用的用法分析06-22