今天我使用 Zend Framework(以下简称 ZF) 制作一个数据库操作的 Demo.
在制作 Demo 中, 我未体会到 ZF 有明确的核心思想. 我根据 ZF 的要求写了单独的一个文件(控制器), 然后创建了单独的一个模板文件(事实上是一个普通的 PHP 文件), 而且还从 Zend_Db_Table 派生了一个类(只有类的框架, 没有任何逻辑代码), 该类拥有了 CRUD 能力.
和不使用 ZF 相比, 这样做从代码量上没有任何减少, 甚至结构上没有任何改变. $_GET['id'] 变成了 $this->_request->getParam('id'); include('header.html') 变成了 $this->reader('header.html'); 没有了 SQL 字符串拼接, 但是为了保存一行数据仍然需要手工创建一个关联数组.
那么 ZF 在界面层提供了什么工具? 视图文件还是普通的 PHP 脚本, 为了显示一个数组, 仍然需要写自己的
<?php foreach...{?>
...
<?php}?>
在 1.0.5 版本的中, 增加了使用 PHP 脚本方式生成界面的 Zend_Form 模块, 完全地将表单的验证等逻辑处理与表单的界面耦合在一个 PHP 类中. 这样做, 根本就是违反了表现与结构分离的原则, 界面开发人员无法单独的设计界面. 而分离的一个重要目标就是让界面开发人员不需要 Web 服务器就能设计界面.
由于个人的局限性, 所以我希望 ZF fans 能交流你们对 ZF 的看法.
http://www.zfchina.org,欢迎你加入讨论 Reply