
2007-6-21 11:54
蒲公英
ZF1.0.0基础上整理了个数据库驱动程序与phper共享(11月9日更新)
在ZF1.0RC2基础上做了个数据库驱动程序,希望对ZF初学者有帮助。
本人联系方式:
蒲公英
QQ: 790304
Mail: [email]liangj@fuchart.com[/email]
先介绍几个ZF配套站点:
ZF论坛: [url]http://www.zfforums.com/[/url]
ZF指南: [url]http://www.zftutorials.com[/url] 现在的ZF例子还比较少
ZF网址统计:[url]http://www.zflinks.com/[/url]
ZF聊天室: [url]http://www.zftalk.com/[/url] 只要你安装个XChat就可以与世界各地的ZF爱好者交流
第一. 软件版本
ZF: Zend Framework 1.0.0 Release Candidate 2 ([url]http://framework.zend.com/download[/url])
SMARTY: Smarty 2.6.18 ([url]http://smarty.php.net/download.php[/url])
第二. 参考资料
1. 《与Zend framework一起成长》系列,原创网站[url]www.akrabat.com[/url]
getting-started-with-the-zend-framework_140.pdf
getting-started-with-zend-auth_105.pdf
2. Zend_Acl / Zend_Auth example scenario 我能找到的网上仅有的几个谈及Zend_Auth和Zend_Acl比较好的一个
[url]http://devzone.zend.com/node/view/id/1665[/url]
第三. 上传例子说明
1. 实现功能
1). ZF结合了Smarty
2). Zend_Acl和Zend_Auth实现了三级权限管理
guest角色: 只能浏览数据列表;
member角色: 浏览列表,添加数据,对自己以前添加的数据进行修改删除;
admin角色: 能进行所有超作。
3). Zend_Db操作mysql数据库
2. Directory Layout
zftest---- API
|--- app---- config
| |---- controllers
| |---- models
| |---- views
|--- libs---- Custom
| |----- Smarty
| |----- Zend
|--- templates_c
|--- www
|--- zftest.sql
【注】
API: 此文件夹为自己用PhpDocumentor-1.3.2生成的自定义类文档,由于本人英文太差希望不会误导各位phper;
app: 这个就不说了;
libs/Custom: 这里定义了几个基础类;
libs/Smarty,libs/Zend:这俩个就不用说了吧,为了减少上传容量我的上传包删除了他们,需要自己加上;
templates_c:为Smarty的缓存目录;
www:这里面放置了index.php;
zftest.sql: 为用到的sql文件
3. 本人也是初学者,例子中难免有错误或不当的地方希望朋友们指正。此例子中ZF与Smarty结合部分应该还可以,在用
Zend_Auth和Zend_Acl实现认证和权限管理时还需要有很多改进的地方,如果有更好的方法别忘了告诉我 :)
第四. 安装说明
1. 大家别忘了配置apache的mod_rewrite模块打开;
2. 把AllowOverride都改成all。
【[color=Red]6月25日更新[/color]】
1. 由ZF1.0RC2转成ZF1.0RC3(相应修改了Custom_View_Smarty类的setBasePath和addBasePath方法)
2. 修改了控制器IndexController的第106,143免在恶意操作不存在的记录时产生Fatal error: Call to a member function toArray() on a non-object 错误
3. 更新了API内文档
【[color=Red]7月2日更新[/color]】
此次在ZF1.0.0基础上检测此应用程序运行正常,没进行任何修改
【[color=Red]7月13日更新[/color]】
1. 更改了页面;
2. 修改了一些bug;
3. 设置了Smarty的缓存目录,例子中没有应用这个缓存功能;
4. Smarty的缓存目录(_cache)和编译目录(_templates_c)改放到了每个模块下,原因之一是速度可以快点另外如果整个应用
程序用一个编译目录那么当不同Module中存在相同文件名的模版文件时会有问题,如果phper有好的处理方法别忘了通知我一下,呵呵;
5. 引入了Module机制,现在app里存在default和admin俩个Module,admin模块用了管理member角色用户;
6. 根据第二点相应的ACL当然要相应变化,现在ACL也要涉及Module了;
7. 更新了API;
8. 数据库稍有变化;
【[color=Red]7月17日更新[/color]】
修改了ACL的处理方法
此次更新说明:
页面中虽然有翻页按钮但功能还没有时间实现,将在以后更新;
【[color=Red]11月9日更新[/color]】
在default模块中增加了分页功能
[注]admin模块未追加
[[i] 本帖最后由 蒲公英 于 2008-1-22 13:24 编辑 [/i]]
2007-6-21 16:28
wanghaozi
下午抽空看了 自愧不如 觉得自己对zf的理解还是皮毛,呵呵 学习了
2007-6-21 18:11
wanghaozi
蒲公英 说:
在我贴的那个例子里有些问题,理论上讲当跃权限访问时应该执行error控制器里的error方法,但不知什么原因没有出现应得的结果
希望大家能够慢慢都完善起来把这个例子
2007-6-22 08:36
蒲公英
谢谢支持 :)
[[i] 本帖最后由 蒲公英 于 2007-6-22 09:24 编辑 [/i]]
2007-6-23 10:38
ggg
很不错,学习了!
2007-6-23 11:30
ggg
提下意见
楼主真为国内zf初学者着想,那就多写几行中文注解。
ZF 的运行效率真是太糟糕了 显示一个很简单的添加表单的页面
elapsed: 1866.081ms
:L
2007-6-23 13:07
Haohappy
[quote]原帖由 [i]ggg[/i] 于 2007-6-23 11:30 发表 [url=http://www.phpeye.com/bbs/redirect.php?goto=findpost&pid=305&ptid=64][img]http://www.phpeye.com/bbs/images/common/back.gif[/img][/url]
提下意见
楼主真为国内zf初学者着想,那就多写几行中文注解。
ZF 的运行效率真是太糟糕了 显示一个很简单的添加表单的页面
elapsed: 1866.081ms
:L [/quote]
不可能的,应该是你自己的程序问题。phpeye就是用ZF的,首页执行时间在0.2-0.3秒间。
2007-6-23 14:10
蒲公英
实在不好意思 :) 以后都整理好了再弄份中文注释的。
2007-6-24 20:32
wanghaozi
我试了一下错误控制也没有问题 ,主要是学习到了plugin的技巧 我不知道你说的错误控制是什么 他分2层一层是通过解析controller action 进行校验另外一层是在action里面 比如 编辑 一条信息的时候 member和admin都有编辑的权限 但是具体的条目是不是允许member来编辑(因为admin编辑添加的member是不能编辑的),这就需要在action里面进行校验,我看到源码里面action里面校验的时候跳转地址写死了
IndexController的第111行
$this->_redirect('http://127.0.0.1/ZF3/www/error/privileges/');
不知道你的错误是不是由这个引起的呵呵
关于中英文的问题我觉得大家还是争取多看看英文的吧
2007-6-25 10:22
FANS
不错,这位老大的帖子对我们这些初学者的帮助是非常有用的
2007-6-25 10:31
蒲公英
回复 #9 wanghaozi 的帖子
蚂蚁:应该是你说的问题!
2007-6-25 10:40
beiersi
无条件支持
2007-7-12 09:41
蒲公英
一周之后将更新此示例:
1. 修改页面;
2. 增加模块admin,此模块用于admin角色管理member角色;
3. 重新整理ACL
2007-7-16 17:33
quan.zhao
太感谢了,最好有注释
2007-7-17 16:50
蒲公英
【7月13日更新】
1. 更改了页面;
2. 修改了一些bug;
3. 设置了Smarty的缓存目录,例子中没有应用这个缓存功能;
4. Smarty的缓存目录(_cache)和编译目录(_templates_c)改放到了每个模块下,原因之一是速度可以快点另外如果整个应用
程序用一个编译目录那么当不同Module中存在相同文件名的模版文件时会有问题,如果phper有好的处理方法别忘了通知我一下,呵呵;
5. 引入了Module机制,现在app里存在default和admin俩个Module,admin模块用了管理member角色用户;
6. 根据第二点相应的ACL当然要相应变化,现在ACL也要涉及Module了;
7. 更新了API;
8. 数据库稍有变化;
2007-7-17 16:53
蒲公英
【7月17日更新】
修改了ACL的处理方法
2007-7-31 14:16
pampas
其实还是很希望可以有个比较详细的中文注释!~这样大家看起来会比较方便一点!~还可以更多的照顾一下刚接触ZF的朋友:)
2007-8-16 17:37
inmagic
哈哈 知道了
Uncaught exception 'Zend_Db_Adapter_Exception' with message 'The mysql driver is not currently installed' in
zfdemo\libs\Zend\Db\Adapter\Pdo\Abstract.php:104 Stack trace: #0
zfdemo\libs\Zend\Db\Adapter\Abstract.php(246): Zend_Db_Adapter_Pdo_Abstract->_connect() #1
zfdemo\libs\Zend\Db\Adapter\Pdo\Abstract.php(206): Zend_Db_Adapter_Abstract->query('DESCRIBE `album...', Array) #2
zfdemo\libs\Zend\Db\Adapter\Pdo\Mysql.php(108): Zend_Db_Adapter_Pdo_Abstract->query('DESCRIBE `album...') #3
zfdemo\libs\Zend\Db\Table\Abstract.php(595): Zend_Db_Adapter_Pdo_Mysql->describeTable('album', NULL) #4
zfdemo\libs\Zend\Db\Table\Abstract.php(528): Zend_Db_Table_Abstract->_setupMetadata() #5
zfdemo\libs\Zend\Db\Table\Abstract.php(264): Zend_Db_Table_Abstract->_setup() #6
zfdemo\app\modules\default\controllers\IndexController.php(36): Zend_Db_Table_Abstract->__construct() #7
zfdemo\libs\Zend\Db\Adapter\Pdo\Abstract.php on line 104
[[i] 本帖最后由 inmagic 于 2007-8-16 17:39 编辑 [/i]]
2007-8-20 19:46
donglong
支持
2007-11-9 12:37
蒲公英
【11月9日更新】
在default模块中增加了分页功能
[注]admin模块未追加
页:
[1]
2
Powered by Discuz! Archiver 5.5.0
© 2001-2006 Comsenz Inc.