14 Mei 2014

Menampilkan Teks Sederhana di Yii2

Melanjutkan artikel saya mengenai Yii2 yakni Instal Yii2 via Composer, kali ini kita akan belajar cara menampilkan teks sederhana di Yii2. Sebelumnya Anda harus telah menginstal minimal PHP 5.4, Apache 2.2, Composer, dan Yii2.

Alur Kerja Aplikasi
Alur kerja aplikasi ini menggambarkan secara umum proses yang terjadi antara request user dan response aplikasi. Berikut alurnya:
USER ---request---> Action ---call---> View ---render---> Content
  ^                                                          v
  |_________________________response_________________________|
 
Dari alur di atas dapat dijelaskan bahwa user melakukan request ke Action yang berada di dalam Controller kemudian dari Action tersebut memanggil View untuk menampilkan (rendering) konten tampilan (misalnya HTML) kemudian hasil proses tersebut berupa response halaman web ke user.

Berikut istilah yang sering dijumpai di Yii Framework:
  • Request berupa bentuk penulisan URL (bisa mode POST/GET) yang berisi permintaan kepada aplikasi yang kemudian router aplikasi akan meneruskan ke controller dan action mana yang sesuai.
  • Action berada di dalam controller yang berupa suatu method dengan imbuhan kata 'action' sebelum nama method tersebut. Fungsi utamanya sebagai tempat umtuk mengeksekusi kode program tertentu.
  • View adalah bagian proses di dalam framework yang fungsi utamanya menampilkan data hasil pengolahan action method yang pada umumnya berupa kode untuk tampilan atau front-end (bisa HTML,PHP,JavaScript,CSS).
  • Controller adalah bagian kerja yang berfungsi sebagai pusat logika yang menjadi penghubung utama user dengan aplikasi. Di dalam controller terdapat method biasa dan action method. Controller berupa PHP class dengan akhiran kata 'Controller dengan memiliki penamaan yang sama antara nama kelas dan nama filenya.

Langkah-Langkah Pembuatan Aplikasi Sederhana Yii2
Dengan asumsi bahwa Anda telah berhasil menginstal Yii2 seperti yang telah dijelaskan langkahnya pada artikel Instal Yii2 via Composer, maka saatnya kita belajar membuat aplikasi yang dibangun di atas salah satu PHP Framework terbaik di dunia saat ini yakni Yii Framework (Yii2).

1.Membuat File atau Kelas Controller
Buatlah sebuah file PHP untuk pembuatan class controller. Ketentuan penamaan class-nya dan nama filenya harus sama dan diakhiri dengan imbuhan kata 'Controller'. Huruf di awal kata harus memakai huruf kapital. Misalnya kita membuat controller dengan nama LatihanController. Untuk itu nama filenya harus LatihanController.php dan file ini harus diletakan di dalam folder controllers.

Kode program di dalam file ini menggunakan statemen: namespace app\controllers; untuk menandakan file ini berada pada paket yang sama dengan controller lainnya yakni berada pada namespace: app\controllers. Selanjutnya class LatihanController ini merupakan kelas yang diwariskan (subclass) dari kelas Controller yang berada di dalam namespace: yii\web sehingga perlu ada statemen: use yii\web\Controller;.

2.Membuat Action Method di dalam Controller
Di dalam class LatihanController ini perlu ada action method yang digunakan sebagai tempat eksekusi kode program yang dipanggil melalui request dari user.

Ketentuan penamaan action method ini adalah nama method harus diawali dengan imbuhan kata 'action' dan menggunakan bentuk penulisan camelCase, jadi tiap huruf per kata yang digabungkan harus kapital semua kecuali huruf paling depan yakni huruf 'a' untuk kata action. Misalnya nama action methodnya adalah actionAyo(). Kita ingin memiliki default parameter sehingga bila user tidak melampirkan nilai parameternya, method tersebut telah memiliki nilai parameter. Untuk itu action methodnya menjadi actionAyo($pesan = 'Ayo belajar Yii2').

Di dalam method actionAyo() perlu adanya pemanggilan ke view melalui method render() yang dapat dilampirkan argumen nama file view tanpa akhiran .php dan data yang dilewatkan ke dalamnya dalam bentuk array. Hasil dari method render() ini perlu dikembalikan (return) ke method actionAyo() ini.

Untuk lebih jelasnya, script lengkap untuk file LatihanController.php ini adalah:

File: LatihanController.php
<?php
namespace app\controllers;
use yii\web\Controller;

class LatihanController extends Controller
{
    public function actionAyo($pesan = 'Ayo belajar Yii2')
    {
        return $this->render('hasil', ['pesan' => $pesan]);
    }
}


