Skip to content

portege/Panada

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Panada
Light and simple PHP 5 base Framework.
Version 0.1
Juni 2010
Copyright (C) 2010  Iskandar Soesman (iskandarsoesman at gmaildotcom)
License: http://www.opensource.org/licenses/bsd-license.php

PANDUAN INSTALLASI DAN PENGGUNAAN
=================================

Download source file di:
http://github.com/k4ndar/Panada

Exctract file dan copy-kan ke dalam webserver.

Konfigurasi
-----------

File konfigurasi terletak di:
application/config.php

Isikan lokasi url applikasi pada parameter base_url,
Misalnya http://localhost/panada/index.php/ atau http://www.mysite.com/index.php/

Jika tidak ingin menampilkan 'index.php', tambahkan file .htaccess di root applikasi yang isinya:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]


Lengkapi semua parameter untuk database. Username, host, password, dan nama database.


Controller
----------

Untuk membuat controller buat sebuah file baru di dalam folder application/controller/
dan beri nama sesuai dengan yang diinginkan, misalnya home.php.

Buat sebuah class baru di dalam file ini di mana class tersebut menjadi child
dari class Panada, berikut adalah contohnya:

class controller_home extends Panada {
    
    function __construct(){
        
        parent::__construct();
    }
    
    function index(){
        
        echo 'Ini adalah controller home.';
    }
}

Yang harus diperhatikan adalah prefix nama class menunjukan lokasi folder class
tersebut. Hal ini juga berlaku pada class untuk library, maka prefix-nya adalah "library_"
dan class untuk model dengan prefix "model_"

Sebuah controller setidak-tidaknya harus memiliki method __construct dan index. Jika controller
ini dikases tanpa argumen apapun, maka method yang akan diakses adalah index.

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

class controller_home extends Panada {
    
    function __construct(){
        
        parent::__construct();
        
        // Load model
        $this->users = new model_users();
        // Load library
        $this->session = new library_session();
    }
    
    function index(){
        
        print_r( $this->users->users() );
    }
}


Model
-----

Buat file baru dan letakan di dalam folder application/model/, misalnya users.php.
Buat class users di dalam file ini dengan diawali prefix "model_", contohnya:

class model_users {
    
    function __construct(){
        
    }
}

Sebuah class model setidaknya harus memiliki method __construct yang bertugas me-load library
atau class lainnya yang nantinya akan dibutuhkan.

Load Library di dalam Model

Yang paling sering dilakukan adalah me-load library database di dalam sebuah class model. Untuk
melakukan ini berikut adalah contohnya:

class model_users {
    
    function __construct(){
        
        $this->db = new library_db();
    }
}

berikutnya, properti "$this->db" bisa digunakan di semua method yang ada di dalam class
tersebut. Berikut adalah contoh untuk mendapatkan 5 record dari database:

class model_users {
    
    function __construct(){
        
        $this->db = new library_db();
    }
    
    function users(){
        
        $result = $this->db->results("SELECT * FROM table_name ORDER BY id LIMIT 5");
    }
}

NOTE: Selain dengan cara ini, ada dua cara lainnya untuk me-load class baik itu library
ataupun model:

1.  Defenisikan class yang akan diload secara otomatis pada parameter auto_loader yang ada di dalam file
    config.php, contohnya adalah:
    
    $CONFIG['auto_loader'] = array('library_db', 'model_users');
    
    Library ataupun model bisa sekaligus dideklarasikan secara bersamaan.
    
2.  Sebuah class juga bisa dideklarasikan pada method constructor dari class controller. Misalnya
    me-load library db di dalam controller home:
    
    class controller_home extends Panada {
    
        function __construct(){
            
            parent::__construct();
            
            $this->db = new library_db();
            $this->users = new model_users();
        }
        
        function index(){
            
            echo 'Ini adalah controller home.';
        }
    }
    
Apabila sebuah class suda dideklarasikan, baik itu pada auto_loader
atau di dalam model ataupun di dalam controller, maka tidak perlu lagi dideklarasikan pada class lainnya.
instance dari class tersebut secara otomatis sudah bisa langsung digunakan pada class lain.


Database
--------

== Simple query ==


- Single Record -
-----------------

Untuk mendapatkan sebuah record, berikut contoh query-nya:

$data = $this->db->row("SELECT * FROM table_name WHERE id = 1");

Output dari fungsi ini adalah object, sehingga untk memanggil value record dengan cara:

echo $data->field_1;

Untuk mendapatkan tipe data array tambahkan parameter 'array' setelah argumen query:

$data = $this->db->row("SELECT * FROM table_name WHERE id = 1", 'array');

dan untuk mendapatkan isi record-nya:

echo $data['field_1'];


- Multiple Records -
--------------------

Untuk mendapatkan multiple record cara query-nya adalah:

$data = $this->db->results("SELECT * FROM table_name");

foreach ($data as $data) {
    
    echo $data->field_1;
    echo $data->field_2;
}

Atau dengan tipe data array:

$data = $this->db->results("SELECT * FROM table_name", 'array');

foreach ($data as $data) {
    
    echo $data['field_1'];
    echo $data['field_2'];
}


- Insert Data -
---------------

Berikut adalah contoh untuk melakukan insert:

$this->db->query("INSERT INTO table_name (field_1, field_2) VALUES ('budi', 'budi@budi.com')");


- Single Variable -

Untuk mendapatkan single variable/field, bisa dilakukan dengan cara berikut:

$data = $this->db->get_var("SELECT COUNT(*) FROM table_name");
echo $data;


== Faster Query ==

Selain cara di atas, modifikasi database juga bisa dilakukan dengan cara yang lebih cepat.

Untuk mendapatkan single record dengan cara:

$data = $this->db->get_row('table_name', array('id' => 1, 'email' => 'kandar'), array('id', 'email') );
echo $data->email;

Untuk mendapatkan multiple record dengan cara:

$data = $this->db->get_results('table_name', array('id' => 1, 'email' => 'budi@budi.com'), array('field_1', 'field_2'));
foreach ($data as $data) {
    
    echo $data->field_1;
    echo $data->field_2;
}

Untuk menambahkan data baru dengan cara:

$query = $this->db->insert('table_name', array('name' => 'jhon', 'email' => 'jhon@smith.com'));

Untuk meng-update record dengan cara:

$query = $this->db->update('table_name', array('name' => 'jhon gmail', 'email' => 'jhon@gmail.com'), array('id' => 6));

Untuk menghapus record dengan cara:

$query = $this->db->delete('table_name', array('id' => '6'));



KONTRIBUSI
==========

Anda bisa melakukan banyak hal untuk berkontribusi, diantaranya:

*   Tester Contributor
    Install dan test Panada pada komputer Anda dan informasikan bug ataupun apa saja yang Anda alami
    ketika menggunakan applikasi ini. Kirimkan info Anda ke k4ndar at yahoodotcom (akan lebih bagus jika dilengkapi screenshoot).
    
*   Petch Contributor
    Ingin memperbaiki bug yang Anda temukan? atau memperbaiki algoritma sehingga membuat Panada
    menjadi lebih baik? Fork source code Panada di http://github.com/k4ndar/Panada
    
*   Library Contributor
    Cara yang sama juga bisa Anda gunakan untuk men-submit library buatan Anda.
    
*   Other Contributor
    Apapun bisa Anda melakukan apapun untuk menjadikan Panada lebih baik dengan cara Anda sendiri.
    Selamat menikmati Panada!

About

Panada PHP Framework: A very simple PHP 5 base Framework

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 100.0%