Zend_Controller 快速入门简介
入门如果你想深入了解控制器,请认真看下面几节内容,如果你只是想快速地把系统搭建起来,看这一节。 文件系统的组织结构首先你要规划好自己的文件结构布局,典型的结构是这样的: application/ controllers/ IndexController.php models/ views/ scripts/ index/ index.phtml helpers/ filters/ html/ .htaccess index.php 设置文件根目录
将你的WEB服务器文件根目录指向上面文件布局中的 创建URL重写规则
创建 RewriteEngine on RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php 在上例中,所有请求(除了对那几个扩展名的文件的请求)都被转向到index.php。如果你想在访问某些扩展名的文件时不转向到index.php,你可以建立自己的URL重写规则,或者直接把扩展名添加到(|)之中去。
创建你的bootstrap文件(所谓Bootstrap,就相当于一小段引导程序或者入口程序,在ZF中,通常即指index.php,因为我们所有的请求都是从index.php进入的。--Haohappy注) 在设置好 .htaccess文件之后,建立一个新的文件index.php: Zend_Controller_Front::run('/path/to/app/controllers'); 这是一个入口文件,目的仅在于启动Zend_Controller_Front。Zend_Controller_Front用于分配请求到不同的控制器。 创建默认的控制器(Action Controller)
在讨论控制器之前,你应该先理解Zend Framework是如何处理HTTP请求的。默认情况下,URL的第一个部份会映射到一个控制器,第二个部份则映射到控制器类中的Action(即控制器类内部的一个方法)。例如:URL
接下来,
类似地,action会映射到控制器类中的一个类方法。默认情下,会被转成小写字母,然后加上
现在让我们来创建一个默认的控制器和Action方法吧。上面说过,默认的控制器和方法都以“index”命名。打开文件 /** Zend_Controller_Action */ class IndexController extends Zend_Controller_Action { public function indexAction() { } }
默认情况下,ViewRenderer会被启用。这意味着只需要简单地下定义一个action方法,就会自动指定一个对应的View脚本,你可在action中直接把内容输出。默认情况下,我们采用Zend_View作为MVC开发的表现层部份。 创建你的视图脚本
之前说过,视图脚本(即模板文件)放在 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>My first Zend Framework App</title> </head> <body> <h1>Hello, World!</h1> </body> </html> 创建你自己的错误控制器
默认情况下,“错误处理器”插件 是已经被注册的。这个插件要求存在一个用于处理错误的控制器。它假设存在一个 class ErrorController extends Zend_Controller_Action { public function errorAction() { } }
使用我们之前讨论的目录布局,这个文件将是 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>错误</title> </head> <body> <h1>出错了</h1> <p>出现了一个错误,请重试。</p> </body> </html> 访问站点!
创建好了你的第一个控制器和模板,你现在可以打开浏览器来访问看看了! 假设
恭喜你! 你已经准备好了,可以开始创建更多的控制器和Action!
|