声明:本文为原创文章,如须转载请注明 如有问题请到bbs.tsinghua.edu.cn WebDev版
日前由于需要在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( ) . ".<br>" . '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 
|