Sebelum lanjut ke pembuatan view, ada sebuah hal penting yang perlu diketahui yakni mengenai ID (Identitas) dari kelas Controller dan action method-nya. ID untuk Controller dan methodnya ini dipakai untuk keperluan tertentu misalnya untuk pemanggilan controller/action melalui router dari user request dan juga pembuatan folder view mengikuti penamaan ID controller.

Ketentuan penamaan ID untuk controller dan action-nya adalah sama yakni:
  1. ID harus menggunakan huruf kecil semua.
  2. Bila penamaan Controller atau action methodnya terdapat lebih dari satu kata yang digabungkan maka pada penulisan ID-nya dipisahkan dengan karakter dash (-).
  3. Kata 'Controller' dan 'action' tidak termasuk dalam penamaan ID sehingga kedua kata tersebut dihilangkan atau tidak dianggap.
Untuk lebih jelasnya, misalkan pada Controller dan action method yang telah kita buat di atas:
  1. Kelas LatihanController, ID-nya adalah latihan.
  2. Action method actionAyo(), ID-nya adalah ayo.
Misalkan ada controller dengan nama LatihanYiiController maka ID-nya adalah latihan-yii. Jika ada action method actionAyoBelajarYii() maka ID-nya adalah ayo-belajar-yii.

3.Membuat View untuk Tampilan
Setelah file controller dibuat, selanjutnya file view perlu dibuatkan. Ketentuannya adalah tiap file view yang dipanggil dari action method di dalam controller tertentu maka file view tersebut harus berada di dalam folder dengan nama folder ID controllernya. Sehingga jika file view: hasil.php dipanggil dari action method LatihanController::actionAyo() maka file tersebut dibuat di dalam folder: latihan dan folder latihan tersebut dibuat di dalam folder views (lengkapnya: views/latihan/hasil.php).

File view digunakan sebagai tempat penulisan kode program untuk urusan tampilan. Sehingga Anda dapat menuliskan script HTML/PHP/JavaScript/CSS di dalam file view ini. Untuk menghindari XSS attack, sebaiknya konten yang ingin ditampilkan di-filter dahulu menggunakan method Html::encode() yang diambil dari namespace: yii\helpers.

Hal penting lainnya adalah sebelumnya kita melampirkan sebagai argumen suatu variabel array yakni ['pesan' => $pesan] saat pemanggilan method render() di dalam action method LatihanController::actionAyo(). Variabel array tersebut dapat diakses di dalam view hasil (hasil.php). Sehingga kita bisa menggunakan variabel $pesan langsung di dalam file view tersebut.

Berikut ini contoh sederhana isi dari file view hasil.php:

File: hasil.php
<?php
use yii\helpers\Html;

echo '<h1>'.Html::encode($pesan).'</h1>';


Untuk mencoba aplikasi menampilkan teks sederhana di Yii2 yang telah kita buat, Anda perlu memanggilnya melalui web browser dengan bentuk URL request:
http://localhost/latihan-yii2/web/index.php?r=latihan/ayo
Hasil tampilan dari proses pemanggilan ini adalah:


Contoh tampilan Yii2 (memakai default parameter)


Perhatikan ID dari controller dan action methodnya setelah parameter r di atas yakni kombinasi ID controller/action (latihan/ayo). Jika kita menggunakan parameter URL seperti di atas maka default parameter untuk method actionAyo() yakni variabel $pesan berisi teks 'Ayo belajar Yii2'. Untuk lebih jelasnya silakan lihat kode program pada file LatihanController.php di atas.

Apabila Anda ingin mengganti teks pesannya dengan kalimat lain, tinggal tambahkan parameter: pesan (sesuai nama variabel parameter pada method actionAyo()). Contohnya misalnya kita ingin menampilkan kalimat: "Selamat belajar Yii Framework" maka URL request di atas perlu diganti menjadi:
http://localhost/latihan-yii2/web/index.php?r=latihan/ayo&pesan=Selamat+belajar+Yii+Framework
Berikut hasil dari request di atas:


Contoh tampilan Yii2 (override default parameter)


Demikian artikel mengenai pembuatan aplikasi berbasis Yii2 untuk menampilkan teks sederhana. Artikel ini agak panjang yang berisi penjelasan lumayan detil untuk memudahkan kita memahami pembuatan controller dan action methodnya di dalam aplikasi berbasis Yii2. Terima kasih telah meluangkan waktu untuk membaca artikel ini dan semoga bermanfaat.

(©) 2014 husnanw.blogspot.com

1 komentar:

  1. Terimakasih Pak. Artikelnya bermanfaat. Ditunggu post berikut yang lebih rumit. :)

    BalasHapus