Showing posts with label PHP. Show all posts
Showing posts with label PHP. Show all posts

18 July 2007

CAKEPHP Chapter3: Praktek Instalasi

Untuk melakukan instalasi CakePHP, dibutuhkan sebuah server yang memuat seluruh library dan program yang dibutuhkan untuk menjalankan CakePHP. Syarat yang harus dipenuhi dalam server itu adalah:

  1. Sebuah server HTTP (seperti Apache) dengan session enabled dan mod_rewrite(mod_rewrite ini lebih disukai dalam keadaan enabled)
  2. PHP 4.3.2 atau di atasnya (5.x)
  3. Database engine(MySQL, PostgreSQL, dan yang mendukung ADODB)

Ketiga syarat tersebut biasa menjadi satu paket yang dikenal dengan AMP (Apache, MySQL, PHP). Ada beberapa pilihan paket instalasi yang mudah digunakan, seperti PHPTriad, Apache2triad, XAMPP, atau AppServ. Penulis menggunakan yang paling terakhir. Yakni AppServ 2.5.4a (Apache 2.0.54, PHP 5.0.4, MySQL 4.1.12a, dan dilengkapi phpMyAdmin 2.6.2-pl1). Silahkan anda download dari sini. Jika sukses menginstal AppServ akan didapat tampilan berikut dengan mengetikkan localhost di browser anda.


Setelah anda mendapatkan CakePHP dari chapter1 sebelumnya, sekarang letakkan file .ZIP atau bentuk file yang terkompres tersebut ke DocumentRoot/webroot anda. Kalau anda mengikuti memakai AppServ yang terinstal di C:\, maka dalam file httpd.conf apache biasanya sudah tersetting ke C:/appserv/www. Selanjutnya ada dua cara instalasi CakePHP: menggunakan development setup, yang mempersilahkan untuk melihat sekaligus beberapa aplikasi CakePHP dalam satu domain, atau dengan production setup, yang memperbolehkan satu aplikasi CakePHP dalam satu domain.

