[PHP]plog0.3.2不支持php5的解决方法

没时间细看,不知道现在支持不了,反正先转了再说。

 

Plog0.32不支持php5,类定义出现问题……

还好以前有高人已经解决了,但是原文没有太弄明白,那个判断错误的程序function _internalErrorHandler( $e)老是出错,

说getfile()有问题,弄了半天不行只好屏蔽了,留了一个空函数在那里,竟然可以运行……也不知道会不会有问题。上SMTH找牛人请教去。

贴下那篇文章:

【原作:snowphy  @ SMTH

日前由于需要在php5上运行plog,但网上下载的plog_0.3.2_cn包不能直接使用(未汉化的没有看,应该也不行)
又找不到资料,只能自己研究,侥幸成功,不敢把经验独享,写个总结供其他有同样需要的人做参考。

以下步骤在windows2000 Advanced Server系统实现
使用plog_0.3.2_cn + php5.0.2 + mysql4.1.7(mysqli函数库)

修改plog_0.3.2_cn源程序如下
1.修改/class/object/exception.class.php:
说明:
去掉里面的Exception类,去掉throw、catch函数。修改_internalErrorHandler函数(名字无所谓,可以改成你喜欢的)
这里要说的是,php5提供了系统的Exception类,所以不用再自己定义,而且也不能自己定义,否则会出现重复定义的错误
这里提供的错误处理类,仅仅是打印出错误信息,高级功能请自行编写。
  //自定义错误处理函数
  /*
   *参数:$e   Exception类型
   */
  function _internalErrorHandler( $e)
  {
    echo ("Error in file " . $e->getFile( ) . " on line " .

       $e->getLine( ) . ".
" . "Error message: "" . $e->getMessage( ) .

       "" and error code: " . $e->getCode( ) . ".");
  }

  //注册我们自定义的错误处理函数
  $old_error_handler = set_error_handler( "_internalErrorHandler" );
?>

2.修改/class/object/reflection.class.php
reflection类改名为_reflection
说明:
同上,php5提供了Reflection类,这里我们把类名稍做变动
Reflection的具体作用请参考php5手册
由于其他代码里用到了自定义的这个类,我没有把它去掉

3./class/controller/controller.class.php
原new reflection()改为new _reflection()
说明:
此改动对应2

4./class/database/adodb/adodb-iterator.inc.php
ADODB_Iterator类增加函数
function valid()
{
  return !$this->rs->EOF;
}
说明:
实际上应该是把hasMore函数改名为valid,怕有其他代码对hasMore的调用,
就多加了一个,两个函数功能是一样的,这样调用哪一个都可以。

做了上述改动之后就可以把plog_0.3.2装在php5上了,下面的改动是为了让plog使用mysqli的函数库来代替原来的mysql函数库

5./class/database/db.class.php(line 24)
/class/dao/model.class.php(line 45)
/wizard.php(line 397 in function connectDb)
/register.php(line 52 in function connectDb)
/class/plugin/pluginbase.class.php(line 171 in function connectDb)
/class/config/configdbstorage.class.php(line 59 in function ConfigDbStorage)

就是把代码中所有 $db = NewADOConnection("mysql");的,都改成 $db = NewADOConnection("mysqli");
这个也可以改成其他你想用的数据库类型,plog支持的数据库种类还是蛮多的。

做完之后发现也没做多少改动,却花了不少时间-_-,想想主要是对php5不熟悉,准确的说是php5比php4多了哪些功能,
改动过程中,主要参考了O"Reilly出版的《Upgrading.to.PHP.5》,应该说学到了不少东西*^_^*

由于改动不多,就不提供改好的包了,有需要的按照上面的办法改以下还快就能搞定的。

希望能给正在找相关资料的人提供帮助。
                                                                                                                                          2004-11-18
                                                                                                                                               snowphy
附:
Upgrading to PHP 5
By Adam Trachtenberg

Publisher : O"Reilly
Pub Date : July 2004
ISBN : 0-596-00636-5
Pages : 304

发表评论

电子邮件地址不会被公开。 必填项已用*标注