快速业务通道

PHP V5迁移指南

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22
  if ( $ec[''error''] != 0 ) return $ec[''error''];
 }
 fclose( $fh );
 return 0;
}
$e = readConfig( ''myconfig.txt'' );
if ( $e != 0 )
 echo( "There was an error (".$e.")\n" );
?>

这段标准的文件 I/O 代码将读取一个文件,检索一些数据,并在遇到任何错误时返回错误代码。对于这个脚本,我有两个问题。第一个是错误代码。这些错误代码的含义是什么?要找出这些错误代码的含义,则必须创建另一个系统将这些错误代码映射到有含义的字符串中。第二个问题是 parseLine 的返回结果十分复杂。我只需要它返回数据,但它实际上必须返回错误代码 和 数据。大多数工程师 (包括我本人在内) 经常偷懒,仅返回数据,而忽略掉错误,因为错误很难管理。

清单 13 显示了使用异常时代码的清晰程度。

清单 13. file.php5

<?php
function parseLine( $l )
{
  // Parses and throws and exception when invalid
  return array(); // data
}
function readConfig( $path )
{
 if ( $path == null )
  throw new Exception( ''bad argument'' );
 $fh = fopen( $path, ''r'' );
 if ( $fh == null )
  throw new Exception( ''could not open file'' );
 while( !feof( $fh ) ) {
  $l = fgets( $fh );
  $ec = parseLine( $l );
 }
 fclose( $fh );
}
try {
 readConfig( ''myconfig.txt'' );
} catch( Exception $e ) {
 echo( $e );
}
?>

我无需考虑错误代码问题,因为异常中包含了错误的说明性文字。我也无需考虑如何追踪从 parseLine 返回的错误代码,因为如果出现错误,该函数将只抛出一个错误。堆栈将延伸至最近的 try/catch 块,该块位于脚本的底部。

异常机制将彻底改变编写代码的方法。您不必管理让人头痛的错误代码和映射,可以将精力集中在要处理的错误上。这样的代码更易于阅读、维护,而且我要说,甚至要鼓励您添加错误处理机制,它通常都能带来好处。

结束语

新的面向对象特性和异常处理的增加为将代码从 PHP V4 迁移到 PHP V5 提供了强有力的理由。正如您所见,升级过程并不难。扩展到 PHP V5 的语法感觉就像 PHP 一样。是的,这些语法来自诸如 Ruby 之类的语言,但我认为它们配合得非常好。并且这些语言将 PHP 的范围从一种用于小型站点的脚本语言扩展为可用于完成企业级应用的语言。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号