thinkphp架構應用小結

來源:互聯網
上載者:User
thinkphp架構使用小結
以前寫的,轉到這裡! 
因為要開發項目,所以用TP來快速搭建,感覺對於中小型項目來說,TP還算一款不錯的架構,輕量級,使用簡單,開發快速,但是估計用到大的項目就不行了,抽空也看了下zend framwork 的用法,它的MVC思想運用的確比TP要豐富些,畢竟是世界上最牛的PHP架構,很不錯,以後抽空要研究下,不過估計學起來兩者大同小異,不過運行速度還是zend要勝出,人家的引擎還是巨牛的。

   對於TP來說印象最深的就是它的關聯模型,資料庫的關聯在程式開發中是一個很重要的概念,一般都是表之間的ID關聯,如果用傳統的SQL語言來關聯就要用JOIN ON以及LEFT JOIN 或是RIGHT JOIN來完成,往往增加了思考的複雜性,而TP對於這個流程進行了模組化封裝,只需要將一些關鍵的屬性顯性的定義出來即可,打個比方:

例如一個表Profile的userId要關聯Dept表的id欄位

在模組中就如下定義:

protected $_link=array(    'Dept'=> array(            'mapping_type'=>BELONGS_TO,  //映射類型,此處是屬於的一對多關聯性                   'class_name'=>'Dept', //要關聯的資料表名(不含首碼)                   'foreign_key'=>'userId', //Profile表中的與Dept表中id欄位要關聯的欄位userId                   'mapping_name'=>'dept', //映射名稱,即在模板中要用到的關聯名稱        // 定義更多的關聯屬性                                 ……                 ),);


將上述內容放入ProfileModel中即關聯了Dept表,使用很簡單很明了,還有其他的一些關聯屬性

在控制器中使用關聯查詢時,如下所示:

$Profile=D('Profile');$data=$Profile->relation(true)->find(1);print_r($data);$Profile->display();


以下是運行結果:

array('id'           =>     1,'account'      =>     'ThinkPHP','password'     =>     '123456','Dept'         => array(                              'email'     =>[email protected]',                              'nickname'  =>'狀元秀',   ), )


如果在關聯屬性中加入 'as_fields'=>'email,nickname',則為下列結果

array('id'           =>   1,'account'      =>  'ThinkPHP','password'     => 'name','email'        =>[email protected]','nickname'     =>'狀元秀', )


  這隻是一個地方,還有很多犀利的地方就不一一列舉了,例如自動驗證,自動完成這些強悍的功能,對於快速開發用架構技術的確是很不錯的選擇,模組化的東西會節省很多時間與精力,對於編程來說,一定要站在巨人肩上,取百家之長才是硬道理。
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.