和Zend Framework 一起成长(二)
2009-03-27 17:34
555 查看
上接:和Zend Framework 一起成长(一)
网站
我们打算建立一个非常简单的库存系统网站,它用来管理我们的CD 收藏。在主页上将列出我们的收藏并允许我们添加,编辑和删除这些收藏的CD。我们打算把这些存储到一个数据库里。数据库的设计是这样的:
1.JPG
所需要的页面
下面这些页面是必需的。
2.JPG
组织页面
在设置文件之前,理解Zend Framework 如何组织页面很重要。每个应用程序的页面叫做”action”,许多”action”组成控制器。例如,对于这样一个格式的URL http://localhost/zftutorial/news/view 控制器是news, action 是view。 它允许把相关的action 组织成组,例如, 一个news 控制器可以有current, archived和view 的actions。Zend Framework 的MVC 系统也支持把控制器组成模块(module),但这个教程没有足够大到必须用它。
Zend Framework 控制器把index 作为一个缺省的action 而保留为特别的action。 这样,对于http://localhost/zf-tutorial/news/ 这样的url,在news 控制器里的indexaction 将被执行。Zend Framework 也保留了一个缺省的控制器,也毫不惊讶地叫做index。
这样,http://localhost/zf-tutorial/ 将执行index 控制器下的action index。作为一个简单的教程,我们不打算涉及“复杂的”事情如登陆,那将作为另外一个教程… …因为我们有四个页面用于albums,我们将把他们当作四个actions 组织到一个单个的控制器里。我们将使用缺省的控制器和四个actions,如下表:
3.JPG
设置控制器
现在可以设置控制器了。 在Zend Framework 里,控制器是一个必需被叫做{Controller name}Controller 的类。注意{Controller name}必需以大写字母开头。并且,这个类必须在叫做{Controller name}Controller.php 这样的文件中,这个文件还必需在特定的控制器目录中。强调一下,{Controller name}必需以大写字母开头并其他字母一定是小写。每个action 是在控制器类里的public 函数,名字必需是{action name}Action。在
这里,{action name}应该以小写字母开头。
这样在文件zf-tutorial/application/controllers/IndexController.php 里我们的控制器类叫做IndexController:
zf-tutorial/application/controllers/IndexController.php
开始,我们让每个action 输出它们的名字,导航到下表的URL 做测试:
4.JPG
现在,我们在程序里有个能工作的路由器和能够在每个页面被执行的正确的action。如果它不能工作,请到本教程后面查阅“故障排除”一节,看看能否得到帮助。
好啦,现在来做视图。
设置视图
Zend Framework 的视图叫做Zend_View,有点顾名思义。视图将允许我们把显示页面的代码从action 函数里分离出来。
基本的Zend_View 的用法是:
$vie
QUOTE:
w = new Zend_View();
$view->setScriptPath('/path/to/view_files');
echo $view->render('view.php');
如果我们打算直接把这个骨架放到action 函数并重复这个对action 毫无意义的代码,这将非常容易。但我们宁愿在其他地方初始化它,然后在action 里使用这个已经初始化过的对象。
Zend Framework 的设计者已经预料到这类问题并提供了方案,它放在Zend_Controller_Action 里。有两个助手函数:initView()和render()。 initView()函数创建Zend_View 对象并赋值给给$view 属性,准备好让我们赋值给它。它也设置Zend_View 对象去查找views/scripts/{controller name},以便视图脚本被调用。视图脚本通过render()来调用,它将调用脚本{action_name}.phtml 并追加到响应对象的body 里。响应对象用来把所有的
头,body content 和MVC 系统产生的异常放在一起。前端控制器接着自动地发送头以及紧接着的在dispatch 尾端的body content。
To integrate the view into our application we need to initialise the view in the init() function and then ensure we call render() in each action. We also need to create some view files with test display code.
为了集成视图到程序中,我们需要在init()函数里初始化视图并确保在每个action 里调用render()。我们也需要创建一些带有测试显示代码的视图文件。
如下修改 IndexController。(被修改的部分是黑体字)。正如你看到的,我们添加一个新的函数叫做init(),它被Zend_Controller_Action 的构造器自动地调用。这就确保视图能够在开始被初始化并且我们确信它已经准备好能被用在action 函数中。
zf-tutorial/application/controllers/IndexController.php
在每个函数中,我们分配一个title 变量给视图属性,接着,调用render()来显示视图模板。注意在这点上实际的显示并没有发生-它在dispatch 进程结束后由前端控制器来完成。
我们现在需要做四个视图文件。这些文件就是所知的模板并且render()方法期望每个模版文件的命名在它的action 之后并且带有.phtml 的扩展名来表明它是模板文件。模板文件必须在名字在控制器之后的子目录中,所以这四个文件是:
zf-tutorial/application/views/scripts/index/index.phtml
zf-tutorial/application/views/scripts/index/add.phtml
zf-tutorial/application/views/scripts/index/edit.phtml
zf-tutorial/application/views/scripts/index/delete.phtml
测试每个控制器/action,它们应该显示出四个黑体字标题
网站
我们打算建立一个非常简单的库存系统网站,它用来管理我们的CD 收藏。在主页上将列出我们的收藏并允许我们添加,编辑和删除这些收藏的CD。我们打算把这些存储到一个数据库里。数据库的设计是这样的:
1.JPG
所需要的页面
下面这些页面是必需的。
2.JPG
组织页面
在设置文件之前,理解Zend Framework 如何组织页面很重要。每个应用程序的页面叫做”action”,许多”action”组成控制器。例如,对于这样一个格式的URL http://localhost/zftutorial/news/view 控制器是news, action 是view。 它允许把相关的action 组织成组,例如, 一个news 控制器可以有current, archived和view 的actions。Zend Framework 的MVC 系统也支持把控制器组成模块(module),但这个教程没有足够大到必须用它。
Zend Framework 控制器把index 作为一个缺省的action 而保留为特别的action。 这样,对于http://localhost/zf-tutorial/news/ 这样的url,在news 控制器里的indexaction 将被执行。Zend Framework 也保留了一个缺省的控制器,也毫不惊讶地叫做index。
这样,http://localhost/zf-tutorial/ 将执行index 控制器下的action index。作为一个简单的教程,我们不打算涉及“复杂的”事情如登陆,那将作为另外一个教程… …因为我们有四个页面用于albums,我们将把他们当作四个actions 组织到一个单个的控制器里。我们将使用缺省的控制器和四个actions,如下表:
3.JPG
设置控制器
现在可以设置控制器了。 在Zend Framework 里,控制器是一个必需被叫做{Controller name}Controller 的类。注意{Controller name}必需以大写字母开头。并且,这个类必须在叫做{Controller name}Controller.php 这样的文件中,这个文件还必需在特定的控制器目录中。强调一下,{Controller name}必需以大写字母开头并其他字母一定是小写。每个action 是在控制器类里的public 函数,名字必需是{action name}Action。在
这里,{action name}应该以小写字母开头。
这样在文件zf-tutorial/application/controllers/IndexController.php 里我们的控制器类叫做IndexController:
zf-tutorial/application/controllers/IndexController.php
开始,我们让每个action 输出它们的名字,导航到下表的URL 做测试:
4.JPG
现在,我们在程序里有个能工作的路由器和能够在每个页面被执行的正确的action。如果它不能工作,请到本教程后面查阅“故障排除”一节,看看能否得到帮助。
好啦,现在来做视图。
设置视图
Zend Framework 的视图叫做Zend_View,有点顾名思义。视图将允许我们把显示页面的代码从action 函数里分离出来。
基本的Zend_View 的用法是:
$vie
QUOTE:
w = new Zend_View();
$view->setScriptPath('/path/to/view_files');
echo $view->render('view.php');
如果我们打算直接把这个骨架放到action 函数并重复这个对action 毫无意义的代码,这将非常容易。但我们宁愿在其他地方初始化它,然后在action 里使用这个已经初始化过的对象。
Zend Framework 的设计者已经预料到这类问题并提供了方案,它放在Zend_Controller_Action 里。有两个助手函数:initView()和render()。 initView()函数创建Zend_View 对象并赋值给给$view 属性,准备好让我们赋值给它。它也设置Zend_View 对象去查找views/scripts/{controller name},以便视图脚本被调用。视图脚本通过render()来调用,它将调用脚本{action_name}.phtml 并追加到响应对象的body 里。响应对象用来把所有的
头,body content 和MVC 系统产生的异常放在一起。前端控制器接着自动地发送头以及紧接着的在dispatch 尾端的body content。
To integrate the view into our application we need to initialise the view in the init() function and then ensure we call render() in each action. We also need to create some view files with test display code.
为了集成视图到程序中,我们需要在init()函数里初始化视图并确保在每个action 里调用render()。我们也需要创建一些带有测试显示代码的视图文件。
如下修改 IndexController。(被修改的部分是黑体字)。正如你看到的,我们添加一个新的函数叫做init(),它被Zend_Controller_Action 的构造器自动地调用。这就确保视图能够在开始被初始化并且我们确信它已经准备好能被用在action 函数中。
zf-tutorial/application/controllers/IndexController.php
在每个函数中,我们分配一个title 变量给视图属性,接着,调用render()来显示视图模板。注意在这点上实际的显示并没有发生-它在dispatch 进程结束后由前端控制器来完成。
我们现在需要做四个视图文件。这些文件就是所知的模板并且render()方法期望每个模版文件的命名在它的action 之后并且带有.phtml 的扩展名来表明它是模板文件。模板文件必须在名字在控制器之后的子目录中,所以这四个文件是:
zf-tutorial/application/views/scripts/index/index.phtml
zf-tutorial/application/views/scripts/index/add.phtml
zf-tutorial/application/views/scripts/index/edit.phtml
zf-tutorial/application/views/scripts/index/delete.phtml
测试每个控制器/action,它们应该显示出四个黑体字标题
相关文章推荐
- 和Zend Framework 一起成长(一)
- 和Zend Framework 一起成长(三)
- 和Zend Framework 一起成长(四)
- 与向上的心一起成长——武汉博文之行一
- [网络游戏网络底层开发]技术万岁,我们一起成长
- [瞭望站] 客户同我们一起成长。。。
- [瞭望站] 客户同我们一起成长。。。
- [瞭望站] 客户同我们一起成长。。。
- 与向上的心一起成长——武汉博文之行一
- PM成长日记第三话-那些年我们一起做过的项目
- 步步为营学习android,步步惊喜(菜鸟级别的我跟你一起成长)-序言
- 我与树莓派一起成长——DSI接口
- 【重要】成都四方科技招贤与最前沿的测试技术一起成长
- 互联网友谊成长记:那些年一起疯过的才子佳人
- 你的恋爱风格:你认为爱情应该让两个人一起成长。
- 我与51CTO学院一起成长
- 更新日志 - BugHD 与你的应用一起成长
- 要有耐性,要给自己时间,要给公司时间,要跟公司一起成长,不要受到外界影响就想放弃.
- 第一贴和大家一起成长~~
- 我想博客园同我一起成长,在这里记录着我的工作、学习、生活!