Posts Tagged ‘ framework php ’

Codeigniter untuk pemula, eps 2

Setelah sukses, semoga, dengan instalasi Codeigniter (CI), maka sekarang saatnya menjajal framework ini. Oh, ya, sebagai bantuan, saya aing menggunakan IDE Netbeans.

Pertama kita akan membuat controller dan view yang akan menampilkan hello world.

  1. Buat berkas hello.php di ci/application/controllers/.
    <?php
    
    //membuat kelas Hello
    class Hello extends Controller{
        //membuat fungsi default yang akan dipanggil kelas ini
        public function index(){
            //buat variabel $vars yang merupakan array
            //dimana key text berisi teks "Halo Dunia"
            $vars['text'] = "Halo Dunia";
            //controller ini meload tampilan dari file
            //hello_view.php yang terdapat dalam folder
            //ci/application/views/, yang digunakan cukup
            //nama berkas, tidak perlu ekstensi berkas.
            //dalam menampilkan file hello_view, variabel
            //$vars diikutsertakan
            $this->load->view('hello_view', $vars);
        }
    
    ?>
  2. Buat berkas hello_view.php di ci/application/views/.
    <?php
    
    //tampilkan variabel $text
    //variabel ini berasal dari $vars['text']
    //yang terdapat dalam controller hello.php
    echo $text;
    
    ?>
    
  3. Buka alamat http://localhost/ci/index.php/hello melalui browser Anda. Hasilnya kurang lebih seperti ini.
    CI Eps 2 Img 1

    Hello World

     

Lihat, kita butuh minimal dua berkas hanya untuk menampilkan hello world. Dengan metode lama, aing hanya butuh satu berkas, katakanlah, hello.php saja. Tapi dengan pattern MVC, aing bisa memisahkan antara bagaimana mengelola yang akan ditampilkan, dan bagaimana menampilkan. Terhindar dari spaghetti code dan segala macam masalah turunannya, bisa membuat template tampilan, dan pada akhirnya terasa betul memangkas waktu membuat situs/aplikasi dengan PHP. Mari kita lanjutkan.

Kedua, buat url situs/aplikasi kita lebih cantik dengan menghilangkan index.php.

  1. Buat berkas .htaccess di ci/.
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)$ /ci/index.php/$1 [L]
    
        ErrorDocument 404 /ci/index.php
    
  2. Buka berkas config.php di ci/application/config/. Rubah baris yang berisi:
    $config['index_page'] = "index.php";

    Menjadi:

    $config['index_page'] = "";
  3. Melalui browser, buka http://localhost/ci/hello.

    CI Eps 2 Img 2

    Tanpa index.php

Lebih rapi kan, url kita sekarang? Hoho.

