又被番茄发现 Zend_Db_Select 的 Bug 了

如果找到 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);
     }
 
     /**

 

发到邮件列表上没人理。唉!算了!这种事情,自己动手丰衣足食。改一下,直接提交了svn。还好,之前申请的 zend framework 的 svn 帐号这回派上用途了。

ninny Project 的数据库完成向 mysql 5.0 的迁移

升级为 PowerDesigner 12 来维护逻辑表果然方便多了,可以随意生成 Oracle 10g 和 mysql 5.0 的物理表。在修改了配置文件之后,我惊喜的发现原来一行代码也不需要修改,就完成了迁移工作。Zend Framework 的数据库部分的设计果然可圈可点。

由于服务器自身的限制,以 Oracle 作为数据库的版本无法提供演示和下载。所以迫不得已只好再维护一个 mysql 5.0 的数据库版本。PowerDesigner 真的是利器,逻辑表不需要任何修改就可以生成 mysql 版本的物理表。如果大家有类似的迁移需求,推荐大家也用一用这个。等有钱了,一定买一套正版回来用。

修改了资源权值和角色权值为添加时间戳,这样可以省掉维护两个触发器。PowerDesigner 12 好像还不能编写 mysql 5.0 的触发器。或许我需要手工添加一些规则才可以再 PowerDesigner 中直接编写 mysql 的触发器。不过不管怎么样,现在不需要触发器也可以按正常的权值构造 ACL 对象了。

下一步的计划就是构造一个后台管理,将资源、角色、权限、用户等的管理都放到后台中进行。