`
bardo
  • 浏览: 378338 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
D1407912-ab64-3e76-ae37-b31aa4afa398
浅述PHP设计模式
浏览量:11807
9d6df9f7-91da-3787-a37c-0e826525dd5d
Zend Framewor...
浏览量:10116
85b628bd-a2ed-3de2-a4b1-0d34985ae8b6
PHP的IDE(集成开发环...
浏览量:9504
社区版块
存档分类
最新评论

PHP:ORM的是是非非及DRYSQL介绍

    博客分类:
  • PHP
阅读更多

说起ORM,很多人认为,那是在JAVA中的事,尽管现在有Doctrine,Propel这样优秀的PHP的ORM开源,但很多人还是有抵触情绪。

ORM要生成ORM对象,从这一点而言,肯定会降低程序运行效率。但如果有了ORM,代码将会是什么样子:

比如使用ActiveRecord,代码将会是这样:

	$user = new User();

	$user->id = 1;
	$user->name = 'roga';
	$user->gender = 'male';
	$user->location = 'sh';

	$user->save();

 

这样的代码实在是清析明了,易维护。

当然,ActiveRecord有相当多的规范约束。这给使用还是带来了相当的不便。因此,选择Doctrine,Propel,也就大有人在。

于是,又有人反对,Doctrine,Propel代码量实在是太多了。再生成对象,肯定降低效率。

近两年,Ruby On Rails中出现了一个插件,叫做:DrySql,这是一种用于ActiveRecord的ORM的插件。但它的思想实在是先进。于是,我不把它当成插件,而是当成完全的全新的ORM方式,移植到了我们自己所用的开发框架中了,于是,我们的代码现在是这样:

	$user=$this->db->loadDataRow('user');
	$insertData=array(
	  'id'=>1,
	  'name'=>'roga',
	  'gender'=>'male',
	  'city'=>$city,
	  'location'=>'sh',
	  );
	$user->create($insertData);

 

当然还可以这样:

	$user=$this->db->loadDataRow('user');
	
	$user->setByName('id',1);
	$user->setByName('name','roga');
	$user->setByName('gender','male');
	$user->setByName('city',$city);
	$user->setByName('location','sh);
	
	$user->create();

 

可以看出,无论哪一种形式,都与真正的ORM几乎汉有区别。

ORM好处在哪里?这里已经完全清楚,其实,不仅是代码的可维护性,同时,也是让程序员做到,与SQL的无关性。

这两者,实际上都是相当重要的。而DRYSQL技术,不需要生成表与记录的对象文件,并且比ActiveRecord使用还要方便,可以说是最好的新技术了。

0
0
分享到:
评论

相关推荐

    Hibernate框架ORM的实现原理

    #### 一、ORM概念及意义 **ORM**,即**对象关系映射**(Object Relational Mapping),是一种程序技术,用于将关系型数据库中的数据映射到对象上,以便于程序员能够以面向对象的方式操作数据库。这种方式极大地简化了...

    sqlite3的ORM框架

    SQLite3的ORM(Object-Relational Mapping)框架是一种在C++编程中将数据库关系模型与对象模型进行对应的技术。ORM框架使得开发者可以使用面向对象的方式来操作数据库,避免了直接编写SQL语句,提高了开发效率和代码...

    ORM.rar_orm

    ORM,全称Object-Relational Mapping,中文名为对象关系映射,是软件开发中一种用于管理数据库操作的技术。ORM框架的出现,旨在解决传统数据库操作中的低效问题,通过将数据库表与编程语言中的对象进行映射,使得...

    C# 开发的ORM原码

    ORM(Object-Relational Mapping,对象关系映射)是软件开发中的一个重要概念,它提供了一种在关系数据库和面向对象编程语言之间建立映射的方法,使得开发者可以使用面向对象的方式来操作数据库,而无需关心底层的SQL...

    orm:ORM

    ORM,全称Object-Relational Mapping,中文常称为对象关系映射,是一种编程技术,用于将关系数据库的数据模型转换为面向对象的编程语言中的数据模型。在PHP开发中,ORM扮演着重要的角色,它简化了数据库操作,使得...

    ORM映射与WEB的应用

    在Web应用中,ORM的应用广泛,尤其是在基于Java的Spring Boot、Python的Django和Flask、PHP的Laravel等框架中。例如,在Spring Data JPA中,我们可以通过定义Repository接口并结合Hibernate ORM,轻松实现对数据库的...

    php中的orm

    在IT行业中,ORM(Object-Relational Mapping)是一种软件设计技术,它允许程序员用面向对象的方式来操作数据库,而无需直接编写SQL语句。在PHP中,ORM被广泛应用于Web开发,使得开发人员能够以更加抽象和高效的方式...

    ORM for TypeScript and JavaScript. Supports MySQL, Postgre.zip

    ORM,全称Object-Relational Mapping,是一种编程技术,用于将关系数据库的数据映射到对象上,使得开发者可以使用面向对象的方式来操作数据库。在TypeScript和JavaScript这样的编程语言中,ORM框架极大地简化了...

    ring:ORM golang

    通过使用特定的标签,比如`orm:"pk"`表示主键,`orm:"auto"`表示自动增长等,我们可以对字段进行额外的配置。 数据操作:Ring ORM提供了CRUD(Create、Read、Update、Delete)的基本操作接口。例如,我们可以创建一...

    orm-wrapper:ORM 包装器

    ORM 包装器 ORM 多连接包装器。 Javascript 接口,允许您管理 node-orm2 模块的多个数据库连接。 入门 使用以下命令安装模块: npm install orm-wrapper 模型目录结构 . //Project root +-- models | +-- db1 | +-...

    orm_orm_

    ORM,全称Object-Relational Mapping,是对象关系映射技术。在IT行业中,尤其是在数据库应用开发中,ORM扮演着至关重要的角色。它提供了一种方式,使得开发者可以用面向对象的方式来操作数据库,而无需直接编写SQL...

    C++ ORM for SQLite.zip

    C++ ORM for SQLite 是一个将C++编程语言与SQLite数据库管理系统相结合的对象关系映射(ORM)框架。ORM允许程序员以面向对象的方式操作数据库,而无需直接编写SQL语句,简化了数据库应用程序的开发过程。在C++中使用...

    J2EE企业级项目开发-3期(KC007) 6.1 ORM和MyBatis 文档.doc

    ORM(对象关系映射)是软件开发中的一种技术,它旨在简化数据库操作,尤其是在Java EE(J2EE)企业级项目开发中。ORM的核心目的是消除面向对象编程与关系数据库之间的语义鸿沟,使得开发者可以更专注于业务逻辑,而...

    J2EE企业级项目开发-3期(KC007) 6.1 ORM和MyBatis考试.doc

    ORM(Object-Relational Mapping,对象关系映射)是计算机编程领域中的一种技术,它用于将关系数据库的数据映射到对象模型上,使得开发者可以使用面向对象的方式来操作数据库,而无需关心底层SQL语句的编写。ORM的...

    精选_基于ORM的框架思想与体系_源码打包

    ORM,全称Object-Relational Mapping,即对象关系映射,是编程领域中一种用于将关系数据库的数据模型映射到面向对象模型的技术。在Java、Python、C#等语言中广泛应用,它允许开发者使用面向对象的方式来操作数据库,...

    Neo:Orm框架:基于ActiveRecord思想开发的至简化且功能很全的Orm框架

    Neo:Orm框架 Neo是一个基于JDBC开发的至简化框架,采用ActiveRecord的思想进行设计,名字源于《黑客帝国》男主角名字,为连接虚拟与现实的救世主,取名Neo寓意为链接数据和逻辑。源头来自于之前接触的一些不错的Orm...

    ORM 工具源码面向对象数据库生成工具

    ORM(Object-Relational Mapping,对象关系映射)是一种编程技术,用于将关系数据库的数据映射到对象上,使得开发者可以使用面向对象的方式来操作数据库,而无需关心底层SQL语句的编写。它降低了数据访问层的复杂性...

    简单高效的ORM框架

    ORM,全称Object-Relational Mapping,即对象关系映射,是一种编程技术,用于将关系数据库的数据模型映射到面向对象的编程语言中。在现代软件开发中,ORM框架扮演着重要的角色,它使得开发者无需关注底层SQL语句,就...

    Elasticsearch​的ORM工具orm4es.zip

    orm4es是一个Elasticsearch的ORM工具,它可以生成简单的查询对象.它本身非常简单,也很容易使用;代码生成通过freemark完成,它会自动解析es index 的mapping设置,根据mapping生成与index对应的java Bean,使用生成...

Global site tag (gtag.js) - Google Analytics