Panada Framework 1.0.0 Documentation

Controller

Dalam terminologi MVC, controller adalah file yang menghubungkan request dari view ke model. Di dalam controller ini pula dilakukan pengolahan logic sebelum dikirimkan ke file view untuk ditampilkan ke user.

Mengakses Controller

Controller di Panada adalah sebuah class yang dalam mengaksesnya menggunakan path url tertentu. Nama path url mewakili nama controller. Sebagai contoh, jika Anda akses alamat:

http://www.mysite.com/index.php/welcome

maka yang menjadi controller-nya adalah welcome. Atau:

http://www.mysite.com/home

maka yang menjadi controller-nya adalah home.

Default Controller

Jika pada alamat url tidak ditambahkan argumen nama controller, maka Panada akan mengakses controller default yang bernama home.

http://www.mysite.com/

Hasilnya akan sama dengan:

http://www.mysite.com/index.php/home

Atau jika mod_rewrite telah diaktifkan (dengan setting .htaccess file yang benar):

http://www.mysite.com/home

Untuk merubah nama default controller dari home menjadi controller lainnya, Anda perlu merubahnya di halaman app/config/main.php pada bagian defaultController.

Perubahan nama default controller ini juga akan berlaku terhadap default controller sub-controller dan module.

Membuat Controller

Untuk membuat controller tambahkan sebuah file baru di dalam folder app/Controllers/ dan beri nama sesuai dengan yang diinginkan, misalnya Home.php.

Buat sebuah class baru di dalam file ini di mana class tersebut menjadi subclass inherits dari class Resources\Controllers, berikut adalah contohnya:

Yang harus diperhatikan adalah namespace nama class. Di mana namespace ini menunjukan lokasi folder class tersebut. Untuk controller, namespace-nya adalah "Controllers". Hal yang sama juga berlaku pada class untuk library, dengan namespace "Libraries" dan class untuk model dengan namespace "Models"

Controller Method

Sebuah controller setidak-tidaknya harus menggunakan namespace Resources yang akan digunakan untuk melakukan extend terhadap class Controllers. Jika controller ini dikases tanpa argumen apapun, maka method yang akan diakses adalah index.

Jika aplikasi diakses dengan alamat:

http://www.mysite.com/home

Hasilnya akan sama jika diakses dengan alamat:

http://www.mysite.com/home/index

Untuk mengakses method di dalam class controller, tambahkan argumen "namaMethod" setelah nama controllor pada alamat url.

http://www.mysite.com/home/namaMethod

Method Parameter

Anda bisa mendapatkan nilai parameter untuk method dengan menambahkan argumen tambahan setelah nama method pada alamat url.

http://www.mysite.com/home/user/budi/jakarta

Maka untuk mendapatkan nilai budi dan jakarta di dalam method user, berikut adalah contohnya:

Load Component

Untuk me-load library ataupun model di dalam controller, berikut adalah contohnya:

Alias Controller

Alias controller adalah sebuah controller di mana dalam mengakesnya tidak perlu disebutkan secara eksplisit pada alamat URL.

Sebagai gambaran, sering kita jumpai sebuah website memberikan fasilitas dinamik/personal url bagi usernya, misalnya http://www.facebook.com/WordPress atau http://twitter.com/mongodb. Fasilitas ini akan memudahkan user untuk melakukan sharing halaman profilenya ke orang lain karena mudah untuk diingat.

Feature yang sama juga digunakan pada aplikasi pemendek URL seperti bit.ly.

Untuk membuat fasilitas ini Panada menyediakan feature Alias Controller yang konfigurasinya terletak di dalam file app/config/main.php.

Key class menunjukan nama controller yang akan Anda gunakan, dan key method adalah nama method pada controller tersebut.

Kini, jika url yang diakses adalah:

http://www.mysite.com/mandriva

Maka nilai mandriva akan dikirimkan ke method index yang ada di dalam controller user.

Setelah mendapatkan nilai argumen, maka Anda bisa memanfaatkannya untuk melakukan pengecekan pada database misalnya.

Yang perlu diperhatikan adalah, jika sebelumnya sudah ada controller dengan nama yang sama dengan argumen yang dikirimkan, maka yang akan dieksekusi adalah controller dan argumen tersebut akan diabaikan.

Alias Method

Cara kerja Alias Method mirip dengan Alias Controller bedanya, fasilitas ini berlaku pada level method controller.

Sebagai contoh, jika Anda memiliki sebuah controller bernama news dan di dalamnya memiliki sebuah method bernama read, maka jika ingin mengakses artikel dengan id 10 maka urlnya menjadi:

http://www.mysite.com/news/read/10

Dengan Alias Method, url tersebut bisa dipersingkat menjadi:

http://www.mysite.com/news/10

Cara kerjanya adalah, semua argumen request yang ada setelah nama controller akan diteruskan ke method alias.

Untuk menjalankan feature ini, yang perlu dilakukan adalah mendefinisikan nama method yang menjadi method alias di dalam file config/main.php. Secara default, nama dari method alias ini adalah alias:

Langkah selanjutnya adalah membuat sebuah method dengan nama alias maka controllernya menjadi:

Alias method bisa diimplementasikan pada controller utama, sub-controller ataupun controller yang ada di dalam sebuah module.

Sama seperti alias controller, jika sebelumnya sudah ada method dengan nama yang sama dengan argumen yang dikirimkan, maka yang akan dieksekusi adalah method tersebut.

Sub Controller

Anda bisa menambahkan sebuah folder di dalam folder controller app/Controllers/ sesuai dengan kebutuhan. Sub-controller ini nantinya juga akan bisa diakses melalui alamat url seperti berikut:

http://mysite.com/FolderName/ControllerName/MethodNmae

Yang perlu Anda perhatikan adalah nama namespace yang harus disesuaikan dengan nama folder. Misalnya Anda membuat folder dengan nama Blog dan class Posts, maka contoh kodenya adalah:

Anda juga bisa memanggil sebuah controller lain dari dalam sebuah controller dengan mengacu kepada namespace yang digunakan.

Berikut contoh cara penggunaannya. Pertama buat sebuah controller yang akan menjadi sub controller:

Berikutnya buat sebuah controller lainnya yang akan digunakan untuk memanggil controller di atas:

Diskusi