Senin, 29 Februari 2016
Hello World Yii2
Buat halaman Hello World dengan Yii2
Bagian ini menjelaskan tentang bagaimana membuat sebuah halaman baru "Hello World" dalam aplikasi Yii2 Anda. Untuk membuatnya, Anda harus membuat sebuah Action dan View:- Aplikasi akan mengirimkan request halaman ke Action.
- Action merender View yang menampilkan kata "Hello" kepada penggun/user.
- Bagaimana cara membuat sebuah Action untuk merespon permintaan.
- Bagaimana cara membuat sebuah View untuk meng-compose content response.
- Bagaimana aplikasi mengirimkan permintaan kepada Action.
Membuat Action di Yii2
Untuk task "Hello", Anda akan menciptakan sebuah Action say yang membaca parameter message dari permintaan dan menampilkan pesan itu kembali ke pengguna. Jika permintaan tidak memberikan parameter message, Action akan menampilkan pesan default "Halo".Sebuah Action di deklarasikan di dalam controller. Untuk mudahnya, anda bisa mendeklarasikan Action say dalam controller yang sudah disediakan yaitu SiteController. Controller ini didefinisikan dalam file class controllers/SiteController.php. Berikut adalah contoh penambahan Action say:
<?php namespace app\controllers; use yii\web\Controller; class SiteController extends Controller { // ...existing code... public function actionSay($message = 'Hello') { return $this->render('say', ['message' => $message]); } }
Pada kode diatas, action say didefinisikan sebagai sebuah method dengan nama actionSay di dalam class SiteController. Yii menggunakan prefix action untuk membedakan method action dari method-method non-action di dalam controller class. Nama setelah prefix action adalah action ID.
Saat menamai action anda, anda harus paham bahaimana Yii memperlakukan action ID. Action ID selalu di referensi dalam bentuk lower-case. Jika sebuah action ID membutuhkan lebih dari satu kata, setiap kata akan dipisah menggunakan dash (misal save-post). Nama method Action dipetakan dari action ID dengan cara menghilangkan setiap dash, mengubah huruf pertama dari setiap kalimat menjadi huruf kapital. Contohnya, action ID save-post merujuk pada method dengan nama actionSavePost.
Method action pada contoh kita mengambil sebuah parametr yaitu $message, dimana nilai defaultnya adalah "Hello" (seperti halnya ketika anda mengatur nilai default pada argumen fungsi PHP). Saat aplikasi menerima request dan menentukan bahwa action saybertanggung jawab untuk mengolah request tersebut, aplikasi akan mem-populasi parameter ini dengan parameter yang bernama sama yang ditemukan dalam request. Dengan kata lain, jika dalam request terdapat parameter message dengan nilai "Foo", variable $message didalam action akan bernilai "Foo".
Didalam method action, fungsi render() dipanggil untuk me-render view yg bernama say. Parameter message juga diteruskan ke view sehingga dapat digunakan oleh view. Hasil render di return oleh action method. Hasil tersebut akan diterima oleh aplikasi dan kemudian ditampilkan kepada user melalui browser.
Membuat View di Yii2
View adalah script yang ditulis untuk meng-generate content response. Untuk task "Hello", anda perlu membuat view bernama say yang mencetak parameter message yang diterima dari action method.<?php use yii\helpers\Html; ? <?= Html::encode($message) ?>view say harus disimpan dalam file views/site/say.php. Saat method render() dipanggil oleh action, method tersebut akan mencari file PHP dengan nama views/controllerID/viewName.php.
Perlu dicatat bahwa pada kode diatas, parameter message di HTML-encoded sebelum dicetak. Ini penting mengingat pada dasarnya parameter berasal dari pengguna, jadi sangat rawan terkena serangan cross-site scripting (XSS) dengan mencantumkan kode javascript di parameter.
View dapat terdiri dari tag-tag HTML, text biasa, bahkan script PHP. Pada dasarnya, view say adalah PHP script yang dieksekusi oleh method render(). Content yang dicetak oleh script view akan di teruskan ke aplikasi sebagai hasil response. Kemudian aplikasi akan menampilkan content tersebut ke user.
Test Hasil
Setelah membuat action dan view, anda dapat mengakses nya melalui URL:
http://localhost/index.php?r=site/say&message=Hello+World
URL tersebut akan menghasilkan halaman yang menampilkan teks "Hello World". Halaman tersebut memiliki header dan footer yang sama dengan halaman aplikasi lainnya.
Jika anda tidak menyertakan parameter message di url, Anda akan melihat tulisan "Hello" dimana string tersebut adalah nilai default dari parameter message.
Halaman tersebut memiliki header dan footer yang sama dengan halaman aplikasi lainnya karena method render() secara otomatis meng-include hasil dari view say dalam sebuah layout yg terdapat pada views/layouts/main.php.Parameter r pada URL memiliki arti tersendiri. Parameter tersebut adalah route, merupakan sebuah ID unique yang merujuk kepada sebuah action. Format route adalah controllerID/actionID. Saat aplikasi menerima sebuah request, aplikasi akan mengecek parameter ini menggunakan controllerID untuk menentukan controller class mana yang dipanggil untuk meng-handle request. Lalu, controller akan menggunakan actionID untuk menentukan action mana yang dipanggil untuk mengolah request.
Pada contoh ini, route site/say diartikan menjadi class SiteController dan action say. Hasilnya, method SiteController::actionSay() akan dipanggil untuk mengolah request.
Seperti halnya action, controller juga mempunyai ID. Berdasarkan nama file dan class dengan aturan yg sama dengan penamaan action. Hanya saja nama controller menggunakan akhiran Controller. Misalnya, controller ID save-post merujuk ke nama class SavePostController.
<<Sebelumnya : Menjalankan Aplikasi Yii2
Kembali ke Panduan Memulai Yii2
Lanjut ke : Bekerja dengan form>>
loading...
Langganan:
Posting Komentar
(
Atom
)
Popular Posts
-
Secara default, Yii2 dibekali oleh template Bootstrap 3. Namun kita juga bisa menambahkan template lain yang lebih baik, seperti misalnya ...
-
Pada tutorial ini, saya akan membahas bagaimana cara membuat aplikasi CRUD (Create Read Update Delete) database secara otomatis dengan mengg...
-
RBAC (Role-Based Access Control) adalah konsep Access Control di Yii2 yang memisahkan hak akses user berdasarkan role atau peran. Yii2 sen...
© Asudahlah.com 2016 . Powered by Twitter Bootstrap , Blogger
Tidak ada komentar :
Posting Komentar