Saat saya menggunakan PageRepository inti (TYPO3\CMS\Frontend\Page\PageRepository), fungsi getPage(), saya mendapatkan array yang dikembalikan dan bukan sebuah objek, seperti di banyak repositori inti lainnya. Kemudian saya harus membangun semacam "keajaiban" untuk diri saya sendiri untuk memasukkan Kategori atau Penulis Halaman sebagai Objek untuk digunakan dalam Template Fluid. Pertanyaannya adalah apakah ini semacam "keputusan desain" untuk tidak menyediakan Model Halaman sama sekali?
Mengapa TYPO3 tidak memiliki Model Halaman di Inti?
Jawaban (3)
PageRepository tidak digunakan dalam konteks Extbase, jadi tidak ada pemodelan Domain di sini, karena ini juga banyak digunakan dalam konteks backend dan pada eksekusi inti tingkat sangat rendah, di mana Extbase tidak tersedia atau akan memakan banyak biaya untuk booting Basis Ekst. Anda cukup memetakan tabel halaman ke model Anda sendiri dan menggunakan pemodelan Domain yang tepat dengan cara ini, saat menggunakan Extbase di ekstensi Anda. Inti tidak menyediakan model Domain Extbase untuk halaman, afaik.
Tidak masuk akal untuk mengirimkan model domain Extbase Page
karena berbagai alasan:
- TYPO3 sendiri tidak membutuhkannya.
- Modelnya harus sangat umum karena tidak dapat mengetahui apa pun tentang persyaratan domain Anda.
- Oleh karena itu, modelnya akan terlalu umum untuk semua persyaratan domain yang pada dasarnya mengharuskan Anda menambahkan model domain
Page
Anda sendiri.
Dan ya, hal yang sama dapat dikatakan tentang FrontendUser
yang dikirim dan kelas terkait dan orang dapat berargumentasi bahwa kelas ini harus dibatalkan karena alasan yang sama.
Anda tidak perlu membuat objek dari array untuk digunakan di Fluid.
Anda juga bisa meneruskan array ke tampilan. Anda akan menggunakan notasi .
seperti halnya dengan objek.
Misalnya. di pengontrol:
$this->view->assign('page', $page);
Cairan:
{page.title}