เมื่อฉันใช้ PageRepository หลัก (TYPO3\CMS\Frontend\Page\PageRepository) ฟังก์ชัน getPage() ฉันจะได้รับ array ที่ส่งคืนและ ไม่ใช่ วัตถุ เช่นเดียวกับในที่เก็บหลักอื่นๆ มากมาย จากนั้น ฉันจะต้องสร้าง "เวทย์มนตร์" สำหรับตัวเองเพื่อ แทรก หมวดหมู่ หรือ ผู้เขียนเพจ เป็น Objects ที่จะใช้ใน เทมเพลตแบบไหล คำถามคือถ้าเป็น "การตัดสินใจออกแบบ" ที่จะไม่ให้ Page Model เลย?
เหตุใด TYPO3 จึงไม่มี Page Model ใน Core
คำตอบ (3)
PageRepository ไม่ได้ใช้ในบริบท Extbase ดังนั้นจึงไม่มีการสร้างแบบจำลองโดเมนที่นี่ เนื่องจากมีการใช้งานจำนวนมากในบริบทแบ็กเอนด์และในการประมวลผลคอร์ระดับต่ำมาก โดยที่ Extbase ไม่พร้อมใช้งาน หรืออาจมีค่าใช้จ่ายมากเกินไปในการบูตเครื่อง เอ็กซ์เบส. คุณสามารถแมปตารางเพจกับโมเดลของคุณเอง และใช้การสร้างแบบจำลองโดเมนที่เหมาะสมด้วยวิธีนี้ เมื่อใช้ Extbase ในส่วนขยายของคุณ แกนกลางไม่ได้จัดเตรียมโมเดลโดเมน Extbase สำหรับเพจ afaik
การจัดส่งโมเดลโดเมน Extbase Page
ด้วยเหตุผลหลายประการ:
- TYPO3 เองก็ไม่ต้องการมัน
- โมเดลจะต้องเป็นแบบทั่วไปอย่างยิ่ง เนื่องจากไม่สามารถรู้อะไรเกี่ยวกับข้อกำหนดโดเมนของคุณได้
- ด้วยเหตุนี้ โมเดลจึง กว้างเกินไป สำหรับข้อกำหนดโดเมนโดยทั่วไป ซึ่งจะทำให้คุณต้องเพิ่มโมเดลโดเมน
Page
ของคุณเองต่อไป
และใช่ อาจพูดแบบเดียวกันเกี่ยวกับการจัดส่ง FrontendUser
และคลาสที่เกี่ยวข้อง และใครๆ ก็อาจแย้งว่าสิ่งเหล่านี้ควรถูกทิ้งด้วยเหตุผลเดียวกัน
คุณจะไม่ต้องสร้างออบเจ็กต์จากอาร์เรย์เพื่อใช้ใน Fluid
คุณยังสามารถส่งอาร์เรย์ไปยังมุมมองได้ คุณจะใช้เครื่องหมาย .
เช่นเดียวกับวัตถุ
เช่น. ในตัวควบคุม:
$this->view->assign('page', $page);
ของไหล:
{page.title}