最近一直准备把公司的所有 PHP 环境统一升级到 5.5,目前使用的是 5.2 与 5.3,而现在 5.3 都已经 EOL 了,5.4 性能有较大的提升,5.5 对内存占用上也有很多优化,作为一个互联网公司目前我们在用的版本有点不够与时俱进了,所以升级成了必然。
升级除了 preg_replace() 中 e 修饰符开始弃用以外最主要就是数据库问题了,虽然编译进 mysql 模块仍然可以继续使用原来的 mysql 驱动,但原来的 mysql 驱动官方早就开始声明要废弃,并且在 5.5 中默认是不启用的。
目前有一个项目使用的是我的 vgotfaster 框架,所以就改了改把框架的数据库操作类改使用 mysqli 驱动,由于之前我已经做了一个由 pdo 驱动的类,所以干脆抽了些时间把 pdo 与 mysqli 驱动的数据库全部抽出来成为数据库操作层,并且可以由数据库配置中的 use_pdo_driver 来指定是否使用 PDO 驱动,把 ActiveRecord 类也抽出来统一为共用的类,再把两个驱动的数据库类方法统一。
唯一的问题是 pdo 驱动没有类似于 mysql*_ping() 的方法,在 pdo 中只能写一个不具任何功能的方法,不过除非在 CLI 计划任务中需要长时间运行并且用 mysql*_ping() 来实现保持 MySQL 不超时断开,其它情况都可正常使用。现在可自由通过配置切换驱动,而且用法也完全无需修改程序的其它地方。
这里是下载:[attach=256]
详细的更新日志可以见包内的 changelog.txt 文件
最近大 OSChina 上建了个 git 仓,地址是 http://git.oschina.net/pader/vgotfaster
其实我这个 vgotfaster 框架是借鉴 CI 框架的思路,目的是为了学习学习这种框架的实现并且用在自己的一些项目中,当然仅仅是借鉴了他的结构思想,除了在单例模式的实现上参考过它的代码外,其它的代码基本都是自己写的,个人网站许久不维护了,做的一些其它的东西都落在硬盘的角落里,搞了这么多年 PHP 也就剩下这点东西了。
纵观前面的几篇文章,质量真低啊,一直琢磨着把 ideawind 做出来,然后把个人主页做成一个纯粹的博客,到底什么时候会实现?大约在冬季。。
前段时间从 Ubuntu 13.04 升级到 13.10 后,发现 /boot 下多了个 3.11 的内核,但当前内核仍然使用的 3.5 的内核,于是想修改内核到使用 3.11 内核,但由于没注意到当前的 grub 已经是版本 2 了,使用 update-grub 却只更新了 menu.lst,而且我还过河拆桥的把 3.5 内核的相关文件都删了,重启后杯具了,无法引导内核,启动不了了。
然后各种搜索,发现当前系统居然是使用 grub.cfg 这个配置文件,menu.lst 实际上是老版本 grub1 的残留,而且 update-grub 也是老版本的 grub 工具。再经搜索在一篇 IBM 的文章中发现可以在 grub 界面按 E 进入引导配置文件临时修改,然后进入了系统。
进入系统后我一通折腾,把所有的 grub (1 和 2 版) 都卸载了,然后阴差阳错的胡闹把 /etc/grub.d/ 也删除了,重新安装后,发现怎么也无法生成正确的 grub.cfg 配置,生成的 grub.cfg 总是空的,原因就是因为没有了 /etc/grub.d/,寻思未果,各种重装也是无法解决,最后找到的办法是从 grub-common.deb 包中提取出来 grub.d 目录,然后复制到 /etc 中,再执行 update-grub 后 grub.cfg 终于正常了。
因为近期 Adblock 里的 ChinaList 规则无法再对优酷广告进行屏蔽,造成优酷基本无法正常观看,所以推出这个 ChinaListStable,基于 ChinaList(https://code.google.com/p/adblock-chinalist/),仅仅是移除了里面一些不稳定的导致网站功能无法正常使用的规则,目前只是移除了优酷的广告规则。