2009-07-11 4 views

risposta

19

ActiveRecord è un modello comune in ORM. Doctrine è un ORM che utilizza uno stile ActiveRecord'ish.

Alcuni vantaggi di utilizzare strumenti come Doctrine: indipendenza

  • Database: Il codice dovrebbe essere facile da porta per diversi DB. Ad esempio, spesso collaudo usando SQLite e utilizzo MySQL o Postgre in produzione senza modifiche nel codice.
  • Riducono la quantità di codice che si deve scrivere: gran parte del codice dell'applicazione riguarda la comunicazione con il database. Un ORM si occupa di gran parte di questo, quindi puoi concentrarti sulla scrittura dell'app vera e propria.

Naturalmente, non arrivano senza gli svantaggi:

  • Dottrina è pesante, quindi è più lento rispetto all'utilizzo di SQL dritto
  • ORM può essere complessa, l'aggiunta di un certo peso a quello che hai da imparare, e possono a volte essere difficili da capire per programmatori inesperti
+0

Non so che cosa si intende per "ActiveRecord'ish", ma qui è una descrizione corretta: "Doctrine 2 è un ORM (object-relational mapper) per PHP 5.4+ che fornisce una persistenza trasparente per oggetti PHP, utilizza il pattern Data Mapper al centro, mirando a una completa separazione del dominio/business logic dalla persistenza in un sistema di gestione del database relazionale. " Fonte: http://doctrine-orm.readthedocs.org/en/latest/tutorials/getting-started.html#what-is-doctrine – ZeeCoder

+1

@ZeeCoder Potrei sbagliarmi ma considerando che ho scritto questa risposta nel 2009, penso che loro non ha ancora Doctrine 2. Doctrine 1 aveva un'API molto più in stile ActiveRecord rispetto alla loro seconda versione (e molto meglio, dovrei aggiungere) –

+0

My bad then. Ho sempre usato Doctrine 2 :) – ZeeCoder