Zend Framework入门知识点小结


Posted in PHP onMarch 19, 2016

本文总结分析了Zend Framework入门知识点。分享给大家供大家参考,具体如下:

zend framework是MVC模式的一种实现,要快速的入门差不多只看Zend_Controller Zend_View 部分就可以了吧。

1.Zend_Controller部分。最重要的类是Zend_Controller_Front.使用它的经典代码很 简单:

$front=Zend_Controller_Front::getInstance();
$front-> setControllerDirectory("./app/controllers");
$front->dispatch();

这里要说明的 是不能使用new来获得一个Zend_Controller_Front,只能调用getInstance方法来返回一个实例(我的 zend_framework用的是1.01)。这里我指定的controllers目录是在www文档根目录之下的app文件夹之下。一般情况下app 不应该放在文档根目录下——所谓的安全问题:如果配置不严格,www文档根目录下的文件可能对访问者来说都是可见的。一般要放在别的目录,比如放在和文档 根目录同级的地方则可以使用:

$front->setControllerDirectory("../app/controllers")

多了 一个"."。这里使用的是相对路径。你可以用路径全名指定其他目录。比如:

$front->setControllerDirectory("E: /server/app/controllers")

这部分是包含在index。php中的。在正确的配置下,任何请求都会由rewrite功能重定向到这$front即前端控制器Zend_Controller_Front实例。所有认证什么的处理都要在dispatch前处理。

2.Zend_View 常用代码为:

$view=new Zend_View();
Zend_Registry::set("view".$view);

默认采用了Zend_Framework推荐的目录结构. 即views和 controllers models同级都在application目录下。views下面有三个同级目录scrīpts helpers filters。这样当你定义了一个Controller,你就得在scrīpts下面新建一个目录,用来存放该Controller下属的模板。比如简 单的

Class IndexController extends Zend_Controller_Action
{
 function IndexAction()
 {
 }
}

你就要相应的在里面建立一个index目录,在index目录下建立一个index.phtml的模板。如果在IndexController下另 建了一个function addAction(),你就得再在index在新建一个add.phtml。你有另一个UserController,你就要相应的有个user目录在 scrīpts下。这些*.phtml文件类似于html文件,定义你输出的内容显示方式。简单的就是留着空白也可以。但就是不能没有,否则会提示说 "error“invalid Controller...这是因为默认的ErrorController是已经注册的。当前端控制器找不到相应的控制器分发的时候就会调用默认的 ErrorController。

我们有时候不想使用默认的目录结构也不想使用默认的phtml类型的视图模板。这时我们可以使用

$view->setParam ("noViewRanderer",true);

来取消默认的phtml类型目录设置。用

$view->setParam ("noErrorHandler",true);

来写在默认的ErrorController。使用

$view->setscrīptPath ("./app/views");

来设置你的模板所在位置。这在使用smarty模板时很有用。

可以这么写:

$view=new Zend_View_Smarty();
$view->setParam("noViewRanderer",true);
$view->setParam("noErrorHandler",true);
$view->setscrīptPath("./app/views");
Zend_Registry::set("view".$view);

在使用的时候可以这么获取:

$view=Zend_Registry::get("view");

3. 刚接触的时候对于model可以简单的理解为数据对象,对于操作数据库的一般可以直接继承Zend_Db_Table这个类封装的很不错,一般使用足够了:

class data extends Zend_Db_Table
{
 protected $_name="data";
}

你只需指定表的名称,当然你可以不显示指定,这时zendf会默认的以你的类名去查找数据库中的表。别忘了为Zend_Db_Table指定 defaultAdapter:

$config = new Zend_Config_Ini('./application/config.ini', 'general');
$db = Zend_Db::factory($config->db->adapter, $config->db->config->toArray());
Zend_Db_Table::setDefaultAdapter($db);

config.ini类似于[general]

db.adapter = PDO_MYSQL
db.config.host = localhost
db.config.username = rob
db.config.password = 123456
db.config.dbname = zftest

希望本文所述对大家基于Zend Framework框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php实现的简单压缩英文字符串的代码
Apr 24 PHP
php中几种常见安全设置详解
Apr 06 PHP
php批量缩放图片的代码[ini参数控制]
Feb 11 PHP
php遍历数组的4种方法总结
Jul 05 PHP
destoon数据库表说明汇总
Jul 15 PHP
PHP图片处理之使用imagecopyresampled函数实现图片缩放例子
Nov 19 PHP
php创建session的方法实例详解
Jan 27 PHP
PHP+Mysql+jQuery文件下载次数统计实例讲解
Oct 10 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
Mar 21 PHP
Smarty日期时间操作方法示例
Nov 15 PHP
php支付宝APP支付功能
Jul 29 PHP
PHP中的self关键字详解
Jun 23 PHP
Zend Framework缓存Cache用法简单实例
Mar 19 #PHP
Zend Framework基本页面布局分析
Mar 19 #PHP
Zend Framework连接Mysql数据库实例分析
Mar 19 #PHP
Zend Framework+smarty用法实例详解
Mar 19 #PHP
ThinkPHP使用Smarty第三方插件方法小结
Mar 19 #PHP
smarty学习笔记之常见代码段用法总结
Mar 19 #PHP
FleaPHP框架数据库查询条件($conditions)写法总结
Mar 19 #PHP
You might like
PHP mkdir()定义和用法
2009/01/14 PHP
计算一段日期内的周末天数的php代码(星期六,星期日总和)
2009/11/12 PHP
php 无限级分类学习参考之对ecshop无限级分类的解析 带详细注释
2010/03/23 PHP
你可能不知道PHP get_meta_tags()函数
2014/05/12 PHP
php快速查找数据库中恶意代码的方法
2015/04/01 PHP
PHP关联数组实现根据元素值删除元素的方法
2015/06/26 PHP
PHP实现微信退款功能
2018/10/02 PHP
php操作redis数据库常见方法实例总结
2020/02/20 PHP
IE7提供XMLHttpRequest对象为兼容
2007/03/08 Javascript
关于COOKIE个数与大小的问题
2011/01/17 Javascript
关于JavaScript的with 语句的使用方法
2011/05/09 Javascript
jQuery .tmpl(), .template()学习资料小结
2011/07/18 Javascript
JavaScript高级程序设计(第3版)学习笔记2 js基础语法
2012/10/11 Javascript
Javascript中String的常用方法实例分析
2015/06/13 Javascript
JS触摸与手势事件详解
2017/05/09 Javascript
基于jquery日历价格、库存等设置插件
2020/07/05 jQuery
echarts学习笔记之图表自适应问题详解
2017/11/22 Javascript
javascript判断一个变量是数组还是对象
2019/04/10 Javascript
Flutter部件内部状态管理小结之实现Vue的v-model功能
2019/06/11 Javascript
JS数组push、unshift、pop、shift方法的实现与使用方法示例
2020/04/29 Javascript
vue动态加载SVG文件并修改节点数据的操作代码
2020/08/17 Javascript
Python开发实例分享bt种子爬虫程序和种子解析
2014/05/21 Python
纯Python开发的nosql数据库CodernityDB介绍和使用实例
2014/10/23 Python
Python实现爬取知乎神回复简单爬虫代码分享
2015/01/04 Python
浅谈Python的文件类型
2016/05/30 Python
Python 爬取携程所有机票的实例代码
2018/06/11 Python
Python3 安装PyQt5及exe打包图文教程
2019/01/08 Python
PySide和PyQt加载ui文件的两种方法
2019/02/27 Python
用pandas划分数据集实现训练集和测试集
2020/07/20 Python
python中yield的用法详解
2021/01/13 Python
客户经理岗位职责
2013/12/08 职场文书
公关活动策划方案
2014/05/25 职场文书
综合素质评价个性发展自我评价
2015/03/06 职场文书
离婚起诉书范本
2015/05/18 职场文书
2015年幼儿园教育教学工作总结
2015/05/25 职场文书
PhpSpreadsheet中文文档 | Spreadsheet操作教程实例
2021/04/01 PHP