Mengenai controller, kita dapat membuat banyak fungsi di dalamnya. Misalnya selain fungsi index, kita ingin menambahkan fungsi fungsi1 yang dapat diakses melalui http://localhost/ci/hello/fungsi1/, hello adalah nama controller, fungsi1 adalah nama fungsi.

  1. Tambahkan ini ke dalam controller hello (ci/application/controllers/hello.php).
        //membuat fungsi default yang akan dipanggil kelas ini
        public function index(){
            //bagian ini tidak diubah
        }
    
        //membuat fungsi fungsi1
        public function fungsi1($parameter1, $parameter2){
            //membuat variabel $vars dengan key param1
            //yang berisi sama dengan variabel $parameter1 yang
            //diinput oleh user
            $vars['param1'] = $parameter1;
            //membuat variabel $vars dengan key param2
            //yang isinya sama dengan nilai variabel $parameter2
            $vars['param2'] = $parameter2;
            //fungsi fungsi1 meload tampilan dari file
            //hello_fungsi1_view.php variabel $vars diikutsertakan
            //fungsi fungsi1 bisa saja meload tampilan dari file
            //hello_view.php, sama seperti fungsi index, namun kali
            //ini kita gunakan saja file yang berbeda
            $this->load->view('hello_fungsi1_view', $vars);
        }
  2. Buat berkas file hello_fungsi1_view.php di ci/application/views/.
    //tampilkan variabel $param1
    echo 'Parameter 1: ' . $param1 . '<br />';
    //tampilkan variabel $param2
    echo 'Parameter 2: ' . $param2;
    
    ?>
  3. Buka http://localhost/ci/hello/fungsi1.
    CI Eps 2 Img 3

    Fungsi1

    Ups, sepertinya ada yang keliru, Missing argument dan Undefined variable. Oh, ya, fungsi1 membutuhkan 2 parameter, parameter1 dan parameter2.

        //membuat fungsi fungsi1
        public function fungsi1($parameter1, $parameter2){
    
  4. Buka http://localhost/ci/hello/fungsi1/peremeter1/peremeter2.

    CI Eps 2 Img 4

    Fungsi1 dengan 2 Parameter

Yap, url yang benar adalah http://localhost/ci/hello/fungsi1/peremeter1/peremeter2. Sekarang kita bisa menerka, hello adalah nama controller, fungsi1 adalah nama fungsi yang terdapat dalam controller hello, peremeter1 adalah nilai parameter pertama yang dibutuhkan oleh fungsi fungsi1, peremeter2 adalah nilai parameter kedua yang dibutuhkan oleh fungsi fungsi1. Untuk menyiasati ketiadaan parameter yang diberikan oleh pengguna, kita dapat mendefinisikan nilai parameter pada controller.

  1. Ubah controller hello.php.
        //membuat fungsi fungsi1
        public function fungsi1($parameter1 = 0, $parameter2 = 'pemereter2'){
    
  2. Buka http://localhost/ci/hello/fungsi1.

    CI Eps 2 Img 5

    Fungsi1 Setelah Diperbaharui

  3. Sekarang kita coba memasukkan parameter pada url, buka http://localhost/ci/hello/fungsi1/1001.
    CI Eps 2 Img 6

    Fungsi1 dengan Nilai Parameter1

    Kita memasukkan nilai 1001 sebagai nilai parameter1, sedang parameter2 karena tidak diberi nilai, tetap menampilkan nilai default yang kita tentukan dalam controller.

Sepertinya cukup sekian episode 2 dari perkenalan kita dengan Codeigniter. Saran dan kritik sangat diharapkan. Episode depan sepertinya akan berisi tentang M dari pattern MVC, semoga.

Codeigniter untuk pemula, eps 1

Setelah sekian lama (bahasa hiperbolis) tidak posting, kali ini saya aing akan mencoba rutin menulis mengenai pengalaman menggunakan Codeigniter (untuk selanjutnya disingkat menjadi CI).

Apa itu CI? Menurut situs resminya, CI merupakan framework PHP yang didesain dengan jejak kaki yang kecil (oke, mungkin bukan terjemahan yang tepat), dan dibuat untuk pemrogram PHP yang membutuhkan alat bantu yang elegan dan sederhana untuk membangun situs yang paripurna.

CI menggunakan konsep MVC untuk membangun situs yang kita butuhkan. Dengan konsep tersebut, kita lebih mudah mengorganisasikan pembuatan situs kita. Memang berdampak pada makin banyaknya file PHP yang harus kita buat dan edit (minimal 2, Controller dan View) namun konsep MVC akan menghindarkan kita dari spaghetti code yang sering menimpa terutama pemrogram pemula seperti aing.

Cerita mengenai rocker yang berpaling menjadi pemrogram bisa didapatkan dari tulisan lain yang tersebar di jagad maya, jadi tak perlu berpanjang kalam lagi, mari kita mulai (markimul) episode pertama CI untuk pemula.

  1. Unduh CI dari situs resminya. Saat tulisan ini dibuat, versi yang tersedia dalam situs tersebut adalah versi 1.7.2, berkas yang diunduh berupa berkas terkompresi zip sebesar 2,1 mb dengan nama Codeigniter_1.7.2.zip.
  2. Ekstrak berkas tersebut dalam folder web Anda, akan didapatkan folder bernama CodeIgniter_1.7.2. Jika menggunakan Windows dan Xampp maka folder web (biasanya) ada di C:\xampp\htdocs\. Jika menggunakan keluarga linux seperti ubuntu dan Lamp maka foldernya ada di var\www\. Untuk pengguna Lamp jangan lupa untuk menyetel permission untuk other, folder access: Access files dan file access: Read-only.
  3. Ganti nama folder CodeIgniter_1.7.2 menjadi ci. Ini untuk kemudahan pengaksesan saja.
  4. Melalui browser, buka alamat http://localhost/ci. Jika tidak ada aral melintang, maka hasilnya adalah seperti di bawah ini. 

    CI Eps 1 Img 1

    Hasil Instalasi CI

  5. Mari kita buka folder ci kita untuk lebih mengenal CI. 
    CI Eps 1 Img 2

    Folder ci

     

    Dalam folder ci kita temukan folder system dan user_guide dan berkas index.php dan license.txt. Yang menangani situs kita adalah folder system dan file index.php, folder user_guide bisa dipindahkan atau dihapuskan, file license.txt perlu dibaca untuk mengetahui mengenai lisensi CI.

  6. Buka folder system
    CI Eps 1 Img 3

    Folder system

     

    Isi folder system adalah folder:

    • application
    • cache
    • codeigniter
    • database
    • fonts
    • helpers
    • language
    • libraries
    • logs
    • plugins
    • scaffolding

    dan file index.html.

  7. Folder application adalah tempat aplikasi kita bernaung, untuk selanjutnya folder yang kita buka adalah folder-folder yang ada di dalam folder application ini. 
    CI Eps 1 Img 4

    Folder application

     

    • config
    • controllers
    • errors
    • helpers
    • hooks
    • language
    • libraries
    • models
    • views

    dan file index.html. Folder yang akan sering diakses adalah controllers, view, kadang tapi jarang, models, dan lebih jarang lagi, helpers.

    Model dalam MVC menurut bibi wiki, menangani interaksi aplikasi atau situs dengan database. Nah, untuk membantu kita dalam menangani database, kita akan menggunakan doctrine. Doctrine adalah ORM (Object Relational Mapper) untuk PHP, mudahnya, ORM berguna memetakan tabel dalam database menjadi kelas (class) pada aplikasi kita. Ah, nanti kita lihat lagi mengenai doctrine ini, kita kembali pada folder CI kita.

  8. Pindahkan folder application dari dalam folder system ke folder ci, jadi dalam folder ci terdapat folder application, system, dan user_guide (jika belum dihapus). Hal ini terutama berguna sekali jika kita telah mengunggah folder situs kita pada web hosting yang kita gunakan, dengan begitu bila ada perubahan pada situs atau aplikasi web kita, cukup folder application yang kita perbaharui, bisa dengan mengunggah keseluruhan isi folder maupun berkas-berkas individual yang baru saja kita perbaharui.
  9. Buka http://localhost/ci, seharusnya tidak ada perubahan tampilan yang kita dapatkan. Sampai di sini, proses instalasi CI sudah berhasil, meski belum ada gunanya untuk kita. :ngakak

Oke, cukup sekian tulisan mengenai proses instalasi CI, semoga bermanfaat, pada tulisan selanjutnya kita akan berkenalan dengan doctrine, dan mulai membuat beberapa controller dan view, dan sedikit model, untuk membuat situs pertama kita.