php中的数据映射模式 php中的数据映射模式怎么用

简要论述对ORM模式的理解,并简述ThinkPHP中的ORM的基本原理 。RM:object relation mapping,即对象关系映射php中的数据映射模式,简单的说就是对象模型和关系模型的一种映射 。为什么要有这么一个映射?很简单,因为现在的开发语言基本都是oop的 , 但是传统的数据库却是关系型的 。为了可以靠贴近面向对象开发 , php中的数据映射模式我们想要像操作对象一样操作数据库 。
【php中的数据映射模式 php中的数据映射模式怎么用】举个例子:获取一篇文章,传统的方式先要执行一个sql检索数据
select * from post where id = 1
然后输出标题和内容使用
echo $post['title']; echo $post['content'];
在thinkphp中,就解决了这个问题 , 其原理也很简单:
$post = postTable::getInstance()-find(1);#会再内部执行select * from post where id = 1
然后输出:
echo $post-getTitle();
echo $post-getContent();
妈妈再也不用担心我的强迫症了^_^
高级点的应用,文章和分类是一对多关系、文章和标签是多对多关系
$cate = $post-getCategory(); //获取文章分类
echo $cate-getName(); //获取分类名
$tags = $post-getTags(); //获取一个文章的所有标签
使用方法更是简单,比如:
$list = M()-where()-field()-order()-find()/select()/getField(),等等,在其手册中可以很容易找到 , 也很容易使用 。
assign("row",$row);”是什么意思?'>thinkPHP中“$this->assign("row",$row);”是什么意思?$this-assign("arr",$arr)中第一个参数是在模板中使用的变量名php中的数据映射模式,名字可以任意?。?第二个参数是传递给模板的变量 。举个例子:
1、在Action中赋值了一个myname模板变量:
12$name = 'ThinkPHP';$this-assign('myname',$name);
表示把Action中$name变量(其值为'ThinkPHP')赋值给模板变量myname , 当然也可以是其php中的数据映射模式他名字 。
2、在模板文件中使用myname变量:
在模板文件(即对应的html文件)使用 {$myname} 即表示 字符串:'ThinkPHP'
ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的 。最早诞生于2006年初,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布 。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性 。并且拥有众多原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进 。
ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初 , 原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式 , 使用面向对象的开发结构和MVC模式 , 融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式 。
ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP5.0以上版本支持,支持MySql、PgSQL、Sqlite以及PDO等多种数据库,ThinkPHP框架本身没有什么特别模块要求 , 具体的应用系统运行环境要求视开发所涉及的模块 。
作为一个整体开发解决方案,ThinkPHP能够解决应用开发中的大多数需要,因为其自身包含了底层架构、兼容处理、基类库、数据库访问层、模板引擎、缓存机制、插件机制、角色认证、表单处理等常用的组件,并且对于跨版本、跨平台和跨数据库移植都比较方便 。并且每个组件都是精心设计和完善的,应用开发过程仅仅需要关注您的业务逻辑 。
参考资料

推荐阅读