Perkenalan PHP Framework: Panada

GRATIS!!! Materi Video Tutorial Web Bot Development Otomatisasi Pekerjaan Menggunakan Browser, Silahkan klik

Download Video Tutorial Web Bot Development

Panada adalah sebuah MVC PHP Framework yang membantu para developer PHP untuk mempermudah dalam pembuatan sebuah aplikasi web. Berbagai macam librari telah tersedia dan siap digunakan untuk mempercepat proses penyelesaian pekerjaan.

DomaiNesia

Berdasarkan pengujian, kinerja Panada cukup cepat bila dibandingkan dengan beberapa framework yang telah ada sebelumnya. Hal ini dikarenakan penggunaan alur logic yang sederhanan dan simpel pada system utamanya (core system).

Untuk instalasi, Panada membutuhkan setidaknya PHP versi 5.2 ke atas. Framework ini memanfaatkan feature-feature yang ada pada PHP 5 seperti autoload dan filter function.

Feature-feature yang ada pada Framework buatan lokal ini diantaranya ringan, sederhana, suport multisite, natural dll. Secara detail bisa dibaca di http://panadaframework.com/.

Instalasi
Untuk mendapatkan source code Panada versi terbaru, silahkan download di http://panadaframework.com/. Dilanjutkan dengan membuat sebuah folder baru di root folder webserver Anda dengan nama mysite. Silahkan ekstrak dan simpan source code Panada pada folder ini. Kemudian buka browser dan ketikan alamat: http://localhost/mysite. Jika berhasil, maka akan tampil pesan "This is hello world body!" pada halaman tersebut.

Hello World!
Penggunaan Panada cukup mudah sama seperti Anda menggunakan class pada PHP 5. Pertama-tama buat sebuah class, misalnya class "hello" di mana class ini menjadi child dari class Panada. Berikut contohnya:

<?php

class Controller_hello extends Panada {
public function __construct(){
parent::__construct();
}
}

Simpan class ini dengan nama hello.php dan letakkan pada folder application/controller. Buat sebuah method pada class ini dan berikan nama "index". Tampilkan string di dalam method ini dengan konstruksi echo 'hello world!'; Berikut contohnya:

<?php
class Controller_hello extends Panada {
public function __construct(){
parent::__construct();
}

public function index(){
echo 'Hello world!';
}
}

Buka browser dan ketikkan alamat "http://localhost/mysite/index.php/hello". Jika tidak ada maslah, maka akan muncul pesan "hello world!" pada halaman browser. Untuk penjelasan lebih rinci tentang cara pembuatan Contrloller, silahkan lihat pada halaman dokumentasi Panada tentang controller di http://panadaframework.com/documentation/references/controller.html.

Pada alamat yang barusan Anda masukan, masih terdapat bagian "index.php". Untuk menghilangkannya, Anda harus mengaktifkan file .htaccess dengan cara merubah nama file "file.htaccess" menjadi ".htaccess". File ini ada pada source code yang Anda download. Penjelasan lebih lengkap mengenai konfigurasi webserver silahkan lihat halaman http://panadaframework.com/documentation/config.html#webserver.

Tutorial Login-logout

Sampai pada tahap ini Anda sudah berhasil menggunakan Panada secara sederhana. Tahap berikutnya, kita akan coba membuat fungsi login-logout menggunakan database. Fungsi ini sangat umum digunakan pada aplikasi berbasis web.

Langkah pertama, buat sebuah controller baru dengan nama accounts. Pada controller ini kita memerlukan dua librari bantuan yaitu, database dan session. Librari ini telah disediakan oleh Panada, untuk itu kita akan me-load dua librari ini di dalam controller accounts. Kita juga membutuhkan dua method, yaitu "login" dan "logout". Pada method login, kita akan buat sebuh form html yang nantinya akan kita simpan pada folder application/view. Berikut adalah contoh class-nya:

<?php

class Controller_accounts extends Panada {

public function __construct(){

parent::__construct();

//Load librari session dan db
$this->db = new Library_db();
$thsi->session = new Library_session();
}

public function index(){

// Lakukan kondisi pengecekan, jika user belum login redirect ke halaman login.
if ( ! $this->session->get('name') )
$this->redirect('accounts/login');

// Inisialisasi variable username yang akan dikirim ke file application/view/logedin_page.php
$views['name'] = $this->session->get('name');

$this->view('logedin_page', $views);
}

public function login(){

$views['error'] = null;

if ( $_POST ) {

$data['username'] = $_POST['username'];
$data['password'] = md5($_POST['password']);

// Cek pada tabel user, apakah username dan password yang diinput sudah benar.
if ( $user = $this->db->get_row('users', $data) ) {

// Username dan password sudah benar, simpan nilai name ke dalam session.
$this->session->set('name', $user->name);

// Redirect ke halaman utama.
$this->redirect('accounts');
}
else {

$views['error'] = 'Username atau password yang Anda input salah.';
}
}

// Tampilkan form login html yang ada pada file application/view/form_login.php
$this->view('form_login', $views);
}

public function logout(){

// Hapus session dan redirect ke halaman login.
$this->session->session_clear_all();
$this->redirect('accounts/login');
}
}

Langkah berikutnya adalah mebuat sebuah database MySQL dengan nama "panada_tutorial". Kemudian dump data berikut ke dalam database tersebut:

CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`password` varchar(32) NOT NULL,
`name` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM? DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

INSERT INTO `users` (`id`, `username`, `password`, `name`) VALUES
(1, 'user', 'ee11cbb19052e40b07aac0ca060c23ee', 'Budi');

Karena aplikasi yang akan dibuat membutuhkan koneksi ke database, maka kita perlu menentukan parameter-parameter yang dibutuhkan yaitu host, user dan password. Untuk melengkapi parameter silahkan edit file application/config.php dan kemudian edit variable berikut:

$CONFIG['db']['default']['host'] = ISIKAN_HOST_MYSQL;
$CONFIG['db']['default']['user'] = ISIKAN_USER_MYSQL;
$CONFIG['db']['default']['password'] = ISIKAN_PASSWORD_MYSQL;
$CONFIG['db']['default']['database'] = 'panada_tutorial';

Silahkan lengkapi nilai variable-variable di atas dengan konfigurasi server database Anda.

Anda juga harus melengkapi bagian $CONFIG['base_url'], misalnya dengan:

$CONFIG['base_url'] = 'http://' .$_SERVER['SERVER_NAME'].'/mysite/';

Bagian ini dibutuhkan untuk menentukan path url aplikasi.

Tahapan selanjutnya adalah membuat file-file untuk view. Dari class accounts di atas, ada dua file view yang harus dibuat, yaitu logedin_page.php dan form_login.php. Berikut adalah isi masing-masing file tersebut:

logedin_page.php

<html>
<head>
<title>Welcome</title>
</head>
<body>
<p>Selamat datang <?php echo $name; ?> <a href="accounts/logout">Logout</a></p>
</body>
</html>

form_login.php

<html>
<head>
<title>Login Page</title>
</head>
<body>
<form action="" method="post">
<p>Username: <input type="text" name="username" /></p>
<p>Password: <input type="password" name="password" /></p>
<input type="submit" name="submit" value="Login" /></p>
</form>
<?php echo $error;?>
</body>
</html>

Sekarang akses alamat http://localhost/mysite/index.php/accounts pada browser. Jika tidak ada masalah Anda akan diredirect ke http://localhost/mysite/index.php/accounts/login.

Sekarang isikan "user" pada isian username dan "user" pada bagian password, lalu tekan "login". Jika semuanya benar, Anda akan muncul pesan "Selamat datang Budi" pada browser. Klik logout untuk melakukan logout.
Silahkan download scriptnya di sini http://www.ilmuwebsite.com/donlot/sourcecode.tar.gz

Pada tutorial ini Anda sudah berhasil membuat controller, membuat file untuk view dan me-load librari menggunakan Panada framework. Untuk mempelajari lebih lanjut Anda bisa membaca dokumentsinya di http://panadaframework.com/documentation/.

Karena ini adalah project open source, Anda juga diundang untuk berpartisipasi secara aktif untuk berkontribusi. Silahkan forked projectnya di http://github.com/k4ndar/Panada. Atau jika ada saran atau masukan silahkan tulis komentar Anda. Bisa juga dikirim ke k4ndar [at] yahoo.com atau di milis phpug [at] yahoogroups.com. Setiap kontribusi yang Anda berikan pasti akan menjadikan Panada lebih baik, terima kasih dan selamat mencoba.

Artikel Terkait :