activerecord & php

最近在研究 yii,因為前一陣子用cakephp 有點感覺不順,尤其是 model 之間的關係對應。這幾天看了yii 才發現,應該是php/ruby 語言的差異。

看一下 rails裡面的定義這樣寫:


class Project < ActiveRecord::Base

belongs_to              :portfolio

has_one                 :project_manager

has_many                :milestones

has_and_belongs_to_many :categories

end

cakephp 裡面是這樣:


class User extends AppModel {

var $name = 'User';

var $hasOne = 'Profile';

var $hasMany = array(

'Recipe' => array(

'className'  => 'Recipe',

'conditions' => array('Recipe.approved' => '1'),

'order'      => 'Recipe.created DESC'

)

);

}

yii 裡面長這樣(定義在函式裡面):


public function relations()

{

return array(

'author'=>array(self::BELONGS_TO, 'User', 'authorId'),

'comments'=>array(self::HAS_MANY, 'Comment', 'postId',

'order'=>'comments.createTime'),

'tagFilter'=>array(self::MANY_MANY, 'Tag', 'PostTag(postId, tagId)',

'together'=>true,

'joinType'=>'INNER JOIN',

'condition'=>'tagFilter.name=:tag'),

);

}

我個人是覺的 rails 的最直覺 cakephp次之, yii 的則稍嫌麻煩了些。不過我覺的這php用hash實做起來不太順….。不知道其他框架有沒有別的實做方式就是了

2 thoughts on “activerecord & php

  1. 前一陣子我剛好也有用Yii 開發了兩個網站
    也還滿好用的~~

    只是在
    Yii ActiveRecord 在處理的時後,會將primary table 換成 t
    這點算是有點討厭,曾經send pr 給作者,請他弄個 alias() 回來
    不過被reject 了…

    另外他的components( widget ) 的部份,似乎會多走一次cycle,造成效能上的一部份浪費

    除此之外我覺得還算滿好用的…

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s