2010-12-03 37 views
3

我有一個小型的學校管理項目。每張表格(發票,人員,班級)需要管理幾千條記錄。使用HTML/AJAX UI和MySQL/PHP後端的經典網絡應用程序。php orm框架

爲了節省一些時間並獲得更好的代碼我想爲MySQL使用ORM,它將爲我處理大部分數據庫事務。

什麼是最好的ORM在這種情況下使用?

謝謝。

回答

5

Doctrine是一個功能非常強大的ORM庫。

+0

有很多在那裏,但學說似乎是使用最廣泛的。它也被Symfony項目使用,該項目是更受歡迎的PHP Web框架之一。 – Chestone 2010-12-03 21:54:29

0

你可能想用orm來看看框架,而不僅僅是orm。爲了讓ORM能夠使用框架爲您提供的數據庫,將會有很多工作要做。在工作狀態下最容易起飛的地方可能是CakePHP,CodeIgniter和Symphony。 AFAIK所有這些都有非常方便的代碼生成工具,可以立即創建腳手架應用程序。

0

由於simshaun建議,退房主義,或者Propel

0

我真的很喜歡使用CodeIgniterDataMapper

CodeIgniter是一個PHP框架,即使您喜歡純PHP,也非常容易習慣。

DataMapper是一個很好的ORM,它基於着名的Ruby On Rails框架庫。

0

Kohana的ORM庫很容易使用和配置,這對大多數中小型項目都很有用。教義和推動是偉大的,但需要做更多的決策,因爲他們使用代碼生成(可能不是學校項目的最佳選擇)。它們比kohana或代碼點火器的ORM更靈活(配置選項很多),但它們的學習曲線更陡峭,涉及的配置更多(閱讀「約定vs配置」)。

的Kohana 3的ORM的一個例子:

// Model definition file - /classes/model/animal.php 

class Model_Animal extends ORM 
{ 
    /* Find all animals that bark */ 
    public function barking_animals() 
    { 
     return $this->where('sound', '=', 'barker')->find_all(); 
    } 

    /* Find all animals that quack */ 
    public function quacking_animals 
    { 
     return $this->where('sound', '=', 'quack')->find_all(); 
    } 
} 

// In some controller file somewhere... 

$loudAnimals = ORM::factory('animal')->barking_animals(); 

// don't rent an apartment if you're neighbors have any of these animals... 
foreach ($loudAnimals as $animal) 
{ 
    echo $animal->name; 
} 

// add a new animal to db 
$newAnimal = orm::factory('animal'); 
$newAnimal->name = 'Obese Cat'; 
$newAnimal->weight = '30lbs'; 
$newAnimal->sound = 'fat quack'; 
$newAnimal->save(); 

最後,一些參考材料... http://kohanaframework.org/guide/tutorials.orm