2009-08-06 09:54

这些天开始接触Zend framework ,对着官方提供的“Quick Start ”开始学习。之前接触过ThinkPHPCodeigniter ,文档都很丰富,对着 Codeigniter 手册,也折腾了一个小网站出来了,(AD一下:网址:http://music.yes0759.com ,一个音乐分享平台),ThinkPHP还没实际运用过。Zend作为PHP官方推崇的开发框架,应该很好很强大。

准备工作
前置条件:PHP>=5.14,Apache开启mod_rewrite支持。

下载Zend framework,目前最新版本:1.9,下载地址:http://framework.zend.com/download/latest 。解压后文件结构如图1.1:

Zend framework 学习笔记(1):创建一个Hello World应用_zend framework demo
图1.1

这里,我们先关注两个文件夹:bin和library。其中,bin文件包含了Zend tool,用于在命令行中创建Zend framework项目,libraray则为Zend framework的类库。

打开bin文件夹,复制路径,添加到系统环境变量。以Windows操作系统为例,如图1.2:

Zend framework 学习笔记(1):创建一个Hello World应用_职场_02
图1.2

打开命令行窗口,输入C:\Users\junp>zf show version 回车,如果输出 Zend Framework Version: 1.9.0,那么就可以利用Zend_tool来创建Zend framework项目了。

利用Zend_Tool创建Zend Framework 项目
打开命令行窗口,进入到网站目录,输入zf create project zf-demo 回车(这里不需要加“;”),如果输出:Creating project at E:/wamp/web/zf-demo,则成功创建了名为“zf-demo”的项目。打开zf-demo文件夹,可以看到一个Zend framework应用的文件结构,如图1.3。

Zend framework 学习笔记(1):创建一个Hello World应用_休闲_03
图1.3

上图这个结构中,application为程序主目录,配置文件,控制器,模板,模型等都在这里实现;library文 件夹放置zend framework类库,所以,需要将下载的Zend framework下面library下的Zend文件夹复制一份到这里;public文件夹为网站目录,程序入口文件(index.php)、CSS文 件,图片文件一般放置在这里;tests文件夹放置测试程序。其他子文件夹接下来继续介绍。

好了,现在可以测试运行一下第一个zend framework的程序了,在浏览器地址栏中输入http://127.0.0.1/zf-demo/public回车,如果出现以下界面,则Zend framework的开发环境已经配置好了。图1.4

Zend framework 学习笔记(1):创建一个Hello World应用_休闲_04
图1.4

创建一个Hello World页面
图1.4是用Zend_tool生成的zend framework默认的首页,完整的访问路径为http://127.0.0.1/zf-demo/public/index/index,是访问了index控制器下的index方法。打开application/controllers下的IndexController.php文件,可以看到源文件代码大致如下:图1.5

Zend framework 学习笔记(1):创建一个Hello World应用_zend framework demo _05
图1.5

在这里,我们先添加一个名为helloAction的空方法,它现在什么也不做,添加后代码如下:

<?php

class IndexController extends Zend_Controller_Action
{

    public function init()
    {
        /* Initialize action controller here */
    }

    public function indexAction()
    {
        // action body
    }

    public function helloAction()
    {

    }


}
?>

现在,访问http://127.0.0.1/zf-demo/public/index/hello,出现了一个错误页,如图1.6,

Zend framework 学习笔记(1):创建一个Hello World应用_休闲_06
图1.6

从提示信息中可以知道,程序由于找到不与hello方法相对应的模板文件而出错。我们在 application/views/scripts下新建一个名为hello.phtml的模板文件。这里先简单说一下模板文件的命名规则,Zend framework的模板文件默认放置在application/views/scripts/{控制器名}下,模板文件后缀默认为.phtml,文件名 与方法名同名。在这个例子中,index控制器下的hello方法对应的模板文件为application/views/scripts/index /hello.phtml。刷新一下刚才的页面,程序运行正常。

现在,我们修改hello方法,将“Hello World“输出到页面。先看代码:

<?php

class IndexController extends Zend_Controller_Action
{

    public function init()
    {
        /* Initialize action controller here */
    }

    public function indexAction()
    {
        // action body
    }

    public function helloAction()
    {
        $this->view->content = "Hello World";
    }


}

?>

在hello方法中,我们只添加了一句$this->view->content = "Hello World";目的是将值为“Hello World”的content变量传递到hello.phtml模板文件,然后在hello.phtml中作以下修改:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>第一个Zend framework程序</TITLE>
</HEAD>
<BODY>
<?php echo $this->content;?>
</BODY>
</HTML>

再刷新一下页面,应该可以看到Hello World出现了,至此,算是一个简单的入门,大概了解zend framework,的程序结构了。