在ZF中的MVC结构中,目录结构是这样的:

Zend Framework(二)基础MVC结构application/
Zend Framework(二)基础MVC结构    controllers/
Zend Framework(二)基础MVC结构        IndexController.php
Zend Framework(二)基础MVC结构    models/
Zend Framework(二)基础MVC结构    views/
Zend Framework(二)基础MVC结构        scripts/
Zend Framework(二)基础MVC结构            index/
Zend Framework(二)基础MVC结构                index.phtml
Zend Framework(二)基础MVC结构        helpers/
Zend Framework(二)基础MVC结构        filters/
Zend Framework(二)基础MVC结构html/
Zend Framework(二)基础MVC结构    .htaccess
Zend Framework(二)基础MVC结构    index.php

在Apache中新建一个alias,目录指向html/下,.htaccess是apache的目录配置文件,里面存放了一些指令,可以改变apache的一些访问规则,比如404出错提示信息等等,我们这里要放的是urlrewrite,URL重定向信息。

将以下信息复制到.htaccess中:
Zend Framework(二)基础MVC结构RewriteEngine on
Zend Framework(二)基础MVC结构RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
这些信息的意思是除了一些资源文件外,其他后缀名的文件全部重定向到index.php文件。


这样,index.php就接收了该站所有的请求,这时候index.php就被称为 bootstrap 文件,所谓bootstrap,就是一小段引导程序或者入口程序,index.php的内容如下:
Zend Framework(二)基础MVC结构<?php
Zend Framework(二)基础MVC结构
require_once 'Zend/Controller/Front.php';
Zend Framework(二)基础MVC结构Zend_Controller_Front
::run('../application/controllers');

以上代码的意思是启动Zend_Controller_Front,ZendFront是前端控制器,负责解析URL,将请求分配给不同的控制器。

然后我们创建一个默认的控制器,在application/controllers目录下创建一个IndexController.php文件,内容如下:
Zend Framework(二)基础MVC结构<?php
Zend Framework(二)基础MVC结构
/** Zend_Controller_Action */
Zend Framework(二)基础MVC结构
require_once 'Zend/Controller/Action.php';
Zend Framework(二)基础MVC结构
Zend Framework(二)基础MVC结构
class IndexController extends Zend_Controller_Action
Zend Framework(二)基础MVC结构{
Zend Framework(二)基础MVC结构    
public function indexAction()
Zend Framework(二)基础MVC结构    {
Zend Framework(二)基础MVC结构    }
Zend Framework(二)基础MVC结构}
Zend Framework(二)基础MVC结构
Zend Framework(二)基础MVC结构

一个控制器就建立好了,可以看到,控制器就是从Zend_Conttroller_Action继承的一个类,并且以Controller结尾,这是ZendFramework的MVC结构中的约定,而URL中的第一部分会被解释为控制器,并与我们这里所创建的控制器一一对应起来。
IndexConttroller类中有一个方法,叫做indexAction,这个方法与URL中的第二部分对应起来。
也就是说,上面建立的这个IndexController控制器的IndexAction方法,对应的URL就是: /index/index,访问这个URL就会调用indexAction方法。

在默认情况下,ViewRenderer是启用的。

相关文章:

  • 2021-10-31
  • 2022-12-23
  • 2021-10-23
  • 2022-01-20
  • 2021-06-19
  • 2021-07-02
  • 2021-11-22
  • 2022-12-23
猜你喜欢
  • 2021-05-20
  • 2021-12-05
  • 2022-12-23
  • 2021-11-09
  • 2021-05-21
  • 2022-01-14
相关资源
相似解决方案