- 浏览: 74510 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
hay:
大骗子
zend studio教程 -
jiewuzhe02:
请问开源CMS digitaluscms 安装后不能登录后台 ...
zend frawework 开源代码列子 -
天梯梦:
怎么一个都打不开啊
zend studio教程 -
freedomstyle:
调试的时候,变量中文出现乱码
zend studio for eclipse 中文乱码的问题 -
freedomstyle:
是的,我也碰到这样的问题。
zend studio for eclipse 中文乱码的问题
最后,admin.php
模板可以用来批准新闻条目:
<html>
<head>
<title>News Admin</title>
</head>
<body>
<form action="/admin/approve" method="POST">
<?php foreach ($this->news as $entry) { ?>
<p>
<input type="checkbox" name="ids[]"
value="<?php echo $this->escape($entry['id']); ?>" />
<?php echo $this->escape($entry['title']); ?>
<?php echo $this->escape($entry['content']); ?>
</p>
<?php } ?>
<p>
Password:<br /><input type="password" name="password" />
</p>
<p><input type="submit" value="Approve" /></p>
</form>
</body>
</html>
提示:为了保持简单,这个表单用密码作为验证机制。
使用到模板的地方,你只需要把注释替换成几行代码。如IndexController.php
就变成下面这样:
<?php
class IndexController extends Zend_Controller_Action
{
public function indexAction()
{
/* List the news. */
$db = Zend::registry('db');
$view = Zend::registry('view');
$view->news = $db->getNews();
echo $view->render('index.php');
}
public function noRouteAction()
{
$this->_redirect('/');
}
}
?>
因为条理比较清楚,这个程序首页的整个业务逻辑只有四行代码。AddController.php
更复杂一点,它需要更多的代码:
<?php
class AddController extends Zend_Controller_Action
{
function indexAction()
{
$this->_redirect('/');
}
function commentAction()
{
/* Add a comment. */
$filterPost = new Zend_InputFilter($_POST);
$db = Zend::registry('db');
$name = $filterPost->getAlpha('name');
$comment = $filterPost->noTags('comment');
$newsId = $filterPost->getDigits('newsId');
$db->addComment($name, $comment, $newsId);
$this->_redirect("/view/$newsId");
}
function newsAction()
{
/* Add news. */
$filterPost = new Zend_InputFilter($_POST);
$db = Zend::registry('db');
$title = $filterPost->noTags('title');
$content = $filterPost->noTags('content');
$db->addNews($title, $content);
$this->_redirect('/');
}
function __call($action, $arguments)
{
$this->_redirect('/');
}
}
?>
因为用户在提交表单后被重定向,这个controller不需要视图。
在AdminController.php
,你要处理显示管理界面和批准新闻两个action:
<?php
class AdminController extends Zend_Controller_Action
{
function indexAction()
{
/* Display admin interface. */
$db = Zend::registry('db');
$view = Zend::registry('view');
$view->news = $db->getNews('NEW');
echo $view->render('admin.php');
}
function approveAction()
{
/* Approve news. */
$filterPost = new Zend_InputFilter($_POST);
$db = Zend::registry('db');
if ($filterPost->getRaw('password') == 'mypass') {
$db->approveNews($filterPost->getRaw('ids'));
$this->_redirect('/');
} else {
echo 'The password is incorrect.';
}
}
function __call($action, $arguments)
{
$this->_redirect('/');
}
}
?>
最后是ViewController.php
:
<?php
class ViewController extends Zend_Controller_Action
{
function indexAction()
{
$this->_redirect('/');
}
function __call($id, $arguments)
{
/* Display news and comments for $id. */
$id = Zend_Filter::getDigits($id);
$db = Zend::registry('db');
$view = Zend::registry('view');
$view->news = $db->getNews($id);
$view->comments = $db->getComments($id);
$view->id = $id;
echo $view->render('view.php');
}
}
?>
虽然很简单,但我们还是提供了一个功能较全的新闻和评论程序。最好的地方是由于有较好的设计,增加功能变得很简单。而且随着Zend Framework越来越成熟,只会变得更好。
更多信息
这个教程只是讨论了ZF表面的一些功能,但现在也有一些其它的资源可供参考。在http://framework.zend.com/manual/有手册可以查询,Rob Allen在http://akrabat.com/zend-framework/介绍了一些他使用Zend Framework的经验,而Richard Thomas也在http://www.cyberlot.net/zendframenotes提供了一些有用的笔记。如果你有自己的想法,可以访问Zend Framework的新论坛:http://www.phparch.com/discuss/index.php/f/289//。
结束语
要对预览版进行评价是很容易的事,我在写这个教程时也遇到很多困难。总的来说,我想Zend Framework显示了承诺,加入的每个人都是想继续完善它。
提示有什么评论、想法或问题,请访问Zend Framework的新论坛:http://www.phparch.com/discuss/index.php/f/289//。
关于作者—Chris Shiflett是Brain Bulb的负责人,而Brain Bulb是一家专业的PHP开发和安全方面的顾问公司。Chris的blog是http://shiflett.org。
发表评论
-
Zend Framework 教程大全(英文版)
2009-02-22 23:05 2506Zend Framework教程大全 07月 3rd, 200 ... -
Zend Framework 1.7.5发布增加了不少功能
2009-02-19 21:43 1384Welcome to Zend Framework 1.7 ... -
lucene的简单实例<一>
2009-02-17 15:15 1053说明一下,这一篇文章的用到的lucene,是用2.0版本的,主 ... -
走进全文搜索
2009-02-17 14:07 989走进全文搜索 http://www.phpx.com/hap ... -
Jobeet 第17天:搜索引擎
2009-02-17 10:49 934写给每个朋友来访的朋友! Friday, December ... -
Zend Search Lucene实现全文搜索收藏
2009-02-17 10:24 1850Zend Search Lucene实现全文搜索收藏 新一篇 ... -
DBSight-Zend Framework中lucene的最佳替代方案
2009-02-17 10:22 2330DBSight-Zend Framework中lucene的最 ... -
理解ZEND_DB_PROFILE相关的知识
2009-02-14 00:46 954MYSQL的性能跟踪mysql> help profil ... -
zend framwork quickstart 列子SQLLITE介绍
2009-02-13 01:54 1189SQLLITE 1、SQLite简介SQLite第一个Al ... -
ZF HEADLINK相关的HTML link标签 rel 属性
2009-02-12 21:04 2237rel 属性 -- rel属性,描述了当前页面与href所指定 ... -
php 目录结构学习
2009-02-11 21:59 0d:/docroot/ index.phpapplica ... -
zend framework中的helper们
2009-02-10 15:21 21792008-11-06 00:28 写 ... -
使用zend Framework的lucene进行全文检索——中文分词
2009-02-09 16:05 1932[2007/06/16 21:52 | 分类: PHP高级技 ... -
Zend Framework实例教程
2009-02-09 09:17 2701作者:张佳(译) 来源:PHPEye开源社区 20 ... -
Zend Framework 留言本实战
2009-02-08 20:27 5788一、环境搭建和ZF安装 *[注] ... -
xampp下跑zendframe框架apache报pdo错
2009-02-08 16:47 2043今天在xampp下跑zendframe框架 链接数据库,遇到这 ... -
zend frawework 开源代码列子
2009-02-08 13:01 16081.zend frawework QUICK START ... -
国外主流PHP框架比较
2009-02-06 10:13 2281国外主流PHP框架比较 作者:heiyelure ...
相关推荐
Zend Framework实例教程.pdf格式
1. Introduction to Zend Framework 1.1. 概述 1.2. 安装 2. Zend_Acl 2.1. 简介 2.1.1. 关于资源(Resource) 2.1.2. 关于角色(Role) 2.1.3. 创建访问控制列表(ACL) 2.1.4. 注册角色(Role) 2.1.5. 定义访问...
用实例讲述怎样使用Zend FrameWork,PHP开发者不可多得的资料
zendframework 的一个简单的实例教程
主要介绍了Zend Framework中Zend_Mail用法,结合实例形式分析了Zend Framework中Zend_Mail组件的功能、使用步骤与相关操作技巧,需要的朋友可以参考下
本套源码是基于最新的zend framework 2.3.1类库的入门实例,里面有完整的注释,希望能帮助到初学者或者有需要的朋友(本人初学者),如果项目不能运行,请留言.
非常好的一部教程,有实例源码 zend framework 1.9.0 2010年出版的 下的时候注意哦
主要介绍了Zend Framework教程之Zend_Controller_Plugin插件用法,结合实例形式详细分析了Zend_Controller_Plugin插件的原理,使用方法与相关注意事项,需要的朋友可以参考下
主要介绍了Zend Framework教程之Resource Autoloading用法,结合实例形式分析了Resource Autoloading实现自动加载的原理及具体使用方法,需要的朋友可以参考下
在ZendFramework中,主要是通过动作助手ViewRenderer来完成这个操作的。ViewRenderer 自动的完成在控制器内建立视图对象并渲染视图的过程; ViewRenderer 介绍 视图解析(ViewRenderer)助手为实现下列目标设计: 不...
本文实例讲述了Zend Framework教程之Application用法。分享给大家供大家参考,具体如下: Zend_Application是Zend Framework的核心组件。Zend_Application为Zend Framework应用程序提供基本功能,是程序的入口点。它...
主要介绍了Zend Framework教程之Zend_Layout布局助手用法,结合实例形式详细分析了Layout布局的相关实现技巧,需要的朋友可以参考下
主要介绍了Zend Framework入门教程之Zend_Session会话操作,结合实例形式详细分析了Zend_Session会话操作的具体使用技巧,需要的朋友可以参考下
主要介绍了Zend Framework入门教程之Zend_Config组件用法,结合实例形式分析了Zend_Config组件针对各种类型配置文件操作的相关技巧,需要的朋友可以参考下
本文实例讲述了Zend Framework入门教程之Zend_View组件用法。分享给大家供大家参考,具体如下: Zend_View组件可以实现MVC模式中视图部分的代码与Model和Controller部分的分离。 使用步骤:首先在Controller中建立一...
主要介绍了Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法,结合实例形式详细分析了Zend_Form组件的使用方法与实现表单提交的具体操作步骤,需要的朋友可以参考下
本文实例讲述了Zend Framework教程之分发器Zend_Controller_Dispatcher用法。分享给大家供大家参考,具体如下: 分发器的具体实现 Zend Framework的分发器Zend_Controller_Dispatcher设计主要有,如下类和接口组成:...