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学习资源和链接.
Dec 05 PHP
PHP中去掉字符串首尾空格的方法
May 19 PHP
Server.HTMLEncode让代码在页面里显示为源代码
Dec 08 PHP
destoon实现不同会员组公司名称显示不同的颜色的方法
Aug 22 PHP
PHP依赖倒置(Dependency Injection)代码实例
Oct 11 PHP
自己写的兼容低于PHP 5.5版本的array_column()函数
Oct 24 PHP
HTML中嵌入PHP的简单方法
Feb 16 PHP
Laravel中日期时间处理包Carbon的简单使用
Sep 21 PHP
php实现微信公众平台发红包功能
Jun 14 PHP
Laravel配置全局公共函数的方法步骤
May 09 PHP
Yii框架连表查询操作示例
Sep 06 PHP
tp5递归 无限级分类详解
Oct 18 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
特详细的PHPMYADMIN简明安装教程
2008/08/01 PHP
一个php导出oracle库的php代码
2009/04/20 PHP
php使用FFmpeg接口获取视频的播放时长、码率、缩略图以及创建时间
2016/11/07 PHP
PHP编程获取各个时间段具体时间的方法
2017/05/26 PHP
PHP Trait代码复用类与多继承实现方法详解
2019/06/17 PHP
jQuery 选择器、DOM操作、事件、动画
2010/11/25 Javascript
基于jquery的图片轮播 tab切换组件
2012/07/19 Javascript
Jquery操作下拉框(DropDownList)实现取值赋值
2013/08/13 Javascript
innerHTML,outerHTML,innerText,outerText的用法及区别解析
2013/12/16 Javascript
js无刷新操作table的行和列
2014/03/27 Javascript
关于编写性能高效的javascript事件的技术
2014/11/28 Javascript
AngularJS入门(用ng-repeat指令实现循环输出
2016/05/05 Javascript
JavaScript实现星级评分
2017/01/12 Javascript
Vue组件间通信 Vuex的用法解析
2019/08/05 Javascript
javascript数组元素删除方法delete和splice解析
2019/12/09 Javascript
JS实现轮播图效果
2020/01/11 Javascript
vue实现公告栏文字上下滚动效果的示例代码
2020/06/16 Javascript
[09:34]2018DOTA2国际邀请赛寻真——永不放弃的iG
2018/08/14 DOTA
50行代码实现贪吃蛇(具体思路及代码)
2013/04/27 Python
zbar解码二维码和条形码示例
2014/02/07 Python
python使用Queue在多个子进程间交换数据的方法
2015/04/18 Python
完美解决jupyter由于无法import新包的问题
2020/05/26 Python
pytorch使用horovod多gpu训练的实现
2020/09/09 Python
你可能不熟练的十个前端HTML5经典面试题
2018/07/03 HTML / CSS
法国珠宝店:CLEOR
2017/01/29 全球购物
锐步英国官网:Reebok英国
2019/11/29 全球购物
高中班长自我鉴定
2013/12/20 职场文书
四查四看剖析材料
2014/02/14 职场文书
大二学生学年自我鉴定
2014/09/12 职场文书
党的群众路线批评与自我批评发言稿
2014/10/16 职场文书
优秀员工自荐书
2015/03/06 职场文书
2015年党建工作汇报材料
2015/06/25 职场文书
小学音乐课教学反思
2016/02/18 职场文书
MySQL 外键约束和表关系相关总结
2021/06/20 MySQL
MySQL系列之二 多实例配置
2021/07/02 MySQL
《仙剑客栈2》第一弹正式宣传片公开 年内发售
2022/04/07 其他游戏