Blog

  • Bill 这个老家伙,这么多天,才指派了 issue 过来。 这个 charset 应该放在 config 的什么部分? 我个人倾向于跟 $config[‘port’] 一样,直接放在 config 数组中: $config[‘charset’]。实际上之前的修改也是这么做的。 但是还有一个选择是放在 $config[‘options’][‘charset’]。这样肯定更符合老外的胃口,他们很少用 charset 这个东东的。 Bill 发邮件说他想放到 $config[‘driver-options’][‘charset’],我是严重的不同意。这个肯定不是数据库特性的东西,而应该是跟 port 一样是每个数据库不同,但是每个都可以设置的东西。 恩,考虑考虑先~~反正无论如何,我不同意放到 driver-options 里去设置 charset。

  • 更新了部分内容,将一个  docbook 的 xml 文件分隔成多个,以方便维护。从这个版本开始中文版《PHP 安全指南》将独立于英文版本维护。 下载PHP 安全指南

  • 前几天,搞掂了 xdebug 和 xcache 的共存问题。很简单,先加载 xcache 再加载 xdebug 就相安无事。否则,就会有非法的内存访问。 结果没想到,今天又遇到了,之前一直没留意过。必须先加载 mbstring 才能加载 exif 。晕死啊!搞了20分钟。 大风大浪都过去了,小河沟里翻了船。 xcache => xdebug mbstring => exif 还有么?慢慢补充吧。

  • 在分析 Zend_Config 的代码的时候,感觉 Ini.php 和 Xml.php 中代码差异非常大。那么性能上是否有一个确定的优劣?于是做了以下比较和分析。

  • In the class PHPUnit_Framework_TestCase, line 352         if ($this->name === NULL) {             throw new PHPUnit_Framework_Error(               ‘PHPUnit_Framework_TestCase::$name must not be NULL.’             );         } If the var $this->name is NULL, it throws the exception PHPUnit_Framework_Error. But, the PHPUnit_Framework_Error’s constructor is (line 77):     public function __construct($message, $code, $file, $line, $trace) 如果捉虫能拿奖金,我可能已经是百万富翁了。闷,搞了半天,才发现原来是个 issue。再做回善事,发到 PHPUnit…

  • 点发疯。 7月19日xdebug 更新到2.0; 7月23日phpunit 更新到3.1.4; 同日phpDocumentor 更新到1.4.0。 最近的更新真多啊!

  • 自从有了 firefox 的 chatzilla 插件,就一直没用 Gaim 了。由于 Zend Framework 的官方 chat room 使用的是 jaber,只好装回 Gaim。上官方一看,Gaim 已经改名 Pidgin,已经是 2.02 版本。支持的通讯协议也增加了不少。QQ 也被列为官方支持的协议,而不是一个三方插件。 试用了一下,比以前快了不少。同时也稳定了一些。不过 QQ 的功能很弱,不支持自定义表情有些不爽。

  • 如果找到 Zend Framework 的 Bug,Zend 公司给发钱,恐怕项目组的兄弟们能出去挫好几顿了。 废话少说,这次的 Bug 比较弱智。绝对是粗心大意引起的。少了一个参数,造成使用 join 方法时报找不到表的错误。 Index: Select.php =================================================================== — Select.php    (revision 5792) +++ Select.php    (working copy) @@ -417,7 +417,7 @@       */      public function join($name, $cond, $cols = ‘*’, $schema = null)      { –        return $this->joinInner($name, $cond, $cols); +        return $this->joinInner($name, $cond, $cols, $schema);      }  …

  • 升级为 PowerDesigner 12 来维护逻辑表果然方便多了,可以随意生成 Oracle 10g 和 mysql 5.0 的物理表。在修改了配置文件之后,我惊喜的发现原来一行代码也不需要修改,就完成了迁移工作。Zend Framework 的数据库部分的设计果然可圈可点。 由于服务器自身的限制,以 Oracle 作为数据库的版本无法提供演示和下载。所以迫不得已只好再维护一个 mysql 5.0 的数据库版本。PowerDesigner 真的是利器,逻辑表不需要任何修改就可以生成 mysql 版本的物理表。如果大家有类似的迁移需求,推荐大家也用一用这个。等有钱了,一定买一套正版回来用。 修改了资源权值和角色权值为添加时间戳,这样可以省掉维护两个触发器。PowerDesigner 12 好像还不能编写 mysql 5.0 的触发器。或许我需要手工添加一些规则才可以再 PowerDesigner 中直接编写 mysql 的触发器。不过不管怎么样,现在不需要触发器也可以按正常的权值构造 ACL 对象了。 下一步的计划就是构造一个后台管理,将资源、角色、权限、用户等的管理都放到后台中进行。

  • 一年之内一共换了四块,这半年之内就换了三块。每次维修都要半个月,修不好,换新的。换了新的很快就坏掉。靠~~!!! 10 年前买的丽台现在还能用,下次说什么都不图那几块钱的便宜买这种廉价货色。