准备工作

前置条件:PHP>=5.14,Apache开启mod_rewrite支持,开启php的pdo扩展。

Zend Framework 要求 PHP版本不低于5.1.4,但强烈建议使用 5.2.3 或更高版本,因为在这两个版本之间有许多重大安全和性能方面的改善和提高。
下载Zend framework
目前最新版本:1.10下载地址:http://framework.zend.com/download/latest
 
下载zend framework 完整包解压后结构如图:
 
 
其中:bin文件包含了Zend tool,用于在命令行中创建Zend framework项目,libraray则为Zend framework的类库。
 
创建项目:
途径一 利用Zend_Tool创建Zend Framework 项目
打开bin文件夹,复制路径,添加到系统环境变量。以Windows操作系统为例,如图:
 
 
 
 
附:
设置环境变量,修改系统变量中的Path值。添加上bin文件夹路径和php.exe所在目录,我添加的是E:\wamp\bin\php\php5.2.6;E:\wamp\www\bin(两个路径分号间隔)。
修改环境变量是为了,使用cmd时,在任意文件目录都可以使用zf命令。如果没有环境变量的话,只能在bin目录下才能使用zf命令,而且php.exe目录如果不在环境变量中,就没法被执行。
 
 
 
 
打开命令行窗口,输入C:\Users\liu>zf show version 回车,如果输出 Zend Framework Version: 1.10.2,那么就可以利用Zend_tool来创建Zend framework项目了。
 
 
接下打开命令行窗口,进入到网站目录,输入zf create project zf-demo 回车(这里不需要加“;”),如果输出:Creating project at D:\AppServ\www\zf-demo,则成功创建了名为“zf-demo”的项目。
 
 
打开zf-demo文件夹,可以看到一个Zend framework应用的文件结构,如图。
 
 
上图这个结构中,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的开发环境已经配置好了。
 
 
创建一个Hello World页面
上图是用Zend_tool生成的zend framework默认的首页,完整的访问路径为http://127.0.0.1/zf-demo/public/index/index,是访问了index控制器下的index方法。打开application/controllers下的IndexController.php文件,可以看到源文件代码大致如下:
 
 
在这里,我们先添加一个名为helloAction的空方法,它现在什么也不做,添加后代码如下:
<?php
class IndexController extends Zend_Controller_Action
{
    public function init()
    {
        /* Initialize action controller here */
    }
 
    public function indexAction()
    {
        // action body
    }
 