Sebelum mensetup Cake, pastikan mod_rewrite dalam httpd.conf Apache diperbolehkan. Caranya cari dalam folder instalasi Apache file conf/httpd.conf. Edit dengan notepad, hilangkan tanda pagar (#) di awal baris berikut:

 LoadModule rewrite_module modules/mod_rewrite.so

Pastikan juga agar Apache mengijinkan akses .htaccess override. Di file yang sama, cari kata-kata AllowOverride pada atau , set ke All, sehingga menjadi AllowOverride All.


Jika anda mengikuti langkah sebelumnya, untuk menginstal development setup anda tinggal mengekstrak ke folder /appserv/www. Sehingga nampak seperti berikut:

/appserv

/www

/cake

/app

/cake

/vendors

.htaccess

index.php

Ketikkan localhost/cake pada browser anda, maka anda akan mendapatkan tampilan seperti berikut:

(Perhatikan Your database configuration file is not present ! Pesan tersebut muncul karena memang sampai sejauh ini kita belum mengonfigurasi database apa yang aka digunakan. Harap sabar…)

Nantinya, jika mod_rewrite dalam keadaan enabled, maka URL anda akan berbentuk seperti ini:

www.example.com/cake/controllerName/actionName
/param1/param2
Contoh jika kita membuat Controller bernama ‘posts’, action-nya ‘edit’, dan parameter-nya adalah ‘1’ di localhost/cake, maka bentuk URL-nya: localhost/cake/posts/edit/1
(Sebenarnya ada beberapa cara lain untuk men-setup Cake ke dalam Web Server. Tapi untuk sementara kita pakai cara yang paling sering dan paling mudah digunakan dulu)

27 May 2007

CakePHP Chapter2: Konsep Dasar

Sebelum memulai instalasi dan praktek lainnya, ada baiknya kita mengenal konsep yang diterapkan dalam CakePHP. CakePHP menggunakan apa yang disebut dengan pola Model-View-Controller (MVC). MVC adalah pola desain software yang membantu secara logis memisahkan kode program anda, membuatnya lebih reusable, maintainable, dan lebih baik secara keseluruhan.


Dalam istilah Cake, Model mewakili bagian table/record database, dan hubungannya dengan table/record yang lain. Model juga dapat berisi aturan validasi data, yang biasa diterapkan ketika data model di-insert atau update.

View mewakili file tampilan Cake, yang merupakan HTML biasa dengan tambahan kode PHP.

Sedangkan Controller dalam Cake menangani permintaan dari server. Controller menangani user input (URL dan data POST), menerapkan business ligic, memakai Model untuk membaca dan menulis data dari dan ke database dan sumber lainnya, serta mengirimkan data keluaran ke file View yang sesuai.

Untuk memudahkan pengorganisasian aplikasi, Cake menggunakan MVC tidak hanya untuk mengatur bagaimawa objek berinteraksi dalam aplikasi, tapi juga bagaimana file-file disimpan, yang akan dijelaskan nanti.

Ok, sekarang kita beralih melihat susunan file/folder dalam CakePHP. Jika anda meng-unpack file yang sudah didownload dari chapter 1 sebelumnya, anda akan melihat bahwa ada beberapa folder dalam Cake. Namun ada tiga folder utama: app, cake, dan vendors. Secara lengkap berikut susunan folder dalam CakePHP:


/app
    /config          - Berisi file-file konfigurasi database, ACL, dll 
 
    /controllers     - Controllers aplikasi anda 
        /components  - Components aplikasi anda
 
    /index.php       - mempersilahkan anda untuk mengembangkan cake dengan /app
sebagai DocumentRoot
 
    /models          - Models aplikasi
 
    /plugins         - Plugins aplikasi
 
    /tmp             - digunakan untuk caches dan logs
(set folder ini menjadi writable)
 
    /vendors         - Berisi third-party libaries untuk aplikasi
 
    /views           - Views aplikasi
        /elements    - Elements, bagian dari tampilan
        /errors      - Custom error pages
        /helpers     - Helpers
        /layouts     - Application layout files
        /pages       - Static views 
 
    /webroot         - DocumentRoot untuk aplikasi
        /css
        /files
        /img
        /js
 
/cake                - Library inti Cake. Jangan edit file apapun dalam folder ini.
 
index.php           
 
/vendors             - Untuk server-wide third-party libraries.
 
VERSION.txt          - Versi Cake yang anda gunakan


CAKEPHP Chapter1: Pindah Framework Yuk...


Dunia tehnologi informasi yang saya tekuni saat ini benar-benar sedang berevolusi. Banyak yang bisa dijabarkan dari kalimat tadi. Namun saya hanya akan bercerita mengenai bahasa pemrograman yang saya pernah praktekkan sendiri.

Sejak masih SMP saya sudah belajar komputer (sekitar tahun 1998). Waktu itu komputer yang saya punyai adalah Intel 80486 dengan HD cuma 250 MB. Saya sudah belajar DOS 6.0 dan Windows 3.11. Bahasa pemrograman yang saya pelajari adalah QBASIC. Sifatnya masih main-main, penasaran.

SLTA saya harus berpisah dengan komputer saya. Saya disekolahkan oleh orang tua ke luar kota. Kadang masih bisa ngutak-atik komputer di rental pengetikan. Karena komputer di tempat rental tidak terpasang developer tools, seperti aplikasi pemrograman, saya hanya bisa sedikit ‘iseng’ bikin-bikin file BATCH atau VBScript. Pernah juga bikin virus macro pakai editor internal yang ada di Word. Kadang masih sempat main-main VB di rumah pake komputer Via 1 GHz Pro.


Setelah tiga tahun tidak ada ‘pegangan’, akhirnya saya punya komputer lagi. Kali ini Pentium 4 1,8 Ghz dengan HD 120 GB. Cukup banyak yang saya pelajari, walau belum cukup untuk dibilang ‘lengkap’. He…

Saya sempat belajar C++, GCC, Gambas, Phyton, ASP, .NET, dan PHP. Di sisi DBMS saya juga pernah pakai Access, SQL Server, MySQL, PostgreSQL. Kesemuanya hanya pada samapai tingkatan ‘rata-rata’.

Selalu ada keraguan untuk memperdalam suatu bahasa pemrograman dalam diri saya. Karena sebagus apapun kita menguasai suatu bahasa pemrograman, biasanya ada saja bahasa pengganti yang lebih matang, yang seringnya berbeda sama sekali konsepnya dengan yang sudah kita pelajari. Sejauh pengamatan saya, sepertinya hanya Java yang relatif stabil dan bisa diandalkan untuk program berskala besar sampai beberapa tahun ke depan. Saya juga sudah belajar sedikit tentang Java. Namun saya tidak ingin mengulasnya, karena sudah banyak tulisan yang membahasnya.

Kali ini saya ingin ngomong masalah framework. Kita bikin tulisan ini ringan-ringan saja. Agar anda dapat mengikutinya dengan mudah. Definisi yang saya pakai pun seringkali tidak baku dan tidak mengarah ke suatu referensi. Siap?

Baik, pertanyaan yang pertama: apa sih framework itu? Gampang aja: framework kita artikan kerangka kerja. Terus kenapa kita butuh framework? Banyak alasan yang bisa dikemukakan. Tapi kalau saya pribadi cenderung menyukai kemudahan yang ditawarkan dan sudah bosan dengan metode pengembangan yang ngasal dan gitu-gitu melulu. Nanti akan lebih saya jelaskan.

Ok, sekarang saya persempit lagi bahasannya dengan menambah satu kata: ‘PHP’. Jadilah framework PHP. PHP untuk saat ini masih bisa diandalkan untuk pengembangan aplikasi berbasis web. Keistimewaan PHP yang paling saya sukai adalah cross-platform, open-source, dan mendukung konsep OOP. Sekarang contoh nyata framework PHP tuh seperti apa?

Ada banyak contoh. Yang berbasis CMS seperti PostNuke dan Mambo. Dan yang lebih keren seperti Mojavi, WACT, PHP.MVC. Atau yang menekankan reusable code, event driven programming, dan berbasis komponen seperti Prado. Lagi-lagi semuanya punya kelebihan dan kekurangan. Dan saya kira sudah banyak referensi yang bahas CMS ataupun Prado. Sedang seperti Mojavi cs. belum banyak. Tapi saya pilih yang lebih populer dan memiliki komunitas yang aktif, yaitu CakePHP. Kalau boleh jujur, sebetulnya konsep yang ditawarkan Prado juga menarik. Namun sayang, untuk kemudahan dalam menemukan aplikasi yang mendukung untuk menulis kode komponen Prado secara auto-complete belum ada. Sedangkan CakePHP masih mengandalkan kode-kode dari PHP dan HTML.

Keistimewaan CakePHP yang saya sukai diantaranya:

  1. Scaffolding: fitur yang memungkinkan menguji aplikasi tanpa menuliskan kode CRUD (Create, Read, Update, Delete).
  2. Kompatibel dengan PHP4 dan PHP5
  3. ACL (Access Control List)
  4. Request dispatcher, yang membuat URL menjadi ‘lebih indah’
  5. Berbasis MVC (Model, View, Controller)
  6. Built in validation, dan masih banyak lagi fitur menarik lainnya.

Saya ingin memandu anda secara perlahan, sekaligus kita belajar bersama. Namun jika anda membutuhkan referensi resminya bisa anda kunjungi di http://cakephp.org.

Tapi sebelum anda memulai, anda bisa mendapatkan CakePHP dengan:

1. Download versi stable-nya di http://cakeforge.org/projects/cakephp/.

2. Versi nigthly build (stable dan ditambahkan bug fixes) dari http://cakephp.org/downloads/index/nightly.

3. Menggunakan SVN client ke https://svn.cakephp.org/repo/trunk/cake/

Happy CakePHP! :p