Zend 框架之 Zend_Application 之(一):Zend_Application 快速入门

有2种方法来开始 Zend_Application,这将取决你如何开始你的项目。无论是哪种方法,你总是以创建一个 Bootstrap 类,和一个相关的配置文件来开始的。

如果你计划使用 Zend_Tool 来创建你的项目,继续阅读。如果你想在一个已有项目中添加 Zend_Application,你可能需要跳把 Zend_Application 加入到你的项目 部分。

使用 Zend_Tool

开始使用 Zend_Application 的最快方式是使用 Zend_Tool 来生成你的项目。这将同时创建你的 Bootstrap 类和文件。

为了创建一个项目,执行以下 zf 命令(在 *nix 系统上):

% zf create project newproject

或者 Windows 上的 zf.bat 命令:

C:> zf.bat create project newproject

两者将会创建一下结构如下的项目:

        
      newproject
      |-- application
      |   |-- Bootstrap.php
      |   |-- configs
      |   |   `-- application.ini
      |   |-- controllers
      |   |   |-- ErrorController.php
      |   |   `-- IndexController.php
      |   |-- models
      |   `-- views
      |       |-- helpers
      |       `-- scripts
      |           |-- error
      |           |   `-- error.phtml
      |           `-- index
      |               `-- index.phtml
      |-- library
      |-- public
      |   `-- index.php
      `-- tests
          |-- application
          |   `-- bootstrap.php
          |-- library
          |   `-- bootstrap.php
          `-- phpunit.xml
	

在上面的结构中,你的 bootstrap 位于 newproject/application/Bootstrap.php,最初看起来像这样:

你会同时注意到一个配置文件,newproject/application/configs/application.ini,被创建了。它有以下的内容:

     
      [production]
      phpSettings.display_startup_errors = 0
      phpSettings.display_errors = 0
      includePaths.library = APPLICATION_PATH "/../library"
      bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
      bootstrap.class = "Bootstrap"
      resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
       
      [staging : production]
       
      [testing : production]
      phpSettings.display_startup_errors = 1
      phpSettings.display_errors = 1
       
      [development : production]
      phpSettings.display_startup_errors = 1
      phpSettings.display_errors = 1
	

这个配置文件内的所有配置,将被 Zend_Application 和你的 bootstrap 使用。

另外一个有趣的文件是 newproject/public/index.php,它将唤起 Zend_Application 和分发它(Zend_Application)。

为了继续快速开始,请跳到添加和创建资源 部分。

把 Zend_Application 加入到你的项目

Zend_Application 的基本面是十分简单的:

  • 创建一个 application/Bootstrap.php 文件,内容包括 Bootstrap 类
  • 创建一个 application/configs/application.ini 配置文件,内容是关于 Zend_Application 所必需的基本配置
  • 修改你的 public/index.php 来调用 Zend_Application

首先,创建你的 Bootstrap 类。创建一个文件,application/Bootstrap.php,带有以下内容:

现在,创建你的配置文件。具体到本教程,我们会使用一个 INI 风格的配置;你可以,当然,使用一个 XML 或者 PHP 风格的配置文件。创建 application/configs/application.ini 文件,文件内容如下:

      
      [production]
      phpSettings.display_startup_errors = 0
      phpSettings.display_errors = 0
      includePaths.library = APPLICATION_PATH "/../library"
      bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
      bootstrap.class = "Bootstrap"
      resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
       
      [staging : production]
       
      [testing : production]
      phpSettings.display_startup_errors = 1
      phpSettings.display_errors = 1
       
      [development : production]
      phpSettings.display_startup_errors = 1
      phpSettings.display_errors = 1
	

现在,让我们修改你的入口文件,public/index.php。如果文件不存在,创建它;否则,用以下内容代换它:

你可能注意到了应用程序的环境常量正在等待一个“APPLICATION_EVN”的环境变量。我们建议在你的 web 服务器环境中设置这个值。在 Apache,你既可以在你的虚拟主机的配置中设置,也可以在你的 .htaccess 文件中设置。对于你的 public/.htaccess 文件,我们建议如下设置:

 
      SetEnv APPLICATION_ENV development
       
      RewriteEngine On
      RewriteCond %{REQUEST_FILENAME} -s [OR]
      RewriteCond %{REQUEST_FILENAME} -l [OR]
      RewriteCond %{REQUEST_FILENAME} -d
      RewriteRule ^.*$ - [NC,L]
      RewriteRule ^.*$ index.php [NC,L]
	

注意:关于 mod_rewrite

上面的重写规则允许访问你的虚拟主机文档根目录中的任何文件。如果有任何你不想通过这种方式被访问的文件,你可能需要在你的重写规则中作出更严格的限制。访问 Apache 网站来学习更多关于 mod_rewrite 的相关知识。

到现在,你已经为开始更深利用 Zend_Application 全部准备好了。

添加和创建资源

如果你按照上述步骤做下来,那么你的 bootstrap 类将利用一个前端控制器(front controller),当它(bootstrap 类)运行的时候,它将分发这个前端控制器。然而,更可能的情况是,你还需要做更进一步的配置。

在这个部分,我们将会探讨为你的应用程序添加两个资源。首先,我们会建立你的模板(layout),然后我们将配置你的视图对象(view object)。

由 Zend_Application 提供的一个标准资源是“模板”(layout)资源。这个资源等待你来定义配置相关的值,然后它将利用这些值来配置你的 Zend_Layout 实例。

为了使用它,我们要做的只是更新配置文件。

      
      [production]
      phpSettings.display_startup_errors = 0
      phpSettings.display_errors = 0
      bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
      bootstrap.class = "Bootstrap"
      resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
      ; ADD THE FOLLOWING LINES
      resources.layout.layout = "layout"
      resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
       
      [staging : production]
       
      [testing : production]
      phpSettings.display_startup_errors = 1
      phpSettings.display_errors = 1
       
      [development : production]
      phpSettings.display_startup_errors = 1
      phpSettings.display_errors = 1
	

如果 application/layouts/scripts/ 这个目录不存在,创建它,然后在这个目录下创建 layout.phtml 文件。一个好的开始模板文件如下(将会和后面提到的视图资源紧密相关):

到现在为止,你会拥有一个运行正常的模板。

现在,我们将添加一个定制的视图资源。当初始化这个视图的时候,我们想设置 HTML 的 DocType 以及在 HTML 头部使用的一个默认 title 值。这可以通过编辑你的 Bootstrap 类,在这个类中添加一个方法来做到:

这个方法将会在你启动应用程序的时候被自动执行,而且确保你的视图根据你的应用程序的需要被初始化。

对 Zend_Application 进一步利用

以上应该会让你开始使用 Zend_Application 并且创建你的应用程序的 bootstrap。从现在开始,你应该开始创建资源的方法,或者,为了重用性的最大化,资源插件类。继续阅读以学习更多。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值