ส่วนขยายพฤติกรรมหลักคำสอน
แพ็คเกจนี้มีส่วนขยายสำหรับ Doctrine ORM และ MongoDB ODM ที่นำเสนอฟังก์ชันการทำงานหรือเครื่องมือใหม่เพื่อใช้ Doctrine ได้อย่างมีประสิทธิภาพมากขึ้น พฤติกรรมเหล่านี้สามารถเชื่อมโยงกับระบบเหตุการณ์ของ Doctrine ได้อย่างง่ายดาย และจัดการกับบันทึกที่ถูกล้างในลักษณะเชิงพฤติกรรม
ส่วนขยายหลักคำสอน 3.0 เปิดตัวแล้ว
3.0 มุ่งเน้นไปที่การรีเฟรชแพ็คเกจนี้สำหรับ PHP ในปัจจุบัน ซึ่งรวมถึง:
- ขัดข้อกำหนดเวอร์ชันขั้นต่ำของ PHP, Doctrine และการขึ้นต่อกันอื่นๆ
- การใช้การสนับสนุนสำหรับแพ็คเกจ Doctrine MongoDB และ Common ล่าสุด
- การอัปเดตชุดทดสอบ เพิ่มโค้ดและมาตรฐานสไตล์ และเครื่องมือสร้างที่จำเป็นอื่นๆ
- ทำความสะอาดเอกสาร รหัส ความคิดเห็น ฯลฯ
อ่านเอกสารอัปเกรดเพื่อดูข้อมูลเพิ่มเติม
การติดตั้ง
composer require gedmo/doctrine-extensions
กำลังอัปเกรด
ส่วนขยาย
ORM และ MongoDB ODM
- ตำหนิได้ - อัปเดตสตริงหรือฟิลด์อ้างอิงในการสร้าง อัปเดต และแม้แต่การเปลี่ยนแปลงคุณสมบัติด้วยสตริงหรืออ็อบเจ็กต์ (เช่น ผู้ใช้)
- Loggable - ช่วยติดตามการเปลี่ยนแปลงและประวัติของออบเจ็กต์ และยังรองรับการจัดการเวอร์ชันอีกด้วย
- Sluggable - urlize ฟิลด์ที่ระบุของคุณให้เป็นทากที่ไม่ซ้ำกันตัวเดียว
- ประทับเวลาได้ - อัปเดตฟิลด์วันที่ในการสร้าง อัปเดต และแม้แต่การเปลี่ยนแปลงคุณสมบัติ
- แปลได้ - มอบโซลูชันที่มีประโยชน์มากสำหรับการแปลบันทึกเป็นภาษาต่างๆ ติดตั้งง่าย ใช้งานง่ายกว่า
- ต้นไม้ - ทำให้กระบวนการจัดการต้นไม้เป็นอัตโนมัติและเพิ่มฟังก์ชันเฉพาะต้นไม้บางอย่างในพื้นที่เก็บข้อมูล ( การปิด ชุดที่ซ้อนกัน หรือ เส้นทางที่เป็นรูปธรรม ) (MongoDB ODM รองรับเฉพาะเส้นทางที่เป็นรูปธรรมเท่านั้น)
ออมเท่านั้น
- IpTraceable - รับมาจาก Timestampable ตั้งค่าที่อยู่ IP แทนการประทับเวลา
- SoftDeleteable - อนุญาตให้ลบบันทึกโดยปริยาย
- จัดเรียงได้ - ทำให้เอกสารหรือเอนทิตีสามารถจัดเรียงได้
- อัปโหลดได้ - ให้การจัดการการอัปโหลดไฟล์ในฟิลด์เอนทิตี
MongoDB ODM เท่านั้น
- การอ้างอิง - รองรับการเชื่อมโยงเอนทิตีในเอกสารและในทางกลับกัน
- ReferenceIntegrity - จำกัดการอ้างอิงเอกสาร ODM MongoDB
ส่วนขยายทั้งหมดรองรับการ แมปแอตทริบิวต์ , XML และ คำอธิบายประกอบ (เลิกใช้แล้ว) ไดรเวอร์การแมปเพิ่มเติมสามารถนำไปใช้ได้อย่างง่ายดายโดยใช้ส่วนขยายการแมปเพื่อจัดการการแมปเมตาดาต้าเพิ่มเติม
ความเข้ากันได้ของเวอร์ชัน
- DBAL:
^3.2
(สำหรับส่วนขยายทั้งหมด) หรือ ^4.0
(สำหรับส่วนขยายทั้งหมด ยกเว้น Loggable ) - ออร์ม:
^2.14
หรือ ^3.0
- MongoDB ODM:
^2.3
หากคุณกำลังตั้งค่า Entity Manager โดยไม่มีเฟรมเวิร์ก โปรดดูตัวอย่างเพื่อป้องกันปัญหาเช่น #1310
การทำแผนที่ XML
การแมป XML จะต้องอยู่ในเนมสเปซอื่น เนมสเปซที่ประกาศสำหรับส่วนขยาย Doctrine คือ http://gediminasm.org/schemas/orm/doctrine-extensions-mapping ดังนั้นโหนดรูทตอนนี้จะมีลักษณะดังนี้:
< doctrine-mapping xmlns = " http://doctrine-project.org/schemas/orm/doctrine-mapping "
xmlns : gedmo = " http://gediminasm.org/schemas/orm/doctrine-extensions-mapping " >
...
</ doctrine-mapping >
XML mapping xsd schema ก็มีการกำหนดเวอร์ชันเช่นกัน และสามารถใช้ได้ตามส่วนต่อท้ายเวอร์ชัน:
- เวอร์ชันล่าสุด - http://gediminasm.org/schemas/orm/doctrine-extensions-mapping
- เวอร์ชัน 2.2.x - http://gediminasm.org/schemas/orm/doctrine-extensions-mapping-2-2
- เวอร์ชัน 2.1.x - http://gediminasm.org/schemas/orm/doctrine-extensions-mapping-2-1
การทดสอบการทำงาน
หากต้องการตั้งค่าและรันการทดสอบ ให้ทำตามขั้นตอนเหล่านี้:
- ติดตั้ง Docker และให้แน่ใจว่าคุณมี
docker compose
- จากรูทโปรเจ็กต์ ให้รัน
docker compose up -d
เพื่อเริ่มคอนเทนเนอร์ในโหมด daemon - ป้อนคอนเทนเนอร์ผ่าน
docker compose exec php bash
(ตอนนี้คุณอยู่ในไดเรกทอรีราก: /var/www
) - ติดตั้งการพึ่งพาผู้แต่งผ่าน
composer install
- รันการทดสอบ:
vendor/bin/phpunit
เรียกใช้ตัวอย่าง
หากต้องการตั้งค่าและเรียกใช้ตัวอย่าง ให้ทำตามขั้นตอนเหล่านี้:
- ไปที่ไดเรกทอรีรากของส่วนขยาย
- ดาวน์โหลดผู้แต่ง
- ติดตั้งไลบรารี dev:
composer install
- แก้ไข
example/em.php
และกำหนดค่าฐานข้อมูลของคุณที่ด้านบนของไฟล์ - run:
php example/bin/console
หรือ php example/bin/console
สำหรับคำสั่งคอนโซล - รัน:
php example/bin/console orm:schema-tool:create
เพื่อสร้างสคีมา - run:
php example/bin/console app:print-category-translation-tree
เพื่อรันตัวอย่างเพื่อพิมพ์แผนผังการแปลหมวดหมู่
ผู้ร่วมให้ข้อมูล
ขอขอบคุณทุกคนที่มีส่วนร่วมในการพัฒนาส่วนขยายหลักคำสอนที่ยอดเยี่ยมเหล่านี้!
และโดยเฉพาะอย่างยิ่งผู้ที่สร้างและดูแลรักษาส่วนขยายใหม่:
- ลูคัส บอตช์ บอตช์
- กุสตาโว่ อาเดรียน รู้สึกชาอย่างสบายๆ
- บุสเซคีย์ จูลส์ กอร์ดอนสลอนดอน
- คุดรีอาชอฟ คอนสแตนติน เอเวอร์เซต
- เดวิด บุชมันน์ dbu