php
/* $_POST{{'name'}} = 'John123Doe'; */
$filterPost = new Zend_InputFilter($_POST);
/* $_POST = NULL; */
$alphaName = $filterPost->getAlpha('name');
/* $alphaName = 'JohnDoe'; */
?>
传给每一个筛选方法的参数是对应要进行筛选的数组元素的键。该对象(在这个例子中是$filterPost
)是一个包含了有错误的数据的保护笼,这使得对数据的访问更加可控和一致。因此,当要访问输入数
据的时候,应该使用Zend_InputFilter。
Zend_Filter提供了一些静态的过滤方法,这些方法和Zend_InputFilter的方法遵循同样的规则。
创建一个新闻管理系统
尽管预览版还包含了很多组件(甚至还有更多的正在进行开发),但是只需要使用前面讨论过的组件就
可以构建简单的应用了。在构建应用的过程中,你就会对框架的基本结构和设计有一个更加清晰的理解
。
每个人开发应用的方式都有所不同,所以Zend Framework尽可能地尝试包容这些差异。同样,本教程是
根据我的偏好写的,所以你可以将它们调整为适合自己口味的方式。
当我开始开发某个应用时,我是先从界面开始的。这并不是说我喜欢做表面文章,花大量功夫在样式、
图片上,其实我是站在一个用户的角度来透视问题。这样,我将一个应用看作是一系列页面的集合,每
个页面对应一个唯一的URL。这个新闻管理系统有以下一些URL组成:
清单21
/
/add/news
/add/comment
/admin
/admin/approve
/view/{id}马上开始根据控制器考虑这些URL。IndexController显示新闻、AddController处理新闻和评
论的添加,AdminController处理诸如审批新闻之类的管理工作,以及ViewController用于查看指定的新
闻条目和相应的评论。
首先,如果有FooController.php,先将其删除,并修改IndexController.php并添加合适的动作,并加
入一些关于业务逻辑的注释放着:
清单22
php
Zend::loadClass('Zend_Controller_Action');
class IndexController extends Zend_Controller_Action
{
public function indexAction()
{
/* List the news. */
}
public function noRouteAction()
{
$this->_redirect('/');
}
}
?>
下面,创建AddController.php:
清单23