`

Zend Framework 1.10.1 快速入门之二:创建 Zend Framework 项目

 
阅读更多

安装Zend Framework

为了创建您的项目,首先您需要下载并解压缩 Zend Framework。

最简单的方法是安装 Zend Server。Zend Server 已经有 Mac OSX,Windows,Fedora Core,和 Ubuntu 版本的安装程序,以及一个适用于绝大多数 Linux 的安装包。

安装 Zend Server 以后,可以在 Mac OSX 和 Linux 下的 /usr/local/zend/share/ZendFramework,在 Windows 下 C:/Program Files/Zend/ZendServer/share/ZendFramework 找到 Zend Framework 文件 。include_path 路径已经被配置成包括了 Zend Framework 。

如果不打算安装 Zend Server,您可以 »下载 Zend Framework 的最新版本然后解压缩。记住文件解压缩后所在位置。

解压缩以后,可以把 Zend Framework 文件夹下的 library/ 子目录添加到 php.ini 的 include_path 路径中。比如解压缩以后,Zend Framework 放置在 C:/program files/ 下,打开 php.ini,找到 include_path 这一行,如果前面有注释符,把注释符去掉,然后整句修改为:

include_path = ".;C:/program files/Zend Framework/library"

就是这样! 框架现在已经安装并可以使用。

创建项目

zf 命令行工具

在您的 Zend Framework 文件夹中,有一个 bin/ 子目录,包含 zf.sh 脚本(适合 Unix 用户)和 zf.bat 脚本(适用 Windows 用户)。记下这个脚本的绝对路径。

下文只要看到 zf 命令,请以绝对路径替换它。 比如您的 zf.bat 文件在 C:/program files/zend framework/bin/zf.bat,那么下面只要是 zf 的命令,就用 C:/program files/zend framework/bin/zf.bat 替换。

在 Unix 系统,您可以把 zf 添加到 shell: alias zf.sh=path/to/ZendFramework/bin/zf.sh .

如果您对设置 zf命令行工具有疑问,请参考 手册

打开一个终端(在 Windows 中, Start -> Run ,然后输入 cmd )。

导航到您想建立项目的文件夹。

执行下列操作:

  1. % zf create project quickstart

运行此命令将创建网站的基本结构,以及最初的控制器和视图。该树如下所示:

  1. quickstart
  2. |-- application
  3. | |-- Bootstrap.php
  4. | |-- configs
  5. | | `-- application.ini
  6. | |-- controllers
  7. | | |-- ErrorController.php
  8. | | `-- IndexController.php
  9. | |-- models
  10. | `-- views
  11. | |-- helpers
  12. | `-- scripts
  13. | |-- error
  14. | | `-- error.phtml
  15. | `-- index
  16. | `-- index.phtml
  17. |-- library
  18. |-- public
  19. | |-- .htaccess
  20. | `-- index.php
  21. |-- tests
  22. |-- application
  23. | `-- bootstrap.php
  24. |-- library
  25. | `-- bootstrap.php
  26. |`-- phpunit.xml

此时,如果您没有将 Zend Framework 包括到 include_path 路径中的话,我们建议,把下载解压缩后的 zend framework 目录下的 library/ 里面的 Zend/ 整个文件夹,复制到之前建立项目下的 library/ 目录中。或者建立一个软链接。在类 Unix 系统,这将类似于下列之一:

  1. # Symlink:
  2. % cd library; ln -s path/to/ZendFramework/library/Zend .
  3. # Copy
  4. % cd library; cp -r path/to/ZendFramework/library/Zend .

在Windows系统上,通过文件浏览器很容易办到这些。

现在,项目已经创建,下面的主要目标将是理解:bootstrap, configuration, action controllers, 和 views。

The Bootstrap

Bootstrap 类定义了将要初始化的资源和组件。

默认情况下,Zend Framework 的前端控制器被初始化,它默认使用 application/controllers/ 目录,在这个目录中寻找动作控制器(有关动作控制器的详细内容将在后面介绍)。这个类看起来是这样的:

正如您所看到的,开始并不需要做太多事情。

配置(Configuration)

虽然 Zend Framework 本身不需要配置,您需要经常配置您的应用程序。配置默认放置在 application/configs/application.ini 文件中,这个文件了包含一些基本指令用来设置 PHP 环境(例如,打开还是关闭错误报告),指示到 bootstrap 类的路径(以及类的名称),还有到动作控制器的路径。配置文件看起来像这样的:

  1. ; application/configs/application.ini
  2. [ production ]
  3. phpSettings. display_startup_errors = 0
  4. phpSettings. display_errors = 0
  5. includePaths. library = APPLICATION_PATH "/../library"
  6. bootstrap. path = APPLICATION_PATH "
  7. bootstrap. class = "Bootstrap"
  8. appnamespace = "Application"
  9. resources.frontController. controllerDirectory = APPLICATION_PATH "/controllers"
  10. resources.frontController.params. displayExceptions = 0
  11. [ staging : production ]
  12. [ testing : production ]
  13. phpSettings. display_startup_errors = 1
  14. phpSettings. display_errors = 1
  15. [ development : production ]
  16. phpSettings. display_startup_errors = 1
  17. phpSettings. display_errors = 1

有关此文件有几点应该指出的。

首先,当使用的 INI 格式的配置文件,您可以直接引用常量并且扩展它们; APPLICATION_PATH 就是一个常量。

另外注意到,被定义的这几个部分:production, staging, testing, 以及 development。后三个继承自“production”环境。这是有效组织配置的一个方法,从而确保在应用程序开发的每一阶段都能有合适的配置。

动作控制器(Action Controllers)

应用程序的动作控制器包含了应用程序的工作流程,以及把请求映射到适当的模型和视图。

一个动作控制器类应该有一个或多个以“Action”结尾的方法;这些方法可以通过网络被请求。默认情况下,Zend Framework 的 URL 遵循 /constroller/action 的结构,其中“controller”映射动作控制器类的名称(不包括“Controller”这个后缀)同时“action”映射到动作控制器类里面的一个 action 方法(不包括 “Action”这个后缀)。

通常,总是需要一个 IndexController,这是一个 fallback 控制器,它也服务该网站的主页;同时还需要一个 ErrorController,这是用来处理,如 HTTP 404 错误(未找到控制器或行动)和 HTTP 500 错误(应用程序错误)这些事情。

默认 IndexController 如下:

默认 ErrorController 如下:

您会注意到,(1)IndexController没有包含真正的代码,并且(2)ErrorController 引用了一个 "view"属性。这让我们很好地进入下一个议题。

视图

在 Zend Framework 中视图是用老式的 PHP 代码写成。视图脚本放置在 application/views/scripts/,它们在那里继续使用动作控制器名称分目录。就我们这个例子而言,我们有一个 IndexController 和 ErrorController,所以,我们在我们的视图脚本目录,相应的就有 index/ 和 error/ 子目录。在这些子目录,可以查找和创建与每一个动作控制器对应的视图脚本,在本例中,我们有视图脚本 index/index.phtml 和 error/error.phtml。

视图脚本可以包含任何您想使用的 HTML 标签,并使用 <?php ?> 来插入 PHP 脚本。

以下是我们默认安装的 index/index.phtml 视图脚本:

<!-- application/views/scripts/index/index.phtml -->
<style>
 
    a:link,
    a:visited
    {
        color: #0398CA;
    }
 
    span#zf-name
    {
        color: #91BE3F;
    }
 
    div#welcome
    {
        color: #FFFFFF;
        background-image: url(http://framework.zend.com/images/bkg_header.jpg);
        width:  600px;
        height: 400px;
        border: 2px solid #444444;
        overflow: hidden;
        text-align: center;
    }
 
    div#more-information
    {
        background-image: url(http://framework.zend.com/images/bkg_body-bottom.gif);
        height: 100%;
    }
 
</style>
<div id="welcome">
    <h1>Welcome to the <span id="zf-name">Zend Framework!</span><h1 />
    <h3>This is your project's main page<h3 />
    <div id="more-information">
        <p>
            <img src="http://framework.zend.com/images/PoweredBy_ZF_4LightBG.png" />
        </p>
 
        <p>
            Helpful Links: <br />
            <a href="http://framework.zend.com/">Zend Framework Website</a> |
            <a href="http://framework.zend.com/manual/en/">Zend Framework
                Manual</a>
        </p>
    </div>
</div>

error/error.phtml 视图脚本因为它使用了一些 PHP 条件语句显得更有趣:

<!-- application/views/scripts/error/error.phtml -->
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN";
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      <title>Zend Framework Default Application</title>
    </head>
    <body>
      <h1>An error occurred</h1>
      <h2><?php echo $this->message ?></h2>
     
      <?php if ('development' == $this->env): ?>
     
      <h3>Exception information:</h3>
      <p>
          <b>Message:</b> <?php echo $this->exception->getMessage() ?>
      </p>
     
      <h3>Stack trace:</h3>
      <pre><?php echo $this->exception->getTraceAsString() ?>
      </pre>
     
      <h3>Request Parameters:</h3>
      <pre><?php echo var_export($this->request->getParams(), 1) ?>
      </pre>
      <?php endif ?>
     
    </body>
    </html>

创建一个虚拟主机

为了学习这个快速入门,我们假设您正在使用 Apache web 服务器。Zend Framework 在其它的服务器上同样工作良好--包括微软的 IIS,lighttpd,nginx,以及更多--但是绝大多数的开发者都至少熟悉 Apache,它很便捷的提供了 Zend Framework 所需要的目录结构和重写功能。

为了创建虚拟主机,应该知道 httpd.conf 文件所在的位置,以及其它潜在配置文件所在的位置。一些通常的位置是:

/etc/httpd/httpd.conf (Fedora, RHEL, and others)

/etc/apache2/httpd.conf (Debian, Ubuntu, and others)

/usr/local/zend/etc/httpd.conf (Zend Server on *nix machines)

C:/Program Files/Zend/Apache2/conf (Zend Server on Windows machines)

在 httpd.conf(或者某些系统上的 httpd-vhosts.conf 文件)文件中,将需要做两件事情。首先,确保 NameVirtualHost 已经被定义;通常的,把它设置成 *:80 这个值。其次,定义一个虚拟主机:

<VirtualHost *:80>
ServerName quickstart.local
DocumentRoot /到 quickstart 的路径/quickstart/public

SetEnv APPLICATION_ENV "development"

<Directory /到 quickstart 的路径/quickstart/public>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

这里需要注意几件事。首先,注意 DocumentRoot 指向项目的 public 子目录;这意味着只有在那个目录下的文件能被服务器所服务。其次,注意 AllowOverride,Order,和 Allow 指令;它们允许我们在我们的项目内使用 htaccess 文件,在开发环境下,这是一个好的做法,因为当需要对站点改变指令的时候,这样将不必频繁的重启 web 服务器;然而,在实际生产环境中,您应该把 htaccess 文件的内容放到服务器配置里面,而不是使用 htaccess 文件。第三,注意 SetEnv 指令。我们在这里所做的是给虚拟主机设置一个环境变量;这个变量将被 index.php 使用,设置成我们的 Zend Framework 应用程序 APPLICATION_ENV 常量的值。在实际生产中,您可以取消这个指令(在这种情况下,APPLICATION_ENV 的默认值将是 production)或者把它精确的设置为 production。

最后,需要添加一条记录到 hosts 文件中,和 ServerName 指令中设置的值相对应。在 *nix 系统中,这通常是 /etc/hosts;在 Windows,通常会在 C:/WINDOWS/system32/drivers/etc 中找到它。不管是什么系统,这条记录看起来是这样的:

127.0.0.1 quickstart.local

启动 web 服务器(或者重启),现在应该准备就绪了。

译者注:实际上还有一个重要的文件:quickstart/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]

检查

在此时,应该可以启动 Zend Framework 应用程序了。把浏览器指向服务器的名字(本例中就是:http://quickstart.local);应该能看到一个欢迎页面。

ImageHost.org

分享到:
评论

相关推荐

    经典zend 框架入门教程

    - **介绍**:Zend_Tool是Zend框架提供的命令行工具,可用于快速生成代码和管理项目。 - **设置方法**:参照上述步骤完成安装配置。 #### 七、创建简单应用程序 - **项目初始化**:使用Zend_Tool初始化项目结构。 -...

    SVN1.10.1安装包及汉化包

    7. **团队协作**:为了团队协作,你需要设置SVN服务器(如通过Apache或VisualSVN Server),并创建仓库来存储项目文件。然后,团队成员可以将本地工作副本与服务器上的仓库进行同步。 8. **版本控制**:每次修改...

    jquery-1.10.1中文汉化二版

    本文将深入解析jQuery 1.10.1中文汉化二版,旨在帮助初学者及有经验的开发者更好地理解和运用这一版本。 首先,jQuery的核心理念是"Write Less, Do More",它通过提供一套统一且易于使用的API,极大地简化了DOM操作...

    parquet-column-1.10.1-API文档-中文版.zip

    赠送jar包:parquet-column-1.10.1.jar; 赠送原API文档:parquet-column-1.10.1-javadoc.jar; 赠送源代码:parquet-column-1.10.1-sources.jar; 赠送Maven依赖信息文件:parquet-column-1.10.1.pom; 包含翻译后...

    parquet-hadoop-1.10.1-API文档-中文版.zip

    赠送jar包:parquet-hadoop-1.10.1.jar 赠送原API文档:parquet-hadoop-1.10.1-javadoc.jar 赠送源代码:parquet-hadoop-1.10.1-sources.jar 包含翻译后的API文档:parquet-hadoop-1.10.1-javadoc-API文档-中文...

    synergy1.10.1.rar

    标题中的"synergy1.10.1.rar"是一个压缩包文件,其版本号为1.10.1,通常这种格式的文件是使用RAR压缩算法打包的,它可能包含了软件安装所需的所有文件。RAR是一种常见的文件压缩格式,由WinRAR软件创建,允许用户将...

    libzip-1.10.1.tar.gz

    《libzip库详解及其在1.10.1版本中的特性》 libzip是一个开源的C库,专门用于处理ZIP档案文件。它提供了创建、读取、修改和删除ZIP档案的功能,广泛应用于软件开发,特别是在需要对ZIP文件进行低级别操作的场景下。...

    jquery-ui-1.10.1.custom.zip

    总结,jQuery UI 1.10.1 是一个强大的前端开发工具,提供了多种UI组件和自定义选项,能够帮助开发者快速构建功能丰富的交互式用户界面。通过理解其核心特性、组件和自定义方法,开发者可以更好地利用这一库来提升...

    svn 1.10.1

    SVN(Subversion)是版本控制系统,用于管理对软件项目源代码和其他文件的更改。它是一种集中式的版本控制系统,允许团队协作,跟踪每一次修改,并在需要时恢复到以前的版本。1.10.1是SVN的一个特定版本,可能包含了...

    apache-ant-1.10.1

    你可以根据项目需求自定义构建脚本,包括编译源代码、运行单元测试、生成文档、创建JAR或WAR文件等。Ant的灵活性使其可以适应各种项目规模,从小型个人项目到大型企业级应用。 总的来说,Apache Ant 1.10.1作为一个...

    AVPro Video 1.10.1.zip

    8. **示例和教程**:提供的十几个Demo可以帮助开发者快速理解和掌握插件的使用方法,通过实例学习如何集成到自己的项目中。 在压缩包内,"AVPro Video 1.10.1.unitypackage"是插件的核心文件,可以直接导入到Unity...

    mqttx 1.10.1

    mqttx 1.10.1

    heritrix-1.10.1

    在Heritrix 1.10.1的压缩包中,通常会包含源代码、构建脚本、文档、示例配置文件以及可能的预编译二进制文件。用户可以通过解压并按照文档说明进行安装和配置,然后启动Heritrix来开始自己的爬网项目。如果需要...

    Numpy64位,1.10.1

    在标题“Numpy64位,1.10.1”中,我们关注的是Numpy的一个特定版本,即1.10.1,而且是64位版本。64位版本的Numpy相比于32位版本,能够处理更大内存的数组,这对于处理大量数据的科学计算至关重要。 描述中提到的...

    Tensorflow-1.10.1-源码

    Tensorflow-1.10.1-源码 Tensorflow-1.10.1-源码 Tensorflow-1.10.1-源码 Tensorflow-1.10.1-源码 Tensorflow-1.10.1-源码 Tensorflow-1.10.1-源码 Tensorflow-1.10.1-源码 Tensorflow-1.10.1-源码 Tensorflow-...

    jquery1.10.1

    《jQuery 1.10.1:开源代码与jQuery UI 1.10.1定制》 jQuery,作为一款广泛使用的JavaScript库,以其简洁的API和强大的功能深受开发者喜爱。1.10.1版本是jQuery历史上的一个重要里程碑,它在前一版本的基础上进行了...

    GDAL-1.10.1_C#专用dll

    标题“GDAL-1.10.1_C#专用dll”和描述中提到的“修改了错误代码,解决了安全透明代码问题,C#专用,Gdal-1.10.1”都涉及到一个核心概念——GDAL库在C#环境中的使用。GDAL,全称Geospatial Data Abstraction Library...

    jquery-1.10.1.min

    jquery-1.10.1.min

    jquery-1.10.1.js文件

    jquery-1.10.1.js 文件

    pcl1.10.1文件

    4. **易用性**:提供简洁的API接口,方便开发者快速集成到项目中。 5. **社区活跃**:拥有活跃的开发者社区和丰富的在线资源,如文档、教程和示例代码,便于学习和解决问题。 安装PCL-1.10.1-AllInOne-msvc2019-win...

Global site tag (gtag.js) - Google Analytics