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 相关文章推荐
程序员编程十条戒律
Jul 09 PHP
PHP Memcached + APC + 文件缓存封装实现代码
Mar 11 PHP
一个PHP的String类代码
Apr 20 PHP
PHP闭包(Closure)使用详解
May 02 PHP
PHP页面间参数传递的四种方法详解
Jun 09 PHP
PHP设计模式之责任链模式的深入解析
Jun 13 PHP
php上传文件中文文件名乱码的解决方法
Nov 01 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
Jan 07 PHP
Yii2.0框架模型添加/修改/删除数据操作示例
Jul 18 PHP
PHP中Session ID的实现原理实例分析
Aug 17 PHP
laravel框架中视图的基本使用方法分析
Nov 23 PHP
关于Anemometer图形化显示MySQL慢日志的工具搭建及使用的详细介绍
Jul 13 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
PHP5.0对象模型探索之抽象方法和抽象类
2006/09/05 PHP
Linux下安装oracle客户端并配置php5.3
2014/10/12 PHP
php简单实现查询数据库返回json数据
2015/04/16 PHP
PHP获取昨天、今天及明天日期的方法
2016/02/03 PHP
PHP实现支持加盐的图片加密解密
2016/09/09 PHP
PHP实现Google plus的好友拖拽分组效果
2016/10/21 PHP
Jquery作者John Resig自己封装的javascript 常用函数
2009/11/09 Javascript
JavaScript中将一个值转换为字符串的方法分析[译]
2012/09/21 Javascript
使用jQuery在对象中缓存选择器的简单方法
2015/06/30 Javascript
jquery中的工具使用方法$.isFunction, $.isArray(), $.isWindow()
2015/08/09 Javascript
实践中学习AngularJS表单
2016/03/21 Javascript
JS实现添加,替换,删除节点元素的方法
2016/06/30 Javascript
bootstrap监听滚动实现头部跟随滚动
2016/11/08 Javascript
AngularJS的脏检查深入分析
2017/04/22 Javascript
Spring shiro + bootstrap + jquery.validate 实现登录、注册功能
2017/06/02 jQuery
详解JavaScript中的六种错误类型
2017/09/21 Javascript
Angular弹出模态框的两种方式
2017/10/19 Javascript
bootstrap select2插件用ajax来获取和显示数据的实例
2018/08/09 Javascript
微信公众号网页分享功能开发的示例代码
2020/05/27 Javascript
Python判断操作系统类型代码分享
2014/11/22 Python
深入flask之异步非堵塞实现代码示例
2018/07/31 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
2019/11/29 Python
利用pandas将非数值数据转换成数值的方式
2019/12/18 Python
python 爬虫之selenium可视化爬虫的实现
2020/12/04 Python
Python 转移文件至云对象存储的方法
2021/02/07 Python
维珍澳洲航空官网:Virgin Australia
2017/09/08 全球购物
欧尚俄罗斯网上超市:Auchan俄罗斯
2018/05/03 全球购物
.net软件工程师面试题
2015/03/31 面试题
会计毕业生自荐信
2013/11/21 职场文书
写给女生的道歉信
2014/01/14 职场文书
护理不良事件检讨书
2014/02/06 职场文书
高三高考决心书
2014/03/11 职场文书
中秋节国旗下演讲稿
2014/09/05 职场文书
运动会400米加油稿(8篇)
2014/09/22 职场文书
酒店前台接待岗位职责
2015/04/02 职场文书
nginx配置虚拟主机的详细步骤
2021/07/21 Servers