Panada Framework 0.3.1 Documentation

Module

Module adalah sebuah sub-aplikasi yang memiliki kompenen lengkap seperti layaknya aplikasi utama yang terdiri dari Model, View, Controller dan Library. Yang membedakannya adalah sebuah module harus digabungkan ke dalam aplikasi utama dan tidak dapat berdiri sendiri.

Resource sebuah module bisa langsung diakses dari dalam contorller utama. Module ini akan memberikan output resource melalui interface controller module. Resource sebuah module juga dimungkinkan untuk diakses melalui URL routing. Sebuah module juga dapat mengakses resource dari module lain.

Herarki interaksi dari sebuah controller utama ke dalam controller module, ataupun dari sebuah controller module kepada controller module lainnya sering juga disebut Hierarchical Model View Controller(HMVC). Lebih jauh mengenai ini silahkan lihat Presentation Abstraction Control (PAC).

Membuat Module

Buat sebuah folder dan berinama sesuai dengan nama module yang ingin dibuat. Letakkan folder ini di dalam direktori:

panada/module/nama_module

Sebuah module setidaknya harus terdiri dari:

Namun demikian sebaiknya digunakan struktur secara lengkap seperti berikut ini:

Konfigurasi Module

Konfigurasi module dilakukan di dalam file config.php yang ada di setiap masing-masing folder module.

Penjelasan:

Parameter Keterangan
allow_url_routing

Menentukan apakah sebagian atau seluruh controller di dalam module bisa diakses melalui URL atau tidak. Untuk membatasi seluruh akses controller silahkan beri nilai false.

Jika hanya beberapa controller saja yang diizinkan, silahkan daftarkan nama controller ke dalam array seperti contoh berikut:

array('home', 'login', 'logout')

Alamat URL untuk mengakses module adalah: http://website.com/nama_module/nama_controller

Secara default jika tidak ada argument nama controller yang diisikan, maka controller yang diakses adalah home.

alias_controller

Jika controller alias ingin diaktifkan silahkan defenisikan nama controller dan nama method pada bagian ini. Cara penggunaan controller alias pada module sama seperti Alias Controller di aplikasi utama.

Alias controller pada module alamat URL-nya akan seperti: http://website.com/module_name/dynamic_arguments

Controller Module

Membuat sebuah controller di dalam module sama seperti membuat controller pada aplikasi utama. Yang membedakannya adalah nama class diawali dengan nama module.

Jika misalnya Anda memiliki module dengan nama user dan sebuah controller home, maka nama classnya adalah User_controller_home. Contoh lainnya jika controller yang akan dibuat bernama login maka nama classnya menjadi User_controller_login.

Controller harus di extend ke class Panada_module seperti contoh berikut:

Penggunaan prefix Namamodule_ juga berlaku untuk memanggil komponent library atau model yang ada di dalam module. Sebagaimana yang ada pada contoh di atas.

Contoh memanggil sebuah model:

$this->dummy = new User_model_dummy;

Contoh memanggil sebuah library:

$this->test = new User_library_test;

Untuk memanggil library yang berada di aplikasi utama cara pemanggilananya tidak berubah:

$this->request = new Library_request;

Dengan pola seperti ini, Anda juga bisa langsung memanggil library atau model yang ada pada module lain.

Contoh memanggil sebuah model dari module lain:

$this->dummy = new Other_model_dummy;

Contoh memanggil sebuah library dari module lain:

$this->test = new Other_library_test;

Alias Method juga tetap bisa diimplementasikan pada controller yang berada di dalam module. Nama method alias yang ada di dalam controller module mengikuti nama yang didefenisikan pada konfigurasi aplikasi utama.

View Module

Pemanggilan file view di dalam controller module tidak ada perbedaan dengan pemanggilan view pada aplikasi uatama.

Model Module

Sama seperti controller, pembuatan nama class untuk sebuah model di dalam module harus diawali dengen prefix Namamodule_model kemudian diikuti dengan nama model.

Library Module

Demikian juga hal yang sama berlaku pada nama class untuk library. Perefix nama classnya adalah Namamodule_library.

Penggunaan Module

Pemanggilan sebuah module bisa dilakukan dengan tiga cara yaitu melalui controller utama, controller module lain dan URL.

Controller Utama

Untuk memanggil sebuah module dari dalam controller aplikasi utama, caranya adalah dengan menggunakan bantuan class Library_module.

Kitika menginisialisasi class Library_module harus diberikan nama module sebagai nilai argument.

$this->nama_module = new Library_module('nama_module');

Secara default controller module yang akan diakses adalah home. Jika ingin mengakses controller lain gunakan cara berikut:

$this->nama_module = new Library_module( array('name' => 'nama_module', 'controller' => 'nama_controller' ) );

Misalnya module user ingin dipanggil dari controlloler utama home seperti contoh berikut:

Controller Module

Cara yang sama jika kita ingin memanggil sebuah module dari dalam controller module lain.

URL

Jika pada konfigurasi module seluruh atau sebagian controller diizinkan untuk diakses secara langsung melalui URL, maka alamat aksesnya adalah:

http://website.com/index.php/nama_module/nama_controller/nama_method/argument

Atau jika mode_rewite telah diaktifkan:

http://website.com/nama_module/nama_controller/nama_method/argument

Sebagai contoh jika ingin mengakses module user dengan controller home dan method index, maka URL-nya adalah:

http://website.com/user

Diskusi