`
zhangchibang
  • 浏览: 346460 次
社区版块
存档分类
最新评论

zend framework中实现ORM

阅读更多

Zend Framework使用Zend_Db_Table来实现类似于ActiveRecord的ORM功能。和任何ORM一样,首先需要为它配置数据库的相关信息(服务器,用户名,密码,数据库名,等等)。虽然这并不复杂,但本文不拟讨论这些细节问题。(Zend Framework在它的Roadmap中计划支持YAML!)一旦配置完成后,可以在/application/models子目录下创建和数据库表相对应的模型类。
  举例来说,在数据库中存在表user,结构如下:
  
  CREATE TABLE user (
  id int(11) NOT NULL auto_increment,
  name varchar(100) NOT NULL,
  password varchar(100) NOT NULL,
  PRIMARY KEY (id)
  )
  
   相应地,可以在models目录下创建一个模型:
  
  root/application/models/User.php
  
  <?php
  class User extends Zend_Db_Table
  {
  protected $_name = 'user';
  }
  
   所有数据库相关的代码,都已经被封装在抽象类Zend_Db_Table中。有ROR经验的读者,可以和ROR中的模型对比一下:
  
  Class User < ActiveRecord::Base
  End
  
   Zend Framework的模型仅仅多出了一行,就是把数据库表名赋予$_name属性。
   下面来看看怎么使用这个User模型类。新的indexAction方法如下:
  
  function indexAction() {
  …
  $user = new User();
  $view->user = $user->fetchAll();
  echo $view->render();
  }
  
   User类的fetchAll()返回一个数组,包含该表中所有的内容。这个数组被存放在$view的user属性。接下来,看看新的index.phtml:
  
  …
  <table>
  <tr>
  <th>Id</th>
  <th>Name</th>
  </tr>
  <?php foreach($this->user as $user) : ?>
  <tr>
  <td><?php echo $this->escape($user->id);?></td>
  <td><?php echo $this->escape($user->name);?></td>
  </tr>
  <?php endforeach; ?>
  </table>
  …
  
   这段代码遍历了$this->user,并将它的属性依次打印出来。

评论

相关推荐

    Zend Framework 多表关联 数据库操作、事务处理

    由于描述为空,我们无法获取更多具体的信息,但可以推测这篇博客可能主要讲解了如何在Zend Framework中实现多表关联查询,如何通过ORM进行数据库操作,以及如何在这些操作中应用事务处理来确保数据安全。 **标签...

    zendframework中文手册2010

    综上所述,"zendframework中文手册2010"提供了全面的 Zend Framework 学习资源,无论是初学者还是经验丰富的开发者,都能从中受益,提升PHP编程技能。通过深入学习和实践,可以有效地利用 Zend Framework 构建高质量...

    ZendFramework1.7.5

    3. **对象关系映射 (ORM)**:Zend Framework 提供了 Zend_Db 和 Zend_Auth 等组件,用于数据库操作和身份验证,支持多种数据库系统,如 MySQL、PostgreSQL、Oracle 等。 4. **Web 服务支持**:通过 Zend_Soap 和 ...

    ZendFramework1.10.7

    在Zend Framework中,每个部分都有明确的职责,有助于创建松耦合的应用程序。 3. **对象关系映射(ORM)**:ZF 提供了 Zend_Db 和 Zend_Doctrine 两个组件来支持数据库操作。 Zend_Db 支持多种数据库系统,而 Zend_...

    zendframework1.12

    3. **对象关系映射(ORM)**:ZF1 包含了 Zend_Db 和 Zend_Doctrine 两个 ORM 实现,允许开发者通过面向对象的方式操作数据库,减少 SQL 编写量。 4. **控制器**:Zend_Controller 是 MVC 架构中的关键部分,负责...

    zend_framework中文手册

    在 Zend Framework 中,MVC 设计模式被广泛应用于构建可维护性高、结构清晰的 Web 应用程序。模型负责处理业务逻辑,视图负责数据展示,而控制器则协调这两者之间的交互,使得开发者能够清晰地分离关注点。 **2. ...

    Zend FrameWork 2.3.3

    6. **数据库访问**:框架提供了 ORM(对象关系映射)组件,如 Doctrine 或者 Zend\Db,方便数据库操作。这些组件支持 SQL 查询,提供了事务处理、预处理语句等功能,确保数据安全。 7. **表单和验证**:Zend ...

    Zend Framework ppt入门教程

    在 Zend Framework 中,你可以自定义路由规则,以实现灵活的URL设计。这将帮助你理解如何设置和使用路由,以及如何通过路由参数传递数据。 依赖注入是 Zend Framework 中的一个重要概念,它有助于提高代码的可测试...

    投票系统-zendframework

    在Zend Framework中,可以使用Active Record风格的`Zend\Db\TableGateway`或更高级的ORM(对象关系映射)如`Doctrine`来操作数据库。这些工具允许我们方便地执行CRUD(创建、读取、更新、删除)操作,同时保持代码与...

    Zend_Framework中文手册

    在 Zend Framework 中,`Model` 负责数据处理和业务逻辑,`View` 处理展示,而 `Controller` 协调两者,处理用户的输入。 **3. 组件系统:** Zend Framework 以组件为基础,允许开发者仅选择需要的部分,而不是...

    最新版的Zend_Framework 手册 中文版

    5. **对象关系映射(ORM)**:通过Zend_Db_Table和Zend_Db_Select实现,简化了数据库操作。 6. **表单处理**:Zend_Form组件提供了一种灵活的方式来创建和验证Web表单。 7. **服务端路由与控制器**:通过Zend_...

    zend framework例子(教程)

    6. **数据库交互**:"news.sql"可能包含创建新闻表的SQL语句,通常 Zend Framework 使用PDO或ZF2的DbAdapter来处理数据库操作,提供ORM(对象关系映射)功能。 7. **视图助手**:视图助手是用于在视图脚本中增强...

    Manning Zend Framework in Action

    - **ORM 使用**:深入介绍如何利用 Zend Framework 的 ORM (Object Relational Mapping) 组件来简化数据库操作。 - **查询构建器**:展示如何使用查询构建器来构造复杂的 SQL 查询语句。 - **事务管理**:讨论如何...

    Zend Framework教程之Zend_Db_Table表关联实例详解

    Zend Framework中包含一个重要的组件Zend_Db,它为数据库操作提供了对象关系映射(ORM)的实现,其中Zend_Db_Table是用于表数据访问和管理的主要类。 在数据库中,表之间经常会存在复杂的关系,例如一对多或多对多的...

    PHP沉思录之四 Zend Framework.pdf

    3. **对象关系映射 (ORM) —— Zend_Db**:提供了一套强大的数据库抽象层,支持多种数据库系统,如MySQL、PostgreSQL等,通过PDO扩展实现,允许开发者以面向对象的方式处理数据库操作。 4. **服务导向架构 (SOA) ...

    Zend Framework

    在 ZendFramework-1.0.4 压缩包中,包含的源码和文档将详细解释以上各个组件的使用方法,开发者可以通过阅读和实践进一步了解 Zend Framework 的强大功能。总的来说,Zend Framework 1.0.4 是一个强大且全面的PHP...

    Zend Framework Certification Study Guide

    "Zend Framework Certification Study Guide" 是为准备 Zend Framework 认证考试而编写的指南,旨在帮助开发者检验和提升在框架理解和实际项目应用中的专业技能。 **认证过程** 想要获得 Zend Framework 的认证,...

Global site tag (gtag.js) - Google Analytics