2008-09-01 22 views
2

Hat jemand Empfehlungen für Implementierungen von ActiveRecord in PHP? Ich habe CBL ActiveRecord verwendet, aber ich habe mich gefragt, ob es irgendwelche brauchbaren Alternativen gibt.ActiveRecord

Antwort

1

Hängt davon ab! ;)

Zum Beispiel gibt es ADODB's Active Record implementation, dann gibt es Zend_Db_DataTable und Doctrine. Das sind die, die ich kenne, ich bin mir sicher, dass es mehr Implementierungen gibt.

Von diesen drei würde ich Doctrine empfehlen. Das letzte Mal, als ich Adodb überprüfte, trug eine Menge zusätzliches Gewicht für PHP4 und Zend_Db_ * ist im Allgemeinen nicht als das Beste in Bezug auf Vollständigkeit und Leistung bekannt (wahrscheinlich aufgrund seines jungen Alters).

Doctrine neben Active Table und die allgemeine Datenbankabstraktion (auch bekannt als DBAL) hat so viele Dinge (zB Migrationen), die es sich lohnt, auszuprobieren, also wenn Sie sich noch keine Gedanken über eine DBAL gemacht haben es prüfen.

0

Während nicht streng ActiveRecord, Zend_Db_Table ist ziemlich gut.

1

Ich fand ein paar Beispiele für andere Implementierungen: Luke Baker hat einen ruft er Active Record in PHP.

Flinn hat eine post darüber, warum es in PHP nicht möglich ist, weil in Ruby alles ein Objekt ist. Mit einer Folge here

Ich kenne ein paar Leute, die sich ZF angesehen haben, haben Sie das versucht?

CakePHP?

+0

Ihr Beitrag von Link rot leidet. Bitte repariere. – silasjmatson

1

Dies ist eher ein How-To-Implementierungstipp, aber ich begann mit dem Erstellen einer ActiveRecord/DataMapper-Implementierung in PHP und stieß schnell auf viele Hürden mit Array-ähnlichem Zugriff. Schließlich habe ich die SPL-Erweiterungen von PHP und insbesondere ArrayObject und ArrayIterator gefunden. Diese begannen mein Leben viel einfacher zu machen. Leider hatte ich nicht viel Zeit dafür, aber wer sowas probiert, sollte dies überprüfen.

5

Ich weiß, das ist alt, aber es gibt eine absolut fabelhafte PHP-Activecord-Bibliothek namens PHP Activetrecord. Ich benutze es seit mehreren Monaten und es bläst die anderen Bibliotheken weg.

Check it out:

http://www.phpactiverecord.org/