Perluasan Perilaku Ajaran
Paket ini berisi ekstensi untuk Doctrine ORM dan MongoDB ODM yang menawarkan fungsionalitas atau alat baru untuk menggunakan Doctrine dengan lebih efisien. Perilaku ini dapat dengan mudah dilampirkan ke sistem peristiwa Doktrin dan menangani pencatatan yang dilakukan dengan cara perilaku.
Ekstensi Ajaran 3.0 Dirilis
3.0 berfokus pada penyegaran paket ini untuk PHP saat ini. Ini termasuk:
- Menabrak persyaratan versi minimum PHP, Doctrine, dan dependensi lainnya
- Menerapkan dukungan untuk paket Doctrine MongoDB & Common terbaru
- Memperbarui rangkaian pengujian, menambahkan standar kode dan gaya, serta alat pembangunan lain yang diperlukan
- Membersihkan dokumentasi, kode, komentar, dll.
Baca Dokumen Peningkatan untuk info lebih lanjut.
Instalasi
composer require gedmo/doctrine-extensions
Perbaikan
Ekstensi
ORM & MongoDB ODM
- Dapat disalahkan - memperbarui string atau bidang referensi saat membuat, memperbarui, dan bahkan mengubah properti dengan string atau objek (misalnya pengguna).
- Loggable - membantu melacak perubahan dan riwayat objek, juga mendukung manajemen versi.
- Sluggable - meng-urlkan bidang yang Anda tentukan menjadi satu slug unik
- Timestampable - memperbarui kolom tanggal saat pembuatan, pembaruan, dan bahkan perubahan properti.
- Dapat Diterjemahkan - memberi Anda solusi yang sangat berguna untuk menerjemahkan catatan ke berbagai bahasa. Mudah diatur, lebih mudah digunakan.
- Pohon - mengotomatiskan proses penanganan pohon dan menambahkan beberapa fungsi khusus pohon pada repositori. ( penutupan , kumpulan bersarang , atau jalur terwujud ) (MongoDB ODM hanya mendukung jalur terwujud)
Hanya ORM
- IpTraceable - diwarisi dari Timestampable, menetapkan alamat IP, bukan stempel waktu
- SoftDeleteable - memungkinkan untuk menghapus catatan secara implisit
- Dapat diurutkan - membuat dokumen atau entitas apa pun dapat diurutkan
- Dapat diunggah - menyediakan penanganan pengunggahan file di bidang entitas
Hanya MongoDB ODM
- Referensi - mendukung penautan Entitas dalam Dokumen dan sebaliknya
- Integritas Referensi - membatasi referensi Dokumen ODM MongoDB
Semua ekstensi mendukung pemetaan Atribut , XML , dan Anotasi (tidak digunakan lagi). Driver pemetaan tambahan dapat dengan mudah diimplementasikan menggunakan ekstensi Mapping untuk menangani pemetaan metadata tambahan.
Kompatibilitas Versi
- DBAL:
^3.2
(untuk semua ekstensi) atau ^4.0
(untuk semua ekstensi, kecuali Loggable ) - ORM:
^2.14
atau ^3.0
- MongoDB ODM:
^2.3
Jika Anda menyiapkan Entity Manager tanpa kerangka kerja, lihat contoh untuk mencegah masalah seperti #1310
Pemetaan XML
Pemetaan XML harus berada dalam namespace yang berbeda, namespace yang dideklarasikan untuk ekstensi Doktrin adalah http://gediminasm.org/schemas/orm/doctrine-extensions-mapping Jadi simpul akar sekarang terlihat seperti ini:
< doctrine-mapping xmlns = " http://doctrine-project.org/schemas/orm/doctrine-mapping "
xmlns : gedmo = " http://gediminasm.org/schemas/orm/doctrine-extensions-mapping " >
...
</ doctrine-mapping >
Skema xsd pemetaan XML juga memiliki versi dan dapat digunakan berdasarkan akhiran versi:
- Versi terbaru - http://gediminasm.org/schemas/orm/doctrine-extensions-mapping
- Versi 2.2.x - http://gediminasm.org/schemas/orm/doctrine-extensions-mapping-2-2
- Versi 2.1.x - http://gediminasm.org/schemas/orm/doctrine-extensions-mapping-2-1
Tes Berjalan
Untuk menyiapkan dan menjalankan pengujian, ikuti langkah-langkah berikut:
- Instal Docker dan pastikan Anda memiliki
docker compose
- Dari root proyek, jalankan
docker compose up -d
untuk memulai container dalam mode daemon - Masuk ke container melalui
docker compose exec php bash
(Anda sekarang berada di direktori root: /var/www
) - Instal dependensi Komposer melalui
composer install
- Jalankan tes:
vendor/bin/phpunit
Menjalankan Contoh
Untuk menyiapkan dan menjalankan contoh, ikuti langkah-langkah berikut:
- buka direktori root ekstensi
- unduh komposer
- instal perpustakaan dev:
composer install
- edit
example/em.php
dan konfigurasikan database Anda di atas file - jalankan:
php example/bin/console
atau php example/bin/console
untuk perintah konsol - jalankan:
php example/bin/console orm:schema-tool:create
untuk membuat skema - jalankan:
php example/bin/console app:print-category-translation-tree
untuk menjalankan contoh untuk mencetak pohon terjemahan kategori
Kontributor
Terima kasih kepada semua orang yang berpartisipasi dalam pengembangan perluasan Doktrin yang hebat ini!
Dan khususnya mereka yang membuat dan memelihara ekstensi baru:
- Lukas Botsch lbotsch
- Gustavo Adrian mati rasa dengan nyaman
- Boussekeyt Jules Gordons London
- Kudryashov Konstantin Everzet
- David Buchmann dbu