Apakah ada perpustakaan pemetaan objek-relasional-baik untuk PHP?
Saya tahu PDO / ADO, tetapi mereka tampaknya hanya memberikan perbedaan abstrak antara vendor database bukan pemetaan aktual antara model domain dan model relasional. Saya mencari perpustakaan PHP yang fungsinya mirip dengan cara Hibernate untuk Java dan NHibernate untuk .NET.
Hanya ada dua yang bagus: Ajaran dan Propel . Kami mendukung Doktrin, dan itu bekerja dengan baik dengan Symfony . Namun jika Anda mencari dukungan database selain yang utama Anda harus menulis kode Anda sendiri.
sumber
Axon ORM adalah bagian dari Kerangka Kerja Bebas Lemak - ia memiliki mapper on-the-fly. Tidak ada pembuat kode. Tidak ada XML / YAML yang bodoh file konfigurasi . Bunyinya skema database langsung dari backend, jadi di sebagian besar operasi CRUD Anda bahkan tidak perlu memperpanjang model dasar. Ia bekerja dengan semua mesin basis data utama yang didukung PDO : MySQL , SQLite , SQL Server / Sybase, Oracle, PostgreSQL , dll.
Yang terpenting, plug-in dan layer akses data SQL yang menyertainya hanya seringan kerangka: 14 KB (Axon) + 6 KB (SQLdb). Bebas Lemak hanya 55 KB.
sumber
$product->load('product_id=123')
dalam contoh.$product->load(array('product_id=:id',array(':id'=>123)));
Saya telah mengembangkan Pork.dbObject sendiri. (Implementasi PHP ORM sederhana dan Rekaman Aktif) Alasan utamanya adalah saya merasa sebagian besar ORM terlalu berat.
Pikiran utama Pork.dbObejct adalah menjadi ringan dan mudah diatur. Tidak ada banyak file XML, hanya satu panggilan fungsi dalam konstruktor untuk mengikatnya, dan addRelation atau addCustomRelation untuk menentukan hubungan ke dbObject lain.
Coba lihat: Pork.dbObject
sumber
Mencoba Doctrine2 . Ini mungkin alat ORM paling kuat untuk PHP. Saya menyebutkannya secara terpisah dari Doctrine 1, karena ini adalah perangkat lunak yang sangat berbeda. Sudah ditulis ulang dari awal, masih dalam tahap beta, tetapi sekarang dapat digunakan dan dikembangkan.
Ini adalah ORM yang sangat kompleks, tetapi dirancang dengan baik. Banyak sihir dari Doktrin 1 asli menghilang. Ini memberikan solusi yang lengkap, dan Anda dapat menulis ORM Anda sendiri di atas Doctrine2 atau hanya menggunakan salah satu lapisannya .
sumber
Saya baru saja mulai dengan Kohana , dan tampaknya yang paling dekat dengan Ruby on Rails tanpa melibatkan semua kompleksitas beberapa file konfigurasi seperti dengan Propel .
sumber
Lihat Outlet ORM . Ini lebih sederhana daripada Propel dan Doctrine dan kerjanya mirip dengan Hibernate, hanya dengan PHP yang lebih terasa.
sumber
Saya sangat suka Propel , di sini Anda bisa mendapatkan gambaran umum, dokumentasinya cukup bagus, dan Anda bisa mendapatkannya melalui PEAR atau SVN.
Anda hanya perlu menginstal PHP5 yang berfungsi, dan Phing untuk mulai membuat kelas.
sumber
Saya menemukan kelas terkait ORM di perpustakaan PHP Berkembang .
sumber
Anda harus memeriksa Idiorm dan Paris .
sumber
Berikan kesempatan pada dORM, sebuah mapper relasional objek untuk PHP 5 . Ini mendukung semua jenis hubungan (1-ke-1), (1-ke-banyak), (banyak-ke-banyak) dan tipe data. Ini benar-benar tidak mengganggu: tidak ada pembuatan kode atau perluasan kelas yang diperlukan. Menurut saya itu lebih unggul daripada ORM di luar sana, termasuk Ajaran dan Propel. Namun, ini masih dalam versi beta dan mungkin akan berubah secara signifikan dalam beberapa bulan ke depan. http://www.getdorm.com
Ini juga memiliki kurva belajar yang sangat kecil. Tiga metode utama yang akan Anda gunakan adalah:
sumber
Saat ini saya sedang mengerjakan phpDataMapper , yang merupakan ORM yang dirancang untuk memiliki sintaks sederhana seperti proyek Datamapper Ruby. Ini masih dalam pengembangan awal, tetapi ini bekerja dengan baik.
sumber
Saya memiliki pengalaman hebat dengan Idiorm dan Paris . Idiorm adalah perpustakaan ORM kecil dan sederhana. Paris adalah implementasi Rekaman Aktif yang sama sederhananya yang dibangun di atas Idiorm. Ini untuk PHP 5.2+ dengan PDO. Ini sempurna jika Anda menginginkan sesuatu yang sederhana yang dapat Anda masukkan ke dalam aplikasi yang sudah ada.
sumber
Mencoba ORM dari perpustakaan Flourish .
sumber
Sampai rilis PHP 5.3 jangan berharap memiliki ORM yang baik. Ini adalah batasan OO untuk PHP.
sumber
Teman saya Kien dan saya telah memperbaiki versi ORM sebelumnya yang telah ditulisnya sebelum PHP 5.3. Kami pada dasarnya telah porting melalui Ruby on Rails ' Record Aktif ke PHP. Masih kekurangan beberapa fitur utama yang kita inginkan seperti transaksi, dukungan kunci primer komposit, beberapa adapter (hanya MySQL dan SQLite 3 yang berfungsi saat ini). Tapi, kami sangat dekat untuk menyelesaikan hal ini. Anda dapat melihat di PHP ActiveRecord dengan PHP 5.3 .
sumber
Coba PHP ADOdb.
Saya tidak bisa mengatakan itu yang terbaik, karena saya belum pernah menggunakan yang lain. Tapi itu cepat, ini mendukung Memcached dan caching.
Dan itu waaaay lebih cepat dari DB / Select Zend Framework .
sumber
Lihatlah ORANG LEAP untuk Kohana . Ia bekerja dengan sekelompok database, termasuk DB2 , Gerimis , Firebird , MariaDB , SQL Server, MySQL , Oracle, PostgreSQL , dan SQLite . Dengan fungsi pengisian otomatis yang sederhana, ini dapat bekerja dengan hampir semua kerangka kerja PHP. Kode sumber ada di GitHub di https://github.com/spadefoot/kohana-orm-leap . Anda dapat memeriksa tutorial LEAP secara online.
Perpustakaan ORM bekerja dengan kunci primer non-integer dan kunci komposit. Koneksi dikelola melalui kumpulan koneksi basis data dan berfungsi dengan kueri SQL mentah. ORM bahkan memiliki pembangun kueri yang membuat pembuatan pernyataan SQL menjadi sangat sederhana.
sumber
Anda dapat melihat Istirahat jika Anda ingin berpetualang. Seperti Outlet , dimodelkan setelah Hibernate .
Ini masih sangat awal dalam pengembangannya, tetapi sejauh ini satu-satunya batasan pada model domain adalah bahwa kelas tidak ditandai sebagai final dan properti tidak ditandai pribadi. Begitu saya masuk ke tanah PHP> = 5.3, saya akan mencoba menerapkan dukungan untuk properti pribadi juga.
sumber
Jika Anda mencari ORM yang mengimplementasikan paradigma Data Mapper daripada Rekaman Aktif secara spesifik, maka saya sangat menyarankan agar Anda melihat GacelaPHP .
Fitur Gacela:
Solusi ORM lainnya terlalu membengkak atau memiliki keterbatasan memberatkan ketika mengembangkan sesuatu yang jauh rumit. Gacela mengatasi keterbatasan pendekatan rekaman aktif dengan menerapkan Pola Data Mapper sambil menjaga mengasapi agar tetap minimum dengan menggunakan PDO untuk semua interaksi dengan database dan Memcached.
sumber
MicroMVC memiliki ORM 13 KB yang hanya mengandalkan kelas basis data 8 KB . Ini juga mengembalikan semua hasil sebagai objek ORM sendiri dan menggunakan pengikatan statis akhir untuk menghindari penyematan informasi tentang tabel objek saat ini dan data meta ke dalam setiap objek. Ini menghasilkan overhead ORM termurah yang ada.
Ia bekerja dengan MySQL , PostgreSQL , dan SQLite .
sumber
ORM Brasil: http://www.hufersil.com.br/lumine . Ini bekerja dengan PHP 5.2+. Menurut pendapat saya, ini adalah pilihan terbaik untuk orang-orang Portugis dan Brasil, karena memiliki dokumentasi yang mudah dipahami dan banyak contoh untuk diunduh.
sumber
Agile Toolkit memiliki implementasi unik dari ORM / ActiveRecord dan SQL dinamis .
Pendahuluan: http://agiletoolkit.org/intro/1
Sintaks (Rekaman Aktif):
Sintaks (SQL Dinamis):
Sementara Dynamic SQL dan Active Record / ORM dapat digunakan secara langsung, Agile Toolkit lebih lanjut mengintegrasikannya dengan User Interface dan UI jQuery . Ini mirip dengan JSF tetapi ditulis dalam PHP murni.
Ini akan menampilkan AJAXified CRUD dengan untuk model Karyawan.
sumber
NotORM
sumber
PHP ORM Faces Untuk ekstensi PDO. Lihat Kerangka Wajah PHP .
sumber
Lihatlah http://code.google.com/p/lworm/ . Ini adalah sistem ORM yang sangat sederhana, tetapi kuat, ringan untuk PHP. Anda juga dapat dengan mudah memperpanjangnya, jika diinginkan.
sumber
PHP ORM open source hebat lain yang kami gunakan adalah PHPSmartDb . Itu stabil dan membuat kode Anda lebih aman dan bersih. Fungsi basis data di dalamnya adalah yang paling mudah yang pernah saya gunakan dengan PHP 5.3.
sumber
Doktrin mungkin merupakan taruhan terbaik Anda. Sebelum Doctrine, DB_DataObject pada dasarnya adalah satu-satunya utilitas lain yang bersumber terbuka.
sumber
Jika Anda mencari ORM, seperti Hibernate , Anda harus melihat PMO .
Ini dapat dengan mudah diintegrasikan dalam arsitektur SOA (hanya ada kelas layanan web untuk dikembangkan).
sumber