Membuat Struktur MVC Pada Slim Framework Part 5
Pada bagian sebelumnya kita sudah belajar cara membuat controller. Tapi apakah class controller ini sudah bisa langsung akses component twignya? Perlu kita buktikan kalo saya menuliskan return $this->view render
Maka saya pastikan kalo ini akan error dimana fungsi rendernya tidak dikenal bahkan context thisnya juga belum jelas dari mana
Karena kalo kita ingat component twig kita daftarkan di container sementara controller kita ini belum mengenal isi dari containernya berarti kita perlu cari cara supaya controller kita bisa langsung berinteraksi dengan containernya. Nah kalo kita cari didocumentasi dari slim maka teman teman akan menemukan caranya dibagian router.
https://www.slimframework.com/docs/v3/objects/router.html
Tentu ada dua cara yang disarankan oleh slim. Yang pertama buat controllernya menjadi sebuah container tentu hal ini sangat tidak rapi karena setiap controller kita daftarkan satu persatu seperti ini
Solusi yang kedua kita gunakan ContainerInterface dengan melakukan inject ke function construct supaya lebih mudah. Sekarang kita akan buat satu variabel protected namanya $ci
Terus ContainerInterface akan saya letakkan sebagai parameter function construct. Function construct merupakan method yang otomatis dijalankan
Pastikan kita import dulu dengan keyword use namespace berada di Psr\Container\ContainerInterface
Yang jelas di metode construct ini kita mau mengoper ulang object Interface dari containernya ke variabel protectednya yaitu $ci supaya kita bisa akses penuh ke semua fungsi yang butuh container
Kalo sudah harusnya kita bisa langsung akses sistem twignya tapi melalui $ci nya. Penulisannya sebagai berikut
dan secara otomatis setiap function yang akan dijalankan akan memiliki parameter $request dan $response
Kalian bisa langsung test dan jalankan dibrowser maka kita bisa melihat halaman atau template dari home twignya dan sudah berhasil kita load dari controller indexnya
Jadi itu salah satu caranya, cara yang sangat sederhana karena kita mau menggunakan fungsi render dari containernya viewnya dimana kita tidak bisa langsung mengakses begitu saja kita perlu akses melalui ContainerInterface dan di oper ulang ke variabel global untuk bisa di gunakan di semua functionnya. Terima kasih
Webinar Gratis 2024
Sabtu, 09 Maret 2024
10 Bahasa Rekomendasi Untuk Dipelajari di 2024
Python Developer, Data Science, Web Application
Minggu, 26 Mei 2024, 09.00-13.00 WIB
(4 Jam Membuat Backend di Laravel 11)