2009-07-11 13 views

Antwort

19

Active ist ein Muster gemeinsam in ORMs. Doctrine ist ein ORM, das einen ActiveRecord'ish-Stil verwendet.

Einige Vorteile von Tools wie Lehre mit:

  • Datenbankunabhängigkeit: Der Code sollte auf verschiedene DBs Port einfach sein. Zum Beispiel teste ich oft mit SQLite und verwende MySQL oder Postgre in der Produktion ohne Änderungen im Code.
  • Sie reduzieren die Menge an Code, die Sie schreiben müssen: Ein großer Teil des Anwendungscodes beschäftigt sich mit der Kommunikation mit der Datenbank. Ein ORM kümmert sich um das meiste, damit Sie sich auf das Schreiben der eigentlichen App konzentrieren können.

Natürlich kommen sie nicht ohne Nachteile:

  • Lehre schwer ist, so ist es langsamer als gerade SQL
  • ORMs verwendet, kann sehr komplex sein, und fügte hinzu, etwas Gewicht zu, was Sie zu lernen, und sie können manchmal für unerfahrene Programmierer schwer zu verstehen sein
+0

Ich weiß nicht, was Sie unter "ActiveRecord'ish" bedeuten, aber hier ist eine richtige Beschreibung: "Doctrine 2 ist ein Object-Relational Mapper (ORM) für PHP 5.4+, der eine transparente Persistenz für PHP-Objekte bietet. Er verwendet das Data Mapper-Muster im Herzen und zielt auf eine vollständige Trennung Ihrer Domäne/Geschäftslogik von der Persistenz in einem Relationales Datenbank Management System." Quelle: http://doctrine-orm.readthedocs.org/en/latest/tutorials/getting-started.html#what-is-doctrine – ZeeCoder

+1

@ZeeCoder Ich könnte mich irren, aber wenn ich bedenke, dass ich diese Antwort 2009 geschrieben habe, denke ich, dass sie das tun hatte noch keine Doktrin 2. Doctrine 1 hatte eine viel mehr ActiveRecord-styled API als ihre zweite (und viel viel besser, ich sollte hinzufügen) Version –

+0

Mein schlechtes dann. Ich habe nur Doctrine 2 benutzt :) – ZeeCoder