`
xieye
  • 浏览: 811474 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

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

    博客分类:
  • 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开发实战,然后就可以大段的抄代码。

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


 

分享到:
评论
23 楼 gigivszhao 2009-09-18  
php还是自由式开发最好。不要用框架。
22 楼 xieye 2009-09-14  
现在很多单位招聘都问,会不会CMS,见鬼的cms,

别的语言写程序都是写程序,php语言写程序却是“改程序”。我也不知道discuz好在哪边,多少人把他当个宝。
21 楼 xieye 2009-09-14  
我也不知道我的版本,大概1.6吧,
文件中是Copyright (c) 2005-2008

其实无所谓,用他的MVC框架就行了。我也不更新
20 楼 Puras 2009-09-14  
有些头晕,ZF的版本之间的变化太大了。
还是1.9.1相比较之前的版本变化太大了?
官网的文档,版本貌似都不是1.9.1的。
崩溃呀。
19 楼 smiletuna 2009-09-13  
只用过 smarty...hehe。其他的看了一下 发现还不如自由派好
18 楼 kingheaven 2009-07-15  
dualface 写道
ZF、CI、SY、Cake,性能上都不行 -_-#


dualface看来哪个框架性能好呢?
17 楼 ynw520 2009-07-14  
zend用的不爽。。。。
16 楼 samshuai 2009-06-18  
Magento也是用的这个框架..非常的不错
15 楼 key232323 2009-05-17  
一直在用thinkphp……

文档够多,源码简洁,不失为学习的好材料。

社区还行吧,官网更新速度快,几个群天天聊的热火朝天。
14 楼 Julien 2009-04-26  
cakephp就真别推荐了……只有学术研究价值……
选择框架,性能和架构之外,应用案例多社区活跃也是重要的参考标准
大厂商推的极端主观的低效重型神经框架或者学院派推的没有实际应用价值的精美概念框架都无视即可
不管是php圈子还是java圈子都是这个理
13 楼 dualface 2009-04-26  
ZF、CI、SY、Cake,性能上都不行 -_-#
12 楼 七月十五 2009-04-25  
PHP框架多了去了,能上得了台面的没有几个。
正如上面提到的,所有的这些都试过了,你会发现做个无党派人士也挺爽的。

PS:推荐用国际上流行的框架,比如ZendFramework、CodeIgniter、Symfony、CakePHP等。

BTW:几天没来,PHP被拎出来了,呵呵,这倒像PHP在JE是成立了党组织了^_^
11 楼 flyingbug 2009-04-23  
建议试试kohana或者Qeephp
10 楼 rootsoso 2009-04-23  
xieye 写道
ruderal 写道

为啥不用CakePHP呢?!


zend功能更强大呗!


Zend的性能的确很有问题 除非你有钱购买高级优化方案
9 楼 xombat 2008-12-22  
各种框架都学习一下,吸取精华,去其糟粕,然后用在自己的开发中 才是正道
8 楼 guotie 2008-12-22  
CodeIgniter感觉不错,但和django比,还是不爽。
7 楼 xieye 2008-12-22  
ruderal 写道

为啥不用CakePHP呢?!


zend功能更强大呗!
6 楼 dogstar 2008-12-21  
跑了一圈,还是觉得用原始形态的小米加步枪敏捷。哈
5 楼 LucasLee 2008-12-20  
我们准备用CodeIgniter!
4 楼 ruderal 2008-12-20  
为啥不用CakePHP呢?!

相关推荐

Global site tag (gtag.js) - Google Analytics