    public function helloAction()
    {
 
    }
 
 
}
?>
我们在application/views/scripts下新建一个名为hello.phtml的模板文件。这里先简单说一下模板文件的命名规则,Zend framework的模板文件默认放置在application/views/scripts/{控制器名}下,模板文件后缀默认为.phtml,文件名与方法名同名。在这个例子中,index控制器下的hello方法对应的模板文件为application/views/scripts/index/hello.phtml。
现在,我们修改hello方法,将“Hello World“输出到页面。先看代码:
<?php
classIndexControllerextends Zend_Controller_Action
{
publicfunctioninit(){
        /* Initialize action controller here */
    }
publicfunctionindexAction(){
        // action body
    }
publicfunctionhelloAction(){
$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>
<?phpecho $this->content;?>
</BODY>
</HTML>
现在,访问http://127.0.0.1/zf-demo/public/index/hello,应该可以看到Hello World出现了。
 
途径二:手工配置zend framework项目
 
建立项目目录,这个根据习惯,项目需求自己规划了,下图结构供参考
 
 
index.php(网站入口)文件及说明:
<?php
    error_reporting(E_ALL|E_STRICT);//错误报告级别
    date_default_timezone_set('Asia/Shanghai');//默认时区 东八区
 
set_include_path('.' .PATH_SEPARATOR .'./library'.PATH_SEPARATOR .'./application/models/'.PATH_SEPARATOR . get_include_path());
    require_once "Zend/Loader/Autoloader.php"; //载入zend框架
    Zend_Loader_Autoloader::getInstance()->setFallbackAutoloader(true); //静态载入自动类文件
    $registry = Zend_Registry::getInstance();
 
 
    //配置数据库参数,并连接数据库
    $config=new Zend_Config_Ini('./application/config/config.ini',null, true);
    Zend_Registry::set('config',$config);
$dbAdapter=Zend_Db::factory($config->general->db->adapter,$config->general->db->config->toArray());
    $dbAdapter->query('SET names gbk');
    Zend_Db_Table::setDefaultAdapter($dbAdapter);
    Zend_Registry::set('dbAdapter',$dbAdapter);
 
    //设置视图
    $view = new Zend_View();
    $view->setScriptPath('./application/views/scripts/');//设置模板显示路径
    $registry['view'] = $view;//注册View
   
    //设置控制器
    $frontController =Zend_Controller_Front::getInstance();
    $frontController->setBaseUrl('/')//设置基本路径
                  ->setParam('noViewRenderer', true)
                  ->setParam('useDefaultControllerAlways', true)
                  ->setControllerDirectory('./application/controllers')
                  ->throwExceptions(true)
                  ->dispatch();
?>
IndexController.php文件及说明:
<?php
    class IndexController extends Zend_Controller_Action{
       function init(){
           $this->registry = Zend_Registry::getInstance();
           $this->view = $this->registry['view'];
           $this->view->baseUrl = $this->_request->getBaseUrl();
       }
      
       function indexAction(){
$this->view->content = "Hello World";
           echo $this->view->render('index.phtml');
       }
?>
index.phtml模板文件说明:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>第一个Zend framework程序</TITLE>
</HEAD>
<BODY>
<?phpecho $this->content;?>
</BODY>
</HTML>

访问http://127.0.0.1/zf/index/index,又可以看到Hello World出现了。

zend framework 1.10项目配置与经典hello world的更多相关文章

  1. Zend Framework Module之多模块配置

    摘要:该文将为大家简单介绍一下如何使用zend framework创建模块化的应用程序. zend framework对多模块的支持是很好的,但是可能是由于功能太过强大的缘故,部署起来并不是很容易.许 ...

  2. 【原创】Zend Framework 2框架之MVC

    ZendFramework 2框架之MVC 作者:sys(360电商技术组) 1.前言 Zend Framework 2是zend官方推出的php开源框架,基于php5.3.他全然採用面向对象的代码实 ...

  3. zend framework多模块配置

    上次接触zend framework已经很久远了,10年的事情了.最近在做一个项目,时间不紧,就又把ZF拿出来折腾.而我发现以前做ZF的记忆已经在我脑中如梦幻泡影,消失无踪,为了配置多模块还又去查了资 ...

  4. zend framework多模块多Layout配置

    转自: http://blog.csdn.net/a82168506/article/details/10228011 上次接触zend framework已经很久远了,10年的事情了.最近在做一个项 ...

  5. Zend Framework 3.0 安装及创建初始化项目教程

    前言: 最近开始接触关于PHP的框架的学习,然而PHP的框架少说也有七八种. 百度了一下,有人说ThinkPHP简单暴力的,有人说Laravel高大上的,等等等等,难以抉择. 最终我还是选择先从接触Z ...

  6. Zend Framework(一) windows8.1下配置zend framework1.12

    windows8.1下配置zend framework1.12配置步骤: 1.     下载 zend framework1.12库 2.      创建zend frameworkproject 2 ...

  7. 创建zend framework 项目要注意的

    1.必须要设置变量环境 我的电脑右击-属性-高级-环境变量 则在环境变量中添加 变量名:PATH 环境值:D:\phpserver\php5.4;D:\ZendFramework\bin 把php.e ...

  8. zend framework分析总结[转]

    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版.作者信息和本声明.否则将追究法律责任.http://blog.csdn.net/mayongzhan - 马永占,myz,may ...

  9. Zend Framework 2参考Zend\Authentication(Zend\Authentication介绍)

    原文:Zend Framework 2参考Zend\Authentication(Zend\Authentication介绍) Zend\Authentication组件提供了认证接口和具体的通用的认 ...

随机推荐

  1. 多校 Cow Bowling

    题目链接:http://acm.hust.edu.cn/vjudge/contest/124435#problem/I 密码:acm Sample Input Sample Output 分析: #i ...

  2. Oracle 使用sql创建表空间及用户

    create tablespace OrcalDBNamedb datafile 'C:\OracleDBDirc\OrcalDBNamedb.dbf' size 300m; 创建用户create u ...

  3. CF div2 D BFS

    http://codeforces.com/contest/676/problem/D 题目大意: 勇者去迷宫杀恶龙.迷宫是有n*m的方格子组成的.迷宫上有各种记号,这些记号表达着能走的方向.当且仅当 ...

  4. 解读QML之二

    QML文档 QML文档是用QML语法组成的字符串.一个文档定义了一个QML对象类型.文档以”.qml”最为后缀,可以保存在本地和网络上,可以使用代码生成.一 个在文档中定义的对象类型的实例,也可以使用 ...

  5. zabbix Lack of free swap space

    Zabbix初始设计是大型公司用于监控服务器集群的,但日常中也用于监控VPS或云主机.后者情况下Zabbix的很多配置和属性就没有经过优化,取决于监控的对象和用途,经常需要对一些Zabbix配置进行调 ...

  6. 关于java.lang.reflect.InvocationTargetException(jar 包缺少或者冲突)的错误

    我在合肥那边运行了的是湖北石首市的项目没有错 可是回武汉之后 运行这个项目 点击这里的时候 就报错java.lang.reflect.InvocationTargetException   不是数据库 ...

  7. zf-关于注册码全部错误的解决方法

    之所以错误,是因为这里的用户名称是石首市政务服务中心. 在数据库里把这个字段改成 上海卓繁 就可以了 一般都是在 SYS_INFO 这张表里面改

  8. 连接Oracle数据库的Hibernate配置文件

    连接Oracle数据库的Hibernate配置文件连接Oracle的Hibernate配置文件有两种格式,一种是xml格式的,另一种是Java属性文件格式的.下面分别给出这两种格式配置文件的代码. 1 ...

  9. ural1494 Monobilliards

    Monobilliards Time limit: 1.0 secondMemory limit: 64 MB A monobilliards table set up in a gaming hou ...

  10. JavaScript(三)---- 控制流程语句

    常用的控制流程语句有判断语句.分支语句.循环语句.基本用法都和java中的一致,switch有几点特殊. 1.判断语句 格式:        if(判断条件){            符合条件执行的代 ...