国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 編程 > PHP > 正文

多種php ORM框架介紹及簡單實例代碼

2020-03-22 20:31:23
字體:
來源:轉載
供稿:網友
  •  對象關系映射(Object Relational Mapping,簡稱ORM)是一種為了解決html' target='_blank'>面向對象與關系數據庫存在的互不匹配的現象的技術。 簡單的說,ORM是通過使用描述對象和數據庫之間映射的元數據,將程序中的對象自動持久化到關系數據庫中。本質上就是將數據從一種形式轉換到另外一種形 式。

    ORM提供了所有SQL語句的生成,代碼人員遠離了數據庫概念。從一個概念需求(例如一個HQL)映射為一個SQL語句,并不需要什么代價,連1%的性能損失都沒有。真正的性能損失在映射過程中,更具體地講,是在對象實例化的過程中www.it165.net。

    目前PHP 開源比較有名的 ORM 有以下幾個:

    1、Propel

    Propel是一個適用于PHP5的ORM映射(Object Relational Mapping)框架,它基于Apache Torque提供對象持久層支持。它通過XML格式的模式定義文件和相應的配置文件來生成SQL和類,它允許你使用對象代替SQL來讀寫數據庫表中的記 錄。Propel提供一個生成器來為你的數據模型創建SQL定義文件和PHP類。開發者也可以十分簡單的定制生成的類,我們還可以通過XML, PHP類和Phing構建工具把Propel集成到已有的應用開發框架中去.例如PHP框架symfony的1.2以前的版本就是默認使用了精簡版的 Propel作為默認ORM框架。

    官方網站:http://www.propelorm.org/

    2、Doctrine

    Doctrine是一個PHP的ORM框架,它必須運行在>=php5.2.3版本上,它是一個功能強大的數據抽象層。

    它的一個主要特征就是使用面向對象的方式來實現數據庫查詢的封轉,它底層通過一個類似 Hibernate HQL的DQL的查詢語句進行數據庫查詢,這使得開發的靈活性更強,大大減小了重復代碼。相比Propel,Doctrine的優點在于它支持支持全文檢 索,Doctrine的文檔一直就比Propel要全面豐富,社區更活躍,而且使用起來更加自然、更易閱讀、更接近原生SQL。性能方面也略微優于 Propel。同樣你也可以可以很方便的把Doctrine集成到現有的應用框架中去,比如PHP框架symfony的1.3以后的版本將 Doctrine作為默認的ORM框架,同時也可以將Doctrine和Codeigniter整合起來。

    官方網站: http://www.doctrine-project.org/

    3、EZPDO

    EZPDO是一個十分輕量級的PHP ORM框架。EZPDO的作者的本意旨在降低復雜的ORM學習曲線,盡可能在ORM的運行效率和功能之間做一個平衡點,它是我至今用過的最簡單的ORM框 架,我目前還想將它集成到我的CoolPHP SDK中來,而且運行效率相當不錯,功能也基本能滿足需求,只不過ESPDO的更新比較緩慢。

    官方網站:http://www.ezpdo.net/blog/?p=2

    4、RedBean

    RedBean是一個易于使用,輕量級PHP ORM框架,提供對MySQL, SQLite&PostgreSQL的支持。RedBean架構非常靈活,核心也非常簡約,開發者可以很方便的通過插件來擴展功能。

    官方網站:http://www.redbeanphp.com/

    5、其他

    國內的fleaphp開發框架基于TableDataGateway實現ORM實現;Zend Framework除了提供對 SQL 語句的封裝以外,也同樣實現了TableGateway、TableRowSet、TableRow的實現;還有一些類似Rails的 ActiveRecord實現的解決方案。

    總的來說,一般ORM框架對付簡單的應用系統來說都能滿足基本需求,可以大大降低開發難度,提高開發效率,但是它在SQL優化方面,肯定是比純 SQL語言要差一些,對復雜關聯、SQL內嵌表達式的處理可能不是很理想。也許這主要是由于PHP本身對象持久化的問題,導致ORM效率過低,普遍比純 SQL要慢。但是這些都是有辦法解決的,最基本的解決性能的方案,我們可以通過緩存來提高效率,Hibernate來說,雖然配置比較繁雜,但是它通過靈 活的使用二級緩存和查詢緩存極大的緩解數據庫的查詢壓力,極大的提升了系統的性能。

    如果你想自己實現一個PHP的ORM,下面的可以參考下:

    <?phpabstract class Model{   protected $pk = 'id';   protected $_ID = null;   protected $_tableName;   protected $_arRelationMap;   protected $_modifyMap;   protected $is_load = false;   protected $_blForDeletion;   protected $_DB;   public function __consturct($id = null){       $this->_DB = mysql_connect('http://www.xiaocainiao.net','root','') ;       $this->_tableName = $this->getTableName();       $this->_arRelationMap = $this->getRelationMap();       if(isset($id))$this->_ID = $id;   }   abstract protected function getTableName();   abstract protected function getRelationMap();   public function Load(){       if(isset($this->_ID)){           $sql = "SELECT ";           foreach($this->_arRelationMap as $k => $v){               $sql .= '`'.$k.'`,';           }           $sql .= substr($sql,0,strlen($sql)-1);           $sql .= "FROM ".$this->_tableName." WHERE ".$this->pk." = ".$this->_ID;           $result =$this->_DB->mysql_query($sql);           foreach($result[0] as $k1 => $v1){              $member = $this->_arRelationMap[$key];              if(property_exists($this,$member)){                 if(is_numeric($member)){                     eval('$this->'.$member.' = '.$value.';');                 }else{                     eval('$this->'.$member.' = "'.$value.'";');                 }              }           }       }       $this->is_load = true;   }   public function __call($method,$param){      $type   = substr($method,0,3);      $member = substr($method,3);      switch($type){         case 'get':             return $this->getMember($member);             break;         case 'set':             return $this->setMember($member,$param[0]);      }      return false;   }   public function setMember($key){       if(property_exists($this,$key)){          if(is_numeric($val)){             eval('$this->'.$key.' = '.$val.';');          }else{             eval('$this->'.$key.' = "'.$val.'";');          }          $this->_modifyMap[$key] = 1;       }else{          return false;       }   }     public function getMember($key,$val){       if(!$this->is_load){          $this->Load();       }       if(property_exists($this,$key)){          eval('$res = $this->'.$key.';' );          return $this->$key;       }       return false;   }   public function save(){      if(isset($this->_ID)){          $sql = "UPDATE ".$this->_tableName." SET ";          foreach($this->arRelationMap as $k2 => $v2){              if(array_key_exists( $k2, $this->_modifyMap)){                  eval( '$val = $this->'.$v2.';');                  $sql_update .=  $v2." = ".$val;              }          }          $sql .= substr($sql_update,0,strlen($sql_update));          $sql .= 'WHERE '.$this->pk.' = '.$this->_ID;      }else{          $sql = "INSERT INTO ".$this->_tableName." (";          foreach($this->arRelationMap as $k3 => $v3){              if(array_key_exists( $k3,$this->_modifyMap)){                  eval('$val = $this->'.$v3.';');                  $field  .= "`".$v3."`,";                  $values .= $val;              }          }          $fields = substr($field,0,strlen($field)-1);          $vals   = substr($values,0,strlen($values)-1);          $sql .= $fields." ) VALUES (".$vals.")";      }      echo $sql;      //$this->_DB->query($sql);   }   public function __destory(){      if(isset($this->ID)){         $sql = "DELETE FROM ".$this->_tableName." WHERE ".$this->pk." = ".$this->_ID;        // $this->_DB_query($sql);      }   }}class User extends Model{    protected  function getTableName(){       return "test_user";    }    protected function getRelationMap(){        return array(                      'id'       => USER_ID,                      'user_name'=> USER_NAME,                      'user_age' => USER_AGE                    );    }    public function getDB(){       return $this->_DB;    }}$UserIns = new User();print_r($UserIns);?>

    PHP編程

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
    国产精品久久久久白浆| 一区二区三区免费视频网站| 九九99九九精彩| 开心丁香婷婷深爱五月| 久热国产视频| 午夜伦全在线观看| 国产三线在线| www.亚洲视频| 免费男女羞羞的视频网站中文字幕| 欧美性猛交p30| 国产一卡2卡3卡免费网站| 国产成人精品实拍在线| 在线观看中文字幕的网站| 欧美黑人乱大交ⅹxxxxx| 国产亚av手机在线观看| av中文在线| 国产精品剧情一区二区三区 | 国产精品国产国产aⅴ| www.操操操| 国产对白叫床清晰在线播放| 福利资源在线久| 国产精品国精产品一二| 九色视频网站| 天天草天天干| 在线视频中文字幕第一页| 国产麻豆精品高清在线播放 | 在线观看中文字幕一区| 国产三级免费观看| 国产女王在线**视频 | 国产丝袜精品丝袜| 全网国产福利在线播放| 国产三级在线播放| 国产丝袜自拍| 国产小视频在线| 国产乱视频在线观看| 成年女人在线视频| 欧美在线中文| 欧美亚洲系列| 久久国产精品黑丝| 黄色电影网站在线观看| 久久99国产视频| 免费a级毛片在线播放| 欧美96在线| 国产有码在线| 五月婷婷视频在线观看| 国产一区久久精品| 国产你懂的在线观看| 国产女人伦码一区二区三区不卡| 轻轻色免费在线视频| 免费久久网站| 中文字幕高清av | 91av资源在线| 国产一卡二卡3卡4卡四卡在线| 国产亚洲依依| 在线午夜视频| 美女永久在线网站| 国产亚洲依依| 在线观看电影av| 蜜桃视频中文字幕| 国产日本在线| av中文在线| 日本中文字幕在线2020| 精品全国在线一区二区| 日本一本久久| 国产美女视频一区二区二三区| 中文字幕一区二区三区免费视频| 国产黄色免费电影| 日本电影全部在线观看网站视频 | 国产麻豆综合视频在线观看| 国产视频资源| 青青草免费在线观看| 国产黄在线播放| 久久香蕉一区| 国产精品久久久精品a级小说| 四虎影视成人永久免费观看视频| 国产乱妇乱子在线播视频播放网站| 国产黄色一级片| 久草电影在线| av中文资源在线| 国产黄在线播放| 天堂亚洲精品| 欧美激情福利视频在线观看免费| 国产网站麻豆精品视频| 另类视频在线| 青青草在线免费观看| 伊人av免费在线观看| 国产aa视频| 国产精品视频一区二区三区麻豆| av日韩国产| 国产在线传媒| gogogo影视剧免费观看在线观看| 国产无遮挡又黄又爽免费软件 | www.九九热.com| 国产国产人免费人成免费视频| 亚洲精品天堂在线观看| 精品国产免费观看一区| 国产黄色在线看| 国产精品久久久精品a级小说| 大香伊人中文字幕精品| 2021天堂中文幕一二区在线观| 国产无遮挡在线视频免费观看| 国产蜜臀av在线播放| 成人午夜无人区一区二区| 久久久久久国产视频| 免费观看一二区视频网站| 免费看的av| 国产一级网站视频在线| 国产一级免费看| 最近中文字幕在线中文视频| 国产视频资源| 97在线超碰| 亚洲综合在线不卡| 免费在线高清av| 日本中文字幕在线视频| 国产网站av| a视频在线看| 五月综合网站| av在线电影观看| 国产美女视频一区二区三区| 国产精品剧情一区二区三区| 亚洲欧美中文字幕在线观看| 欧美日韩国产亚洲沙发| 国产精品一区二三区| 国产香蕉在线| 四虎网站在线观看| 中文字幕视频在线免费| 在线免费黄色毛片| 好男人社区在线视频| 91美女主播在线视频| 天天插天天射| 国产三级视频在线看| 毛片网站在线观看| 精品偷拍激情视频在线观看| 欧洲有码在线视频| 精品女厕厕露p撒尿| 成人免费一区二区三区牛牛 | av超碰在线| 国产一区二区三区四区尤物| 亚洲国产日韩成人综合天堂| 国产精品久久一区二区三区不卡| 男人天堂v视频| 在线观看中文字幕| 国产黄视频在线观看| 成年人在线观看| www.国产精品.com| 一本大道久久精品| 国产高清自拍视频在线观看| 最近中文字幕mv免费高清电影 | 国产精品bbw一区二区三区| 青青草视频在线免费观看| 992tv在线观看在线播放| 国产网红女主播精品视频| 男人天堂99| 美女网站在线观看| av在线1区2区| 在线观看国产视频| 精品全国在线一区二区| 国产高清在线视频| 国产寡妇树林野战在线播放| 国产三级做爰在线观看| 尤物视频网站在线观看| 国产一级黄色片免费| 国产精品9区| 97操碰视频| 亚洲综合在线免费| 四虎影视成人永久免费观看视频| 亚洲第一成年免费网站| 欧美日韩在线精品成人综合网| 四虎国产精品永久| 亚洲第一区视频| 久久er视频| 最近中文字幕mv2018在线高清| 国产网站在线免费观看| 中文av资源在线| www.麻豆av.com| 国产尤物视频在线| 国产精品入口免费麻豆| 精品国产二区三区| 青草av在线| 国产网站av| 日本成人网址| 国产一级又黄| 亚洲人在线播放| 天堂在线视频| 国产9色视频| 免费中文字幕| 国产国语**毛片高清视频| av激情在线| 国产丝袜精品丝袜| wwww在线观看| 国产高清免费视频| 九九久久久2| 一区二区三区四区在线免费视频| 青青草免费在线视频| 国产视频三级在线观看播放| 亚洲日本久久久午夜精品| 中文字幕日本三级| 国产在线资源| 免费视频中文字幕| 伊人av免费在线观看|