欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

php ar開(kāi)發(fā)

PHP AR開(kāi)發(fā)——更高效的面向?qū)ο缶幊? Web開(kāi)發(fā)中,面向?qū)ο缶幊桃呀?jīng)成為行業(yè)標(biāo)配,而ORM(Object-Relational Mapping)可持久化框架更是為程序員提供了便利。而在國(guó)內(nèi),ThinkPHP的ORM框架——TP Arbor 扎實(shí)的功能,良好的擴(kuò)展性贏得了廣大程序員的喜愛(ài)。而AR(Active Record)只是ORM的一個(gè)實(shí)現(xiàn)方式,但是從實(shí)現(xiàn)來(lái)看,相比起傳統(tǒng)ORM框架,AR采用領(lǐng)域模型的設(shè)計(jì)理念,對(duì)于以Java為代表的傳統(tǒng)ORM框架,AR把模型感覺(jué)抽象化為領(lǐng)域?qū)ο螅∠顺志没瘜?duì)象與業(yè)務(wù)對(duì)象之間的映射交叉。 AR采用Active Record的設(shè)計(jì)模式,對(duì)于使用者來(lái)說(shuō),這種模式更加人性化。上代碼,就能很好的展示出這一點(diǎn)。 假設(shè)有一個(gè)User表: pre CREATE TABLE `user` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `username` varchar(50) NOT NULL COMMENT '用戶名', `password` char(32) NOT NULL COMMENT '密碼', `email` varchar(100) NOT NULL COMMENT '郵箱', `real_name` varchar(30) DEFAULT '' COMMENT '真實(shí)名稱', `height` tinyint(4) DEFAULT '0' COMMENT '身高(厘米)', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用戶表'; class User extends \think\Model { protected $table = 'user'; protected $autoWriteTimestamp = true; } $user = new User; $user->username = 'test'; $user->password = 'test123'; $user->email = 'test@test.com'; $user->save(); 這樣就可以完成一次插入操作。可以看到,AR實(shí)質(zhì)上就是采用了命名的領(lǐng)域?qū)ο蟮囊?guī)定方式(即數(shù)據(jù)表的字段名),并映射到了數(shù)據(jù)源的訪問(wèn)上。舉個(gè)例子,如果像拿到user表中id為1的那條數(shù)據(jù)的username。 $user = User::get(1); echo $user->username; AR 的ORM就是SQL語(yǔ)句的直接映射,省卻了許多繁瑣的SQL連接,讓開(kāi)發(fā)者更加關(guān)注業(yè)務(wù)和編程,同時(shí)AR還提供了鉤子函數(shù)等接口幫助開(kāi)發(fā)者掌控?cái)?shù)據(jù)源的操作。 同時(shí),在代碼復(fù)雜的情況下,AR的model的關(guān)聯(lián)更是方便。舉個(gè)例子,weibo表(微博表)與 user表(用戶表)。 pre CREATE TABLE `weibo` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `content` varchar(140) NOT NULL COMMENT '微博內(nèi)容', `user_id` int(11) unsigned NOT NULL COMMENT '用戶ID', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='微博表'; class Weibo extends \think\Model { protected $table = 'weibo'; protected $autoWriteTimestamp = true; public function user() { return $this->belongsTo('User'); } } 那么就可以這樣查詢: $weibo = Weibo::with('user')->find(1); echo $weibo->content; echo $weibo->user->username; AR的好處不僅是上述的簡(jiǎn)化交互過(guò)程,而且具有更高的代碼抽象能力。 綜上,AR優(yōu)勢(shì)顯然不在于代碼的規(guī)模,不在于其ORM技術(shù)的新穎,而在于它提供了一種可行的領(lǐng)域規(guī)范,為程序員創(chuàng)造了更靈活的編程方式,幫助程序員輕松開(kāi)發(fā)清晰明了的代碼,使開(kāi)發(fā)工作變得更加簡(jiǎn)便。