2010-12-03 7 views
3

J'ai un petit projet de gestion d'école. Il y a quelques milliers d'enregistrements par table (factures, personnes, classes ...) à gérer. Application Web classique avec HTML/AJAX UI et MySQL/PHP backend. Pour gagner du temps et avoir un meilleur code, je veux utiliser un ORM pour MySQL, qui va gérer la plupart des transactions de base de données pour moi.php orm framework

Quel est le meilleur ORM à utiliser dans ce cas?

merci.

Répondre

5

Doctrine est une bibliothèque ORM extrêmement puissante.

+0

Il y a beaucoup là-bas, mais la doctrine semble être le plus largement utilisé. Il est également utilisé par le projet Symfony qui est l'un des frameworks web PHP les plus populaires. – Chestone

0

Vous pouvez regarder un cadre avec un orm plutôt qu'un simple orm. Il y aura beaucoup de travail à faire pour qu'un ORM travaille avec une base de données que les frameworks font pour vous. Les plus faciles à décoller dans un état de fonctionnement sont probablement CakePHP, CodeIgniter et Symphony. AFAIK tout cela a des outils de génération de code très pratiques qui vont créer une application d'échafaudage en un rien de temps.

0

Comme simshaun suggéré, consultez Doctrine, ou bien Propel

0

Je aime vraiment utiliser CodeIgniter avec DataMapper. CodeIgniter est un framework PHP très facile à utiliser, même si vous aimez le PHP pur. DataMapper est un excellent ORM basé sur la bibliothèque du célèbre framework Ruby On Rails.

0

La bibliothèque ORM de Kohana est simple à utiliser et à configurer, ce qui la rend idéale pour la plupart des projets de petite et moyenne taille. Doctrine et Propel sont excellents, mais nécessitent plus de prise de décision à faire d'avance car ils utilisent la génération de code (probablement pas le meilleur choix pour un projet d'école). Ils sont tous les deux plus flexibles (tonnes d'options de configuration) que l'ORM de kohana ou de l'allumeur de code, mais ils ont une courbe d'apprentissage plus raide et impliquent beaucoup plus de configuration (lire à propos de 'convention vs configuration').

Un exemple de ORM de Kohana 3:

// 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(); 

Enfin, quelques documents de référence ... http://kohanaframework.org/guide/tutorials.orm