Selasa, 01 September 2015

Dasar YII2 : Membuat Pesan Halo

Kemarin kita sudah tahu bagaimana memasang YII2 di laptop/pc kita. Sekarang, bagaimana kalau kita mencoba membuat sesuatu nih. Biasanya kalau kita baru belajar bahasa pemrograman, hal yang pertama kita coba adalah membuat pesan "Hello World". Meskipun menurut saya itu membosankan, tapi bagaimana kalau kita coba saja itu. Tapi pesannya jangan "Hello World" melulu, kita ganti nanti.

Oh, iya. Bagi yang mau belajar YII saya sarankan membaca dokumentasinya di http://www.yiiframework.com/doc-2.0/guide-README.html. Tentu saja dokumentasinya itu bahasa inggris. Tapi, jangan menyerah. Tinggal buka google translate dan ditranslate aja tuh, meskipun tata bahasanya nanti belepotan.

Sebelumnya, bagi yang belum tahu, YII itu... MCV. Kalau kita ingin membuat form, halaman, atau apalah itu, maka kita perlu membuat Model, Controller dan View. Dalam pandangan saya, Model itu Objek sesuatu yang akan kita buat, Controller itu penghubung antara Model dengan View, sedangkan View itu yang memuat tampilan yang akan dilihat oleh user. Mungkin penjelasan saya kurang mudah dicerna, jadi silahkan baca saja langsung apa itu MVC di sini.

Baiklah, kita akan memulai membuat karya pertama kita. Kalau biasanya kita perlu membuat model, controller dan view, di sini kita hanya perlu membuat controller dan view saja. Saking sederhananya yang akan kita buat. Enggak sulit kok, jadi silahkan perhatikan baik-baik ya.

Pertama, buka file SiteController.php. Letaknya berada di dalam folder controller pada folder projek kita.



Kemudian buat public function baru dengan nama actionPesan di dalam class SiteController. Fungsinya seperti berikut :

public function actionPesan($sms = 'Halo! Selamat Datang')
    {
        return $this->render('pesan',['sms' => $sms]);
    }




Lalu buat file pesan.php pada folder site. Folder site berada di dalam folder views.


Setelah itu, tulis script berikut pada pesan.php :

<?php
use yii\helpers\Html;
?>
<?= Html::encode($sms); ?>

Jika nama folder YII anda adalah 'basic' (seperti saya), maka silahkan buka url http://localhost/basic/web/index.php?r=site/pesan pada browser anda. Bila nama folder YII anda berbeda, silahkan disesuaikan. Nantinya, akan terlihat tampilan seperti berikut :



Pesan itu dapat diganti dengan menambahkannya pada url, coba buka http://localhost/basic/web/index.php?r=site/pesan&sms=Ini+Pesanku.+Pesanmu?



Baiklah, waktunya penjelasan...

http://localhost/basic/web/index.php?r=site/pesan&sms=Ini+Pesanku.+Pesanmu?

Mari kita telusuri url-nya.

http://localhost/basic/web/index.php adalah halaman awal.

r adalah ??? Jika kita perhatikan, bukankah fungsi yang ada pada SiteController selalu memiki script return $this->render(); Di sini, kita anggap saja r adalah untuk memanggil.

r=site/pesan adalah ??? site di sini mengacu pada SiteController dan juga folder site yang ada pada folder views. Sedangkan pesan mengacu pada actionPesan yang ada di dalam SiteController. Jadi, r=site/pesan dapat dianggap memanggil actionPesan di dalam SiteController.

sms=Ini+Pesanku.+Pesanmu? berarti sms memiliki nilai "Ini Pesanku. Pesanmu?" yang nantinya akan ditampilkan oleh pesan.php. Jika nilai sms tidak ditentukan, maka akan ditampilkan nilai default yang sudah didefinisikan pada actionPesan yaitu $sms = 'Halo! Selamat Datang. 

return $this->render('pesan',['sms' => $sms]) adalah ???
pesan di sini berarti pesan.php yang ada pada folder site, dan ['sms'=>$sms] berarti mengisi nilai sms dengan $sms.

<?= Html::encode($sms); ?> berarti menampilkan nilai dari $sms.

Sekian... dan terima kasih... Kalau ada pertanyaa, silahkan bertanya.

Tidak ada komentar:

Posting Komentar