论坛首页 编程语言技术论坛

使用zend框架,就象找到了党组织

浏览 17145 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (3)
作者 正文
   发表时间:2008-11-08   最后修改:2008-11-20
PHP

高手就不要看此篇初级文章了。

最近使用php的官方框架zend,感觉是不错,不过效率也低了几倍。比写垃圾代码速度慢了很多。


安装方法:
官网下载后,把解压缩后的文件夹里的一个子文件夹Zend拷贝到include路径下就OK。
如我的php.ini
include_path=".;D:\abc\include;D:\php5\pear;"
则只要把Zend文件夹拷贝到D:\abc\include目录下或pear目录下


代码比较精致,全部是类。有点java的感觉。

特别实用的一个功能是自动加载类功能

    require_once('Zend/Loader.php');
    Zend_Loader::registerAutoload();
 

可以把上两句加到项目的某个公共加载文件里的最开头,然后
就不需要再使用include这个函数了,但前提是你的类的放置路径和类名都必须符合规范。
如类DatabaseObject_Area是放在文件Area.php里,且文件位于
D:\abc\include\DatabaseObject\Area.php
要注意大小写,明白了吧。特别简单,而且有纪律。

MVC模式也是框架的核心功能,但你也可以不用,只使用其他功能。
如使用,则需是使用apache的rewrite模块,将除js,css,img外的所有请求指向某个文件forward.php。
这个文件接受所有的动态请求,并将请求发送到各个控制器。

类的类型有:
一些公共类,
控制器类,
表单处理器类
数据类
(forward.php文件不是类)


缺省情况下,
http://www.site.com/account/login
(也可以同时跟随get或post参数)

这个url会使php访问控制器account,
这个控制器是一个php文件,文件名:AccountController.php
类名:AccountController。并且,更加具体的,是访问这个控制器类的loginAction()方法。

在这个方法中,如果没有表单,则调用一些数据类,获得一些数据,
然后把获得的数据填入一个模板,发送到页面。

如果有表单,就调用表单处理器,也是类。
表单处理器类会调用数据类,然后输出到模板。
问题是用户可能有表单输入错误。所以通常的情况是:

有表单的页面的提交对象是其自身,于是这个loginAction方法得考虑两种情况下

1、是没有用户输入,直接显示一个表单,
2、是有用户输入,调用表单处理器类,如正确,该转哪个页面就转哪个页面,
   如错误,继续显示表单,同时显示错误信息。

3、保存会话,或保存提交的数据这些代码写在表单处理器类里。
   如验证用户输入正确,则执行保存,并返回真给控制器类。
   如验证错误,则什么都不执行,返回假给控制器类。
4、表单处理器类本身也有属性(基本但不完全对应数据类),会显示在表单的各个表单元素里
5、基本没ajax什么事,但如果使用的话,会提高用户体验,因为网络往返的数据量小。

还有一个奇怪的select类,
什么意思呢?

            $select = $db->select();
            $select->from(array('t' => 'blog_posts_tags'),
                          array('count(*) as count', 't.tag'))
                   ->joinInner(array('p' => 'blog_posts'),
                               'p.post_id = t.post_id',
                               array())
                   ->where('p.user_id = ?', $user_id)
                   ->where('p.status = ?', self::STATUS_LIVE)
                   ->group('t.tag');

            $result = $db->query($select);
 


如上,$user_id 是一个有值的变量。

它的意思就是,你对sql厌烦透顶,于是,它给你提供一些新花样,让你暂时忘却直接写sql的枯燥。


实用功能还有很多,感兴趣可以体验一下。
买本php web2.0开发实战,然后就可以大段的抄代码。

从现在开始,跑步进入共产主义社会。


 

   发表时间:2008-11-08  
试试fleaphp,你会发现党开始搞改革开放了……
0 请登录后投票
   发表时间:2008-11-10  
试试ThinkPHP,你会发现党开始实现共产主义了.....
0 请登录后投票
   发表时间:2008-12-19  
所有的都试过之后,你会发现还是无党派人士最自由
0 请登录后投票
   发表时间:2008-12-20  
为啥不用CakePHP呢?!
0 请登录后投票
   发表时间:2008-12-20  
我们准备用CodeIgniter!
0 请登录后投票
   发表时间:2008-12-21  
跑了一圈,还是觉得用原始形态的小米加步枪敏捷。哈
0 请登录后投票
   发表时间:2008-12-22  
ruderal 写道

为啥不用CakePHP呢?!


zend功能更强大呗!
0 请登录后投票
   发表时间:2008-12-22  
CodeIgniter感觉不错,但和django比,还是不爽。
0 请登录后投票
   发表时间:2008-12-22  
各种框架都学习一下,吸取精华,去其糟粕,然后用在自己的开发中 才是正道
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics