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生成HTML静态页面实例代码
Aug 31 PHP
php.ini中date.timezone设置分析
Jul 29 PHP
PHP 异步执行方法,模拟多线程的应用分析
Jun 03 PHP
php加密解密函数authcode的用法详细解析
Oct 28 PHP
php实现简单的语法高亮函数实例分析
Apr 27 PHP
YII Framework框架教程之国际化实现方法
Mar 14 PHP
yii2带搜索功能的下拉框实例详解
May 12 PHP
CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析
May 18 PHP
利用PHP访问带有密码的Redis方法示例
Feb 09 PHP
PHP实现模拟http请求的方法分析
Dec 20 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
Dec 20 PHP
PHP 数组黑名单/白名单实例代码详解
Jun 04 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
Base64在线编码解码实现代码 演示与下载
2011/01/08 PHP
php产生随机数的两种方法实例代码 输出随机IP
2011/04/08 PHP
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
2014/08/23 PHP
Python中使用django form表单验证的方法
2017/01/16 PHP
JavaScript 学习笔记一些小技巧
2010/03/28 Javascript
jQuery实现冻结表格行和列
2015/04/29 Javascript
javascript中substring()、substr()、slice()的区别
2015/08/30 Javascript
jquery判断当前浏览器的实现代码
2015/11/07 Javascript
Nodejs进阶:如何将图片转成datauri嵌入到网页中去实例
2016/11/21 NodeJs
Angular的模块化(代码分享)
2016/12/26 Javascript
gulp加批处理(.bat)实现ng多应用一键自动化构建
2017/02/16 Javascript
JS实现图片点击后出现模态框效果
2017/05/03 Javascript
[js高手之路]从原型链开始图解继承到组合继承的产生详解
2017/08/28 Javascript
Vue.js实现数据响应的方法
2018/08/13 Javascript
ajaxfileupload.js实现上传文件功能
2019/04/19 Javascript
详解vue 路由跳转四种方式 (带参数)
2019/04/28 Javascript
JavaScript实现拖拽效果
2020/03/16 Javascript
JavaScript的垃圾回收机制与内存管理
2020/08/06 Javascript
Python操作MongoDB详解及实例
2017/05/18 Python
Python实现数据库并行读取和写入实例
2017/06/09 Python
python挖矿算力测试程序详解
2019/07/03 Python
对Python函数设计规范详解
2019/07/19 Python
简单介绍django提供的加密算法
2019/12/18 Python
selenium判断元素是否存在的两种方法小结
2020/12/07 Python
Lovedrobe官网:英国领先的大码服装品牌
2019/09/19 全球购物
介绍一下代理模式(Proxy)
2014/10/17 面试题
中青班党性分析材料
2014/02/16 职场文书
副科竞争上岗演讲稿
2014/05/12 职场文书
教育专业毕业生推荐信
2014/07/10 职场文书
2014年销售工作总结范文
2014/12/01 职场文书
期末考试复习计划
2015/01/19 职场文书
2015年车间主任工作总结
2015/05/21 职场文书
2016年学习雷锋精神广播稿
2015/12/17 职场文书
《小乌鸦爱妈妈》教学反思
2016/02/19 职场文书
2016年综治和平安建设宣传月活动总结
2016/04/01 职场文书
MySQL普通表如何转换成分区表
2022/05/30 MySQL