Oke selamat sore guys. Sudah beberapa hari gak posting nih. Hari ini mau ngasih tutorial awal coding. Kita akan mempelajari gimana membuat view dan controller dan menampilkannya. Untuk saat ini kita belum menggunakan model. Oke langsung aja guys keburu malem..:D
Katakan Hello
Sesi ini menjelaskan bagaimana membuat "Hello" baru di aplikasimu. Untuk itu, kamu akan membuat sebuah "action" dan "view".
- Aplikasi akan mengirim permintaan halaman ke action.
- Dan action akan mengembalikan ke view yang menampilkan kata "Hello" ke end user.
- Bagaimana membuat sebuah action untuk merespon permintaan.
- Bagaimana membuat sebuah view untuk menyusun konten respon, dan
- Bagaimana aplikasi mengirim request ke action.
Membuat Action
Untuk tugas "Hello", kamu akan membuat action "say" yang membaca parameter "message" dari permintaan dan menampilkan "message" tersebut ke user. Jika permintaan tidak menyediaakn parameter "message", action akan menampilkan pesan default "Hello".
info : Actions adalah objek yang mana end user dapat langsung merujuk untuk eksekusi. Actions di group pada Controller. Hasil eksekusi actions merespon ke end user.
Actions harus didefinisikan di Controller. Untuk mudahnya, kamu boleh mendefinisikan action "say" di "SiteController". Controller ini ada pada class file "controller/SiteController.php". Mari kita mulai action baru.
Ketika berhubungan dengan penamaan action mu, kamu harus mengerti bagaimana Yii memperlakukan action IDs. Action IDs selalu mengacu pada pilihan kecil. Jika action ID membutuhkan banyak kata, akan digabungkan dengan tanda garis (contoh create-comment). Nama method action merujuk ke action IDs dengan menghapus beberapa tanda garis dari IDs, huruf besar diawalan kata, dan menaruh hasil string dengan "action". Sebagai contoh, action ID "create-comment" disampaikan ke nama method "actionCreateCommand".
Method action pada contoh kami membawa parameter "$message", yang berisi default "Hello". Ketika aplikasi menerima permintaan dan menentukan action "say" untuk menghandle request tersebut, aplikasi akan mengambil parameter dengan nama yang sama yang ditemukan pada permintaan tersebut. Dengan kata lain, jika permintaan memasukkan parameter "message" dengan value "Goodbye", variabel "$message" pada action digantikan value tersebut.
Dengan method action, "render()" untuk mengirim view "say". Parameter "message" juga dikirim ke view, jadi parameter tersebut bisa digunakan . Hasil render adalah kembalian dari methid action. Yang mana hasil akan diterima oleh aplikasi dan ditampilkan ke end user di browser (sebaga bagian dari halaman HTML).
info : Actions adalah objek yang mana end user dapat langsung merujuk untuk eksekusi. Actions di group pada Controller. Hasil eksekusi actions merespon ke end user.
Actions harus didefinisikan di Controller. Untuk mudahnya, kamu boleh mendefinisikan action "say" di "SiteController". Controller ini ada pada class file "controller/SiteController.php". Mari kita mulai action baru.
namespace app\controllers;Pada kdoe di atas, action "say" didefinisikan sebagai nama method "actionSay" di class "SiteController". Yii menggunakan awalan "action" untuk membedakan method action dari method non-action di class controller. Nama setelah awalan action menunjukkan ID action.
use yii\web\Controller;
class SiteController extends Controller{
// ....kode lainnya yang ada........
public function actionSay($message = 'Hello'){
return $this->render('say',['message'=>$message]);
}
}
Ketika berhubungan dengan penamaan action mu, kamu harus mengerti bagaimana Yii memperlakukan action IDs. Action IDs selalu mengacu pada pilihan kecil. Jika action ID membutuhkan banyak kata, akan digabungkan dengan tanda garis (contoh create-comment). Nama method action merujuk ke action IDs dengan menghapus beberapa tanda garis dari IDs, huruf besar diawalan kata, dan menaruh hasil string dengan "action". Sebagai contoh, action ID "create-comment" disampaikan ke nama method "actionCreateCommand".
Method action pada contoh kami membawa parameter "$message", yang berisi default "Hello". Ketika aplikasi menerima permintaan dan menentukan action "say" untuk menghandle request tersebut, aplikasi akan mengambil parameter dengan nama yang sama yang ditemukan pada permintaan tersebut. Dengan kata lain, jika permintaan memasukkan parameter "message" dengan value "Goodbye", variabel "$message" pada action digantikan value tersebut.
Dengan method action, "render()" untuk mengirim view "say". Parameter "message" juga dikirim ke view, jadi parameter tersebut bisa digunakan . Hasil render adalah kembalian dari methid action. Yang mana hasil akan diterima oleh aplikasi dan ditampilkan ke end user di browser (sebaga bagian dari halaman HTML).
Membuat view
View adalah kode untuk menulis konten respon. Untuk tugas "Hello", kamu akan membuat view "say" yang mencetak parameter "message" yang diterima dari method action.
Hilangkan tanda (!-- dan --) jika kopas.
View "say" tersimpan di "views/site/say.php". Ketika method "render()" di panggil action, methos tersebut akan terlihat file PHP sebagai "views/Controller/ViewName.php".
Perhatikan kode di atas, parameter "message" adalah HTML-encode (http://www.yiiframework.com/doc-2.0/yii-helpers-basehtml.html#encode()-detail) sebelemu ditampilkan.
Secara natural, kamu boleh mengambil beberapa konten di view "say". Konten dapat berupa tag HTML, text, dan statemen PHP. Faktanya, view "say" baru mengeksekusi script PHP yang dieksekusi oleh method render(). Konten yang ditampilkan view akan dikembalikan ke aplikasi sebagai hasil respon. Aplikasi akan menampilkan output ke end user.
Hilangkan tanda (!-- dan --) jika kopas.
View "say" tersimpan di "views/site/say.php". Ketika method "render()" di panggil action, methos tersebut akan terlihat file PHP sebagai "views/Controller/ViewName.php".
Perhatikan kode di atas, parameter "message" adalah HTML-encode (http://www.yiiframework.com/doc-2.0/yii-helpers-basehtml.html#encode()-detail) sebelemu ditampilkan.
Secara natural, kamu boleh mengambil beberapa konten di view "say". Konten dapat berupa tag HTML, text, dan statemen PHP. Faktanya, view "say" baru mengeksekusi script PHP yang dieksekusi oleh method render(). Konten yang ditampilkan view akan dikembalikan ke aplikasi sebagai hasil respon. Aplikasi akan menampilkan output ke end user.
Hasil percobaan
Setelah membuat action dan view, kamu boleh mengakses page baru dengan url :
http://hostname/index.php?r=site/say&message=Hello+World
Url tersebut menampilkan hasil "Hello world" diahalaman. Halaman bagian header dan footer sebagai halaman aplikasi lain.
Jika kamu mengabaikan parameter "message" di URL, kamu akan melihat halaman hanya menampilkan "Hello". Ini karena "message" yang dilewatkan dengan parameter ke method "actionSay()", dan jika itu diabaikan, value default "Hello" akan digunakan.
info : Halaman baru pada header dan footer sama karena method render() akan otomatis menanamkan hasil view "say" di "layout" (http://www.yiiframework.com/doc-2.0/guide-structure-views.html#layouts) yang ada pada "view/layouts/main.php"
http://hostname/index.php?r=site/say&message=Hello+World
Url tersebut menampilkan hasil "Hello world" diahalaman. Halaman bagian header dan footer sebagai halaman aplikasi lain.
Jika kamu mengabaikan parameter "message" di URL, kamu akan melihat halaman hanya menampilkan "Hello". Ini karena "message" yang dilewatkan dengan parameter ke method "actionSay()", dan jika itu diabaikan, value default "Hello" akan digunakan.
info : Halaman baru pada header dan footer sama karena method render() akan otomatis menanamkan hasil view "say" di "layout" (http://www.yiiframework.com/doc-2.0/guide-structure-views.html#layouts) yang ada pada "view/layouts/main.php"
Itulah materi kita hari ini. Selamat belajar Yii guys. Keep it simple..:D