Anda di halaman 1dari 54

CakePHP Framework !

Strategi Cepat Pengembangan Aplikasi Web

Sunu Wibirama, S.T.


(www.idcake.web.id)

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

Terima kasih kuucapkan untuk :

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

Kata Pengantar

ii

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

Daftar Isi
Pendahuluan Bab 1. CakePHP
1.1 Pengembangan Aplikasi Berbasis Framework 1.2 Prol CakePHP 1.3 Mengapa CakePHP ? 1.3. Struktur Aplikasi 5 6 7 10

1 5

Bab 2. Instalasi dan Kebutuhan Dasar


2.1. Kebutuhan Dasar 2.2. Instalasi Paket AppServ 2.3. Instalasi Paket Pendukung 2.4. Kongurasi Server 13 14 21 22

13

Bab 3. Instalasi CakePHP


3.1. Instalasi dan Kongurasi 3.2. Routing CakePHP 3.3. Hello World ! 3.4. Scaolding 25 30 32 35

25

iii

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

iv

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

Pendahuluan
Gambaran Umum Buku
Buku ini membahas tentang penggunaan framework CakePHP sebagai dasar untuk membangun aplikasi web, terutama aplikasi berskala besar (enterprise). Bagi Anda para programmer pemula, buku ini akan memberikan wawasan kepada Anda sekaligus mengajak Anda untuk masuk ke paradigma baru pemrograman PHP, yang berbasis pada konsep OOP (Object Oriented Programming) dan MVC (model view controller). Bagi Anda para programmer profesional, buku ini akan mengajak Anda untuk bergabung dalam sebuah komunitas pengguna CakePHP, sebuah framework PHP yang saat ini menempati urutan pertama sebagai framework yang banyak digunakan oleh para pengembang aplikasi amatir dan profesional. Berbagai aplikasi web terkenal di dunia tercatat menggunakan CakePHP sebagai bagian atau keseluruhan inti aplikasi. Tercatat portal Yahoo!, TextLinkBroker.Com, Panasonic, dan masih banyak lagi aplikasi web yang dikembangkan dengan CakePHP. Selain itu, buku ini akan menjelaskan secara jelas dan bertahap tentang bagian-bagian dari CakePHP, contoh riil aplikasi yang dibangun dengan CakePHP dan beberapa tips-tips menarik seputar CakePHP.

Bab 1. CakePHP
Pada bab ini Anda akan dijelaskan tentang dasar pengembangan aplikasi web menggunakan framework berbasis PHP. Selain itu, akan dibahas pula prol, kelebihan dan kurangan serta struktur dasar aplikasi CakePHP, sehingga memberikan gambaran awal tentang framework CakePHP dan mengapa CakePHP layak dipilih untuk dasar pengembangan aplikasi web.

Bab 2. Instalasi dan Kebutuhan Dasar


Bab ini akan menjelaskan tentang kebutuhan dasar sistem yang digunakan, meliputi spesikasi minimal komputer yang diperlukan, web server dan database server, serta program pendukung lainnya. Bab ini juga akan menjelaskan secara sekilas panduan instalasi paket server yang akan digunakan, serta paket pendukung lainnya.

Bab 3. Instalasi CakePHP


Bab ini akan menjelaskan tahapan instalasi dan kongurasi CakePHP, sesuai dengan server yang digunakan. Pada bab ini, Anda akan dipandu langkah demi langkah untuk menginstalasi CakePHP, melakukan kongurasi pada database, routing aplikasi, membuat contoh aplikasi dasar dan mencoba Scaolding (tur spesial CakePHP).

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

Bab 4. Prinsip Kerja : Resep Sebelum Memasak


Bab ini akan menjelaskan secara detail arsitektur CakePHP yang menggunakan konsep MVC (model view controller). Bagian awal akan menjelaskan tentang gambaran umum konsep MVC. Berturut-turut akan dibahas masing-masing komponen MVC dan penerapannya pada framework CakePHP.

Bab 5. Mengenal Komponen dan Elemen


Bab ini akan menjelaskan kepada Anda tentang konsep penggunaan komponen dan elemen dalam mendukung pembuatan aplikasi web. Penjelasan pada bab ini disertai potongan-potongan source code untuk memperjelas pemahaman.

Bab 6. Mengenal Helper


Bab ini akan menjelaskan kepada Anda tentang konsep templating dan pembuatan tampilan (presentation logic) di framework CakePHP. Fitur templating ini didukung oleh beberapa kelas helper yang menyediakan berbagai fungsi untuk mempermudah templating.

BAB 7. Mengenal Access Control List


Bab ini akan menjelaskan kepada Anda tentang penggunaan Access Control List (ACL) pada framework CakePHP. Penjelasan disertai dengan contoh penggunaan yang memperjelas pemahaman.

Bab 8. Sanitasi dan Validasi Data


Cake PHP mendukung sanitasi dan validasi data. Bab ini akan menjelaskan secara singkat tentang metode sanitasi dan validasi data dalam sebuah aplikasi berbasis framework CakePHP dan penerapannya.

Bab 9. Mengenal Plug-in


CakePHP juga memungkinkan para developer untuk membuat aplikasi kecil yang bisa digunakan berkali-kali untuk mendukung pembuatan aplikasi yang lebih besar. Aplikasi kecil ini disebut dengan plug-in. Bab ini akan mengajak Anda untuk melongok sekilas proses pembuatan plug-in dan penerapannya.

Bab 10. Manajemen Error


CakePHP juga mendukung manajemen error, yang akan melindungi aplikasi yang Anda buat dari berbagai macam gangguan yang tidak diinginkan. Fasilitas manajemen error yang disediakan CakePHP akan mempermudah developer untuk menampilkan error dengan tampilan yang aman sesuai dengan kesalahan yang terjadi.

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

Bab 11. Mari Memasak : Resep Andalan CakePHP


Bab ini adalah bab yang paling ditunggu-tunggu. Berisi tutorial bersambung yang akan menuntun Anda langkah demi langkah untuk membuat sebuah aplikasi blog, lengkap dengan halaman administrasi dan berbagai macam modul yang akan menyertainya.

Bab 12. Tips dan Trik


Bab ini berisi sedikit tips dan trik khusus yang berkaitan dengan CakePHP, maupun seputar pemrograman PHP yang bermanfaat untuk mendukung proses pengembangan aplikasi web berbasis CakePHP.

Bab 13. Penutup


Bab ini adalah penutup dari buku ini. Didalamnya berisi harapan harapan dan gambaran aplikasi enterprise lain yang bisa dikembangkan dari aplikasi blog yang Anda buat.

Bab 14. Referensi Web


Bab ini akan membahas beberapa referensi online yang bisa menjadi rujukan untuk mempelajari CakePHP ke tingkat lanjut. Referensi disertai dengan gambar, tema utama website, dan penjelasan singkat.

Keterangan Ikon Buku


Ikon CD
Ikon ini menggambarkan bagian tertentu pada buku yang terletak pada halaman terkait, yang bisa dijumpai pada CD Pendukung

Ikon Peringatan
Ikon ini menggambarkan bagian tertentu pada buku yang terletak pada halaman terkait, yang berisi catatan penting atau tips-tips yang berguna

Ikon FAQ
Ikon ini menggambarkan bagian tertentu pada buku yang terletak pada halaman terkait, yang berisi pertanyaanpertanyaan dan solusi permasalahan yang sering dijumpai.

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

Bab 1. CakePHP
1.1 Pengembangan Aplikasi Berbasis Framework
PHP adalah sebuah bahasa pemrograman yang memungkinkan seorang developer (programmer atau system analist) membuat sebuah aplikasi berbasis web yang powerful sekaligus mampu mengampu database berskala besar. Dalam perkembangannya, seorang programmer PHP seringkali dituntut untuk menyelesaikan berbagai macam aplikasi dengan tingkat kerumitan yang cukup tinggi dalam waktu singkat. Di sisi lain, programmer juga dituntut untuk menciptakan sebuah dasar aplikasi yang bisa dikembangkan menjadi aplikasi lain dengan skala yang lebih besar dengan melibatkan banyak anggota tim. Aplikasi web berskala besar seringkali diasosiasikan dengan indikasi-indikasi sebagai berikut : Diakses oleh banyak orang (public access) Melibatkan database dengan skala record diatas 1000 Mempunyai banyak modul, seperti modul berita, modul administrasi, modul keuangan, modul pencarian tingkat lanjut, modul polling dan sebagainya Dikerjakan oleh sebuah tim pengembang dengan spesialisasi tugas Berbicara tentang aplikasi web berskala besar tentu tidak bisa dilepaskan dari pembagian peran anggota tim. Aplikasi web, terutama web berskala besar, tidak hanya membutuhkan seorang programmer saja, akan tetapi melibatkan pula seorang web desainer, system analist, database maintainer, manajer keuangan, manajer riset dan promosi dan manajer proyek yang akan mengatur jalannya pembuatan, pengembangan dan pemeliharaan aplikasi tersebut. Tingkat kerumitan dan kesamaan cara pandang inilah yang melahirkan konsep kerangka kerja (framework) dalam pengembangan aplikasi berbasis web. Framework memudahkan anggota tim untuk bekerja bersama dengan satu cara pandang, sekaligus memudahkan pembagian kerja. Pada umumnya, framework terdiri dari le-le pustaka berupa kelas-kelas PHP yang bisa digunakan dan dikolaborasikan dalam aplikasi yang sedang Anda kembangkan.

Di internet, tersedia puluhan, bahkan ratusan framework dan Content Management System (CMS). Sebut saja Mojavi, Prado, Agavi, Seagull, Code Igniter, Fusebox, PHP Nuke, Post Nuke, Mambo, Joomla, Wordpress, Blogspot, Aura, Endonesia, dan masih banyak lagi. Ada beberapa developer yang menyediakan le inti (core) framework saja, beserta manualnya, tanpa memberikan contoh-contoh aplikasi secara detail, misalnya Fusebox dan Mojavi (saat ini riset Mojavi terhenti, tapi dikembangkan menjadi framework baru, yakni Agavi). Ada juga framework yang benar-benar dibuat untuk membangun aplikasi enterprise,

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

memberikan contoh yang detail, manual yang lengkap, namun memiliki ukuran besar dan memerlukan instalasi PHP 5 supaya bisa berjalan dengan baik, misalnya Prado. Terkadang orang mengartikan framework adalah dasar dari CMS. Di sisi lain, CMS tak lain juga sebuah framework dengan bermacam modul yang datang bersamanya.

Buku ini membahas sebuah framework berbasis bahasa pemrograman PHP yang sering digunakan untuk mengembangkan aplikasi web dalam waktu singkat. Framework tersebut dikenal dengan nama CakePHP. Dalam buku ini, Anda diajak untuk memahami konsep dasar pengembangan aplikasi web berbasis framework dengan konsep pemisahan bussiness logic (logika bisnis atau logika kerja sistem) dan presentation logic (logika tampilan sistem). Konsep pemisahan logic ini sangat erat kaitannya dengan penerapan konsep OOP (Object Oriented Programming) dan MVC (model view controller) yang akan diulas pada bagian lain dari bab ini dan pada bab 4. Anda juga akan diajak untuk mengenali satu per satu bagian-bagian dari framework CakePHP dan dilengkapi dengan contoh penggunaannya dalam membangun aplikasi web. Bab 11 dari buku ini akan menyuguhkan penerapan langsung framework CakePHP untuk membuat berbagai macam aplikasi dan mengkombinasikannya menjadi satu aplikasi utuh, sebuah blog lengkap dengan modul administrasi, modul manajemen user, modul manajemen error dan modulmodul tambahan lainnya. Bab 12 dari buku ini akan menyajikan beberapa tips dan trik CakePHP yang tak lain adalah dokumentasi dari pengalaman penulis saat mengerjakan berbagai macam project dengan menggunakan CakePHP. Selain itu, bab ini juga berisi beberapa pertanyaan umum, diskusi singkat, dan berbagai inovasi yang telah dituangkan beberapa developer CakePHP yang penulis ambil dari milis CakePHP (Indonesia) dan situs CakePHP Indonesia. Sebagai penutup, buku ini juga akan memberikan daftar situs-situs CakePHP yang sangat cocok untuk dipelajari dan digunakan sebagai referensi tingkat lanjut.

1.2 Prol CakePHP


CakePHP adalah sebuah framework open source yang digunakan untuk mengembangkan aplikasi web dengan dasar kerja CRUD (Create, Read, Update, Delete). CakePHP juga menjadi salah satu framework pilihan yang memungkinkan developer untuk membuat sebuah aplikasi web dengan karakter pengembangan RAD (Rapid Application Development), yang memungkinkan untuk digunakan dan dikembangkan menjadi aplikasi lain yang lebih kompleks. CakePHP terdiri dari le-le pustaka (library), kelas-kelas, dan infrastruktur run-time yang terinspirasi oleh framework Ruby on Rails. CakePHP juga banyak digunakan oleh para programmer yang memilih untuk bekerja dengan struktur yang rapi dan padat tanpa kehilangan eksibilitas pengembangan framework.

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

Pada tahun 2005, Michal Tatarynowicz mulai menulis beberapa kelas untuk sebuah dasar aplikasi RAD dengan menggunakan bahasa pemrograman PHP. Ia menyadari bahwa beberapa kelas yang ia ciptakan sangat memungkinkan untuk dikembangkan menjadi sebuah framework yang lebih lengkap dan praktis. Akhirnya, Michal mempublikasikan hasil kerjanya di bawah lisensi MIT Amerika Serikat, menamainya dengan Cake dan menawarkan pengembangannya pada komunitas developer PHP dan saat ini proyek tersebut dikenal dengan nama CakePHP.

Gambar 1.1. Logo Resmi CakePHP

CakePHP bersifat terbuka, bebas didapatkan, dan bebas dikembangkan. Komunitas pengembang CakePHP mengajak seluruh programmer PHP untuk bergabung dalam Cake Software Foundation Inc. yang membawahi proyek pengembangan CakePHP dan aplikasi berbasis CakePHP. Informasi tentang CakePHP bisa didapatkan pada situs resmi Cake Software Foundation di website www.cakephp.org

Selain website resmi, para pengembang CakePHP juga biasa berdiskusi dengan menggunakan IRC (Internet Relay Chat). Di sini Anda bisa berjumpa dengan banyak Bakers, sebutan untuk mereka yang menjadi developer CakePHP. Forum diskusi CakePHP ini bisa dikunjungi di channel #cakephp pada server irc.freenode.com.

1.3 Mengapa CakePHP ?


Selama ini, pemahaman yang kita peroleh tentang aplikasi web berbasis PHP adalah sebuah aplikasi yang terdiri dari le-le PHP yang berisi kode-kode dan tag html yang dicampur dengan kode-kode PHP atau lebih dikenal dengan nama spaghetti code (iya lah, coba aja liat makanan spaghetti yang lebih mirip dengan bakmi campur ! ). Pengembangan aplikasi web dengan cara konvensional seperti ini tidaklah keliru, namun akan menjadi masalah besar apabila aplikasi ini membutuhkan banyak tur dan pengembangan di kemudian hari. Framework CakePHP menjadi pilihan untuk mengatasi berbagai permasalahan yang muncul dalam pengembangan aplikasi web, karena beberapa kelebihannya, antara lain :

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

Open Source
CakePHP bebas didapatkan dan dikembangkan. CakePHP mempunyai lisensi MIT. Ini adalah salah satu syarat yang baik untuk berkembangnya sebuah framework.

Riset yang terorganisir dengan baik


Pengembangan framework bukanlah pekerjaan yang selesai dalam waktu 1-2 hari. Semakin terorganisirnya pengembangan sebuah framework akan berbanding lurus dengan kualitas framework yang dihasilkan. CakePHP memenuhi syarat ini dan dikembangkan dalam riset yang terorganisir dan berkesinambungan di bawah Cake Software Foundation.

Dokumentasi yang lengkap


Framework yang baik harus mempunyai dokumentasi yang lengkap, karena sekumpulan kelas tanpa dokumentasi tak lebih dari sebongkah le yang asing dan menambah masalah developer. Untuk referensi lebih lengkap (gunakan manual dan API CakePHP), silahkan buka http://www.cakephp.org

Kompatibel dengan PHP 4 dan PHP 5


CakePHP berjalan mulus di server Apache yang menggunakan PHP 4 maupun PHP 5. Fleksibilitas dan kompatibilitas inilah yang banyak menarik minat para programmer untuk menggunakan framework CakePHP sebagai dasar untuk pengembangan aplikasi mereka.

Konsep CRUD terintegrasi


CakePHP menerapkan konsep CRUD (Create, Read, Update, Delete) terintegrasi yang membantu interaksinya dengan database dan menyederhanakan query.

Arsitektur OOP dan MVC


Kelas-kelas yang menjadi dasar dari CakePHP ditulis dengan konsep Object Oriented Programming yang memudahkan programmer untuk melakukan penambahan, pengurangan dan modikasi kelas dan fungsi yang digunakan. CakePHP menggunakan arsitektur Model, View, Controller (MVC) yang memisahkan database logic (Model), presentation logic (View) dan bussiness logic (Controller).

Fitur Scaolding
Ya, barangkali inilah tur yang jarang didapat pada framework lain. CakePHP mempunyai tur yang mampu men-generate prototipe aplikasi Anda, sebelum Anda menyusun source

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

code-nya secara lengkap. Cukup tambahkan variabel $scaffold di controller Anda, dan sim salabim ! Aplikasi web Anda sudah bisa Anda nikmati.

Manajemen akses bagi user


CakePHP memungkinkan pengaturan user dan hak aksesnya dalam aplikasi yang Anda kembangkan, dengan sarana yang lebih mudah dipahami. Fitur ini dikenal dengan nama Access Control List (ACL).

Validasi dan sanitasi data


CakePHP mempunyai kelas-kelas dasar yang membantu programmer untuk melakukan sanitasi dan validasi data pada aplikasinya.

Komponen Security, Session, dan Request Handling yang terintegrasi


CakePHP menyediakan komponen-komponen untuk menangani masalah Session, Keamanan (Security) dan Request Handling yang sudah terintegrasi dalam kelas dasar CakePHP. Developer cukup menyertakan komponen tersebut pada controller aplikasi dan memasukkan parameter-parameter untuk mendapatkan hasil yang diinginkan.

Metode templating yang simpel


Sebagaimana framework-framework yang lain, CakePHP juga mendukung metode templating yang sangat mudah digunakan untuk membantu programmer dan web disainer menciptakan tampilan aplikasi yang indah dan mudah dimodikasi. CakePHP mempunyai kelas helper yang mendukung templating HTML, Ajax, Javascript dan masih banyak lagi.

Cocok untuk segala strukutur direktori


CakePHP mempunyai sistem kongurasi yang menyediakan berbagai macam pilihan kongurasi, sesuai dengan struktur direktori pengembangan aplikasi berbasis framework CakePHP.

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

1.3. Struktur Aplikasi

Gambar 1.2. Struktur kerja CakePHP (Grahambird.co.uk)

Dari gambar di atas, cara kerja CakePHP sebagian besar sudah bisa dijelaskan. Pertama kali, user melakukan request, yang akan ditangani oleh controller. Controller memiliki banyak method (fungsi fungsi) yang akan menangani request. Controller akan mengambil data pada database melalui model. model memberikan data yang relevan kepada controller. Controller akan mengolah data dan memberikannya pada view (tampilan) yang dipilih. Tampilan inilah yang akan dilihat oleh user pada browser-nya.

10

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

Gambar 1.3. Struktur Folder CakePHP Folder /app adalah folder di mana aplikasi web akan dikembangkan. Folder ini berisi beberapa folder lainnya, antara lain :
/config : berisi le le kongurasi CakePHP, termasuk kongurasi database, debug

option, ACL cong, dan routing option.


/controllers : berisi le-le controller yang akan berperan sebagai bussiness logic dari

aplikasi.
/models : berisi le-le model yang akan berperan sebagai database logic dari aplikasi. /plugins : folder ini digunakan apabila seorang developer ingin mengembangkan

aplikasi kecil sebagai pendukung aplikasi utama. Folder ini berfungsi sebagai tempat penyimpanan aplikasi pendukung tersebut.
/tmp : digunakan untuk fungsi caching dan logging aplikasi /vendors : digunakan apabila programmer melibatkan beberapa aplikasi-aplikasi

tambahan (third-party application) yang dikembangkan oleh developer lainnya.

11

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

/views : berisi le - le view yang akan berperan sebagai presentation logic dari aplikasi

Anda. Folder ini juga memiliki beberapa sub folder yang digunakan untuk menyimpan untuk menyimpan halaman statis (folder /pages), halaman layout dasar aplikasi (folder /
layouts), tampilan tambahan yang eksibel (fodler /elements) dan sebagainya. /webroot : folder ini berfungsi sebagai DocumentRoot dari aplikasi yang Anda buat.

Server akan mengakses le index.php yang diletakkan di folder ini.

Folder /cake berisi kelas dan pustaka dasar CakePHP. Pengembang aplikasi tidak disarankan untuk mengubah le-le di folder ini. Namun untuk beberapa keperluan, para developer CakePHP biasanya melakukan beberapa modikasi dan perubahan source code pada le yang ada di folder ini.

Folder /vendors digunakan untuk menyimpan aplikasi third-party yang digunakan dalam lingkup yang lebih luas. Pemisahan antara folder /app dan folder /cake memungkinkan developer untuk memasang banyak folder /app dengan memanfaatkan satu folder /cake saja. Hal ini juga memudahkan developer untuk melakukan update framework CakePHP, cukup download versi terbaru dan timpakan ke folder /cake yang lama tanpa mengganggu folder /app.

12

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

Bab 2. Instalasi dan Kebutuhan Dasar


2.1. Kebutuhan Dasar
Dalam mengerjakan semua latihan yang ada pada buku ini, Anda membutuhkan komputer dengan spesikasi minimum sebagai berikut : Sistem Operasi Windows 98 SE atau sesudahnya. Bagi Anda yang menggunakan OS selain Windows, seperti GNU/Linux atau MacOS X, pastikan sistem operasi Anda berjalan dengan baik pada komputer Anda. Pada buku ini, Kami akan menyajikan contoh instalasi Apache, MySQL dan PHP pada dua sistem operasi yang berbeda, yakni Windows XP dan Linux Mandriva. Prosesor Intel Pentium Celeron atau AMD dengan clock / kecepatan minimal 500 MHz RAM 128 MB Kapasitas Harddisk 10 GB Resolusi Monitor 800 x 600 pixel, disarankan 1024x768 pixel CD-ROM 16x

Selain itu, Anda membutuhkan pula beberapa paket instalasi sebagai berikut : Paket installer Apache, PHP 4 atau PHP 5, dan MySQL . Ada banyak vendor yang menyediakan paket installer trio Apache, PHP dan MySQL. Kami menyediakan paket installer AppServ yang versi terbarunya bisa Anda download di http:// www.appservnetwork.com Paket instalasi CakePHP terbaru (pada saat buku ini ditulis, Cake Software Foundation me-launching versi stabil Cake 1.1.10.3825 dan versi pengembangan Cake 1.2.0.4206 dev. Anda bisa mendapatkan paket terbaru cake di situs resmi CakePHP, yakni http:// www.cakephp.org Paket instalasi phpMyAdmin (digunakan untuk memudahkan manajemen database berbasis web). Software editor teks, seperti Notepad++, Editplus, Textpad, PHP Designer, Macromedia Dreamweaver dan lain sebagainya. Manual dan API CakePHP yang terbaru (dua hal ini bukan sesuatu yang wajib dimiliki, tapi alangkah baiknya seorang developer memiliki paket source code CakePHP sekaligus buku panduannya).

13

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

Kami menyertakan beberapa paket instalasi bersama CD pada buku ini, seperti paket AppServ 2.5.4a yang berisi installer Apache 2, PHP 5 dan MySQL 4. Selain itu kami juga menyertakan le-le CakePHP, manual dan API, serta beberapa source code pendukung latihan.

2.2. Instalasi Paket AppServ


Pada bab ini, Anda akan melakukan instalasi paket Apache, PHP dan MySQL pada sistem operasi Windows XP. Bagi Anda yang menggunakan sistem operasi selain Windows XP, kami menyertakan juga contoh langkah instalasi paket Apache, PHP dan MySQL pada Linux Mandriva.

Instalasi Apache, PHP dan MySQL pada Windows XP


1. Pastikan di komputer Anda tidak ter-install paket Apache, PHP dan MySQL lainnya. 2. Klik dua kali paket installer AppServ 2.5.4a dan pastikan Anda menjumpai welcome window sebagai berikut

Gambar 2.1. Tampilan Awal Installer AppServ untuk Windows 3. Tentukan direktori tempat Anda akan meng-install paket AppServ Anda. Apabila Anda tidak yakin dengan apa yang Anda lakukan, klik tombol Next dan biarkan AppServ ter-install secara default pada direktori C:\AppServ.

14

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

Gambar 2.2. Menentukan letak direktori instalasi 4. Tentukan nama server, email administrator dan port yang akan digunakan. Secara default, Apache akan menempati port 80.

Gambar 2.3. Menentukan kongurasi Apache

5. Masukkan informasi tentang server MySQL. Biarkan AppServ mengisikan form isian secara default jika Anda tidak yakin dengan apa yang akan Anda lakukan.

Gambar 2.4. Menentukan kongurasi MySQL

15

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

6. Instalasi AppServ Anda selesai ! Kini Anda bisa langsung menjalankannya dengan mengisikan tanda ! pada checkbox Apache dan MySQL.

Gambar 2.5. Menjalankan Apache dan MySQL

7. Untuk memulai dan menghentikan Apache dan MySQL server, klik Start Menu >
AppServ > Service Control Server.

Gambar 2.6. Menjalankan AppServ dari Start Menu

Apabila instalasi Anda benar dan tidak mengalami kendala, pada layar komputer Anda akan terlihat prompt sebagai berikut :

Gambar 2.7. Server Apache Berjalan Normal

16

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

Instalasi Apache, PHP dan MySQL pada Linux Mandriva


Untuk keperluan instalasi pada sistem operasi selain Windows, kami menyarankan Anda menggunakan paket instalasi tarball (source) atau compact (deb, rpm) yang sesuai dengan distro linux Anda. Paket installer Apache bisa Anda download di http://www.apache.org. Sedangkan paket installer PHP bisa Anda dapatkan di http://www.php.net. Paket installer MySQL bisa Anda dapatkan di http://www.mysql.com . Beberapa distro linux tertentu membutuhkan library xml2 supaya installer PHP bisa berjalan dengan baik.

Pada instalasi ini, Anda akan menggunakan Apache 2.0.54, PHP 5.0.5 (atau yang lebih rendah dari versi ini) and MySQL 4.1.11. Sebelum instalasi dimulai, anggaplah bahwa dalam sistem operasi yang Anda gunakan belum terdapat instalasi AMP (Apache, MySQL, PHP) sama sekali. Jikapun sudah ada dan Anda ingin mencoba meng-upgrade dengan versi terbaru, cobalah untuk meng-uninstall versi lama yang telah Anda install. Sebelum Anda memulai instalasi, pastikan Anda mempunyai hak akses sebagai user root, atau Anda termasuk dalam group wheel (root, menjalankan dan mengoongurasi AMP.
gid=0) yang memungkinkan Anda untuk

Beberapa poin penting yang akan Anda bicarakan antara lain : 1. Mendapatkan resources Apache, PHP & MySQL 2. Meng-install MySQL 4.1.x 3. Meng-install Apache 2.x 4. Meng-install PHP 5.x 5. Memulai Apache Web Server 6. Testing PHP

1. Mendapatkan resources Apache, PHP & MySQL


Download dulu source-nya dari situs ini : Apache 2.x - http://httpd.apache.org/download.cgi PHP 5.x - http://us2.php.net/downloads.php MySQL 4.1.x - http://dev.mysql.com/downloads/mysql/4.1.html#source

2.Meng-install MySQL 4.1.x

17

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

Ekstrak dan kongurasi dahulu source MySQL. Setelah itu, Anda boleh langsung mengcompile-nya :
#tar -xzvf mysql-4.1.11.tar.gz #cd mysql-4.1.11 #./configure --prefix=/usr/local/mysql #make #make install

Setelah instalasi selesai, jangan lupa untuk mengopikan le CNF ke area kongurasi pada linux Anda (pada umumnya terletak di folder /etc) :

#cp support-files/my-medium.cnf /etc/my.cnf

Kemudian, lakukan instalasi database MySQL dan memulainya (pastikan Anda mengganti terlebih dahulu hak akses beberapa folder yang akan diakses oleh database Anda. Untuk mengetahuinya, cobalah mengecek error yang ada bila perintah di bawah tidak berjalan dengan baik). Eksekusi perintah di bawah ini pada konsole Anda :
#/usr/sbin/groupadd mysql #/usr/sbin/useradd -g mysql mysql #/usr/local/mysql/bin/mysql_install_db #chown -R root:mysql /usr/local/mysql #chown -R mysql:mysql /usr/local/mysql/data

Kemudian, langkah yang terakhir adalah mengubah kongurasi dalam le ld.so.conf dan menambahkan satu baris kongurasi dalam le tersebut :

#vi /etc/ld.so.conf

Tambahkan baris ini :


#/usr/local/mysql/lib/mysql

Untuk menjalankan MySQL, gunakan perintah berikut :

#/usr/local/mysql/bin/mysqld_safe ?user=mysql &

Untuk mengganti password MySQL, lakukan dengan perintah berikut :

#/usr/local/mysql/bin/mysqladmin -u root password <new_password>

(isikan <new_password> dengan password Anda)

18

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

3. Menginstal Apache 2.x


Ikuti dulu langkah-langkah di bawah :
#tar -xzvf httpd-2.0.54.tar.gz #cd httpd-2.0.54 #./configure --prefix=/usr/local/apache --enable-mods-shared=all #make #make install

4. Menginstal PHP 5.x


Untuk menginstal source PHP, langkah-langkahnya adalah :
#tar -xzvf php-5.0.4.tar.gz #cd php-5.0.4 #./configure prefix=/usr/local/php --with-apxs2=/usr/local/apache/ #bin/apxs --with-mysql=/usr/local/mysql #make #make install

Kopikan le php.ini ke area yang ditentukan :


#cp php.ini-dist /usr/local/lib/php.ini

Langkah selanjutnya adalah men-setup ekstensi .php dan .phtml supaya bisa di-parsing oleh PHP engine. Untuk itu, bukalah le httpd.conf dengan editor teks :
#vi /usr/local/apache/conf/httpd.conf

Pada le ini, tambahkan beberapa baris kongurasi. Carilah dimana line AddType berada dan tambahkan baris di bawah ini :
AddType application/x-httpd-php .php .phtml

Simpan kembali le httpd.conf

5. Memulai Apache Web Server


Untuk memulai Apache :
#/usr/local/apache/bin/apachectl start

Untuk me-restart Apache bila ada kongurasi yang diganti saat Apache dijalankan :
/usr/local/apache/bin/apachectl restart

6.Testing PHP
Buatlah dengan editor teks suatu le yang bernama phpinfo.php pada direktori /usr/
local/apache/htdocs/ dan masukkan kode php di bawah :

19

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

File : phpinfo.php
<?php phpinfo(); ?>

Oke ! Jalankan web browser dan jalankan http://localhost/phpinfo.php . Kalau muncul layar yang menunjukkan informasi Apache , PHP dan MySQL yang ter-install, berarti Anda sudah berhasil.

Otomatisasi Apache dan MySQL Server Saat Booting


Beberapa paket instalasi Apache, MySQL dan PHP untuk Windows sudah melakukan kongurasi secara otomatis supaya Apache dan MySQL Server dieksekusi saat komputer booting. Permasalahannya adalah, apa yang harus Anda lakukan apabila Anda menginstalasi Apache, MySQL, dan PHP pada sistem operasi Linux ? Yang harus Anda lakukan untuk melakukan otomatisasi tersebut tak lain adalah mengopikan le-le executeable MySQL dan Apache ke folder /etc/init.d, sehingga keduanya menjadi bagian dari servis-servis (daemon) yang akan aktif manakala komputer Anda dihidupkan. Berikut ini adalah langkah -langkahnya :

1. Mengaktifkan MySQL
Mulai dengan MySQL. Pertama kali, masuklah sebagai user root. Kemudian dalam direktori kerja MySQL Anda (atau direktori instalasi) masuklah ke folder MySQL dengan perintah berikut ini :
#cd /home/xxxx/mysql-4.0.16

Kemudian kopikan le mysql.server ke folder /etc/init.d sebagai berikut :


#cd support-files/mysql.server /etc/init.d/mysql

Kemudian kopikan le mysql.server ke folder /etc/init.d sebagai berikut : Selanjutnya, Anda buat beberapa link untuk aktifasi MySQL pada run level 3 (text mode) dan run level 5 (GUI mode / Graphic Mode).
#cd #ln #ln #cd #ln #ln /etc/rc3.d -s ../init.d/mysql -s ../init.d/mysql /etc/rc5.d -s ../init.d/mysql -s ../init.d/mysql S85mysql K85mysql S85mysql K85mysql

20

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

#cd ../init.d #chmod 755 mysql

2. Mengaktifkan Apache
Tetap sebagai user root, pindah ke direktori kerja dengan perintah berikut ini :
#cd /usr/local/apache/bin

Kemudian kopikan le apachectl dengan perintah sebagai berikut :


#cp apachectl /etc/init.d/httpd

Sebgaimana pada MySQL, kini saatnya membuat link aktivasi untuk run level 3 dan run level 5:
#cd #ln #ln #cd #ln #ln /etc/rc3.d -s ../init.d/httpd -s ../init.d/httpd /etc/rc5.d -s ../init.d/httpd -s ../init.d/httpd S85httpd K85httpd S85httpd K85httpd

Reboot komputer Anda dan cek kongurasi yang sudah Anda lakukan. Amati proses yang berjalan saat komputer booting. Apache (HTTPD) dan MySQL Server akan dieksekusi sebagai daemon pada saat booting.

2.3. Instalasi Paket Pendukung


Setelah Anda melakukan instalasi paket Apache, PHP dan MySQL, tentu Anda membutuhkan editor teks yang baik untuk menuliskan script-script PHP Anda. Kami menyertakan paket installer PHP Designer versi 2005 dan Notepad++ yang bisa didownload secara gratis melalui internet. Apabila Anda pengguna produk-produk Macromedia, Anda bisa menggunakan Macromedia Dreamweaver untuk melakukan pengeditan script Anda. Salah satu keuntungan menggunakan editor teks khusus untuk pemrograman PHP adalah, Anda bisa mengetahui perbedaan script PHP dan selain PHP (misalkan HTML, CSS, atau Javascript) berdasarkan warna yang diberikan oleh editor teks. Selain itu, editor teks khusus pemrograman PHP biasanya memberikan nomer-nomer baris, sehingga memudahkan programmer untuk melakukan pelacakan kesalahan. Untuk instalasi PHP Designer, Anda cukup melakukan klik dua kali pada le installer
phpdesigner_setup.exe. Selanjutnya ikuti petunjuk instalasi yang ada.

21

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

Gambar 2.8. Tampilan PHP Designer versi 2005

2.4. Kongurasi Server


Apakah CakePHP selalu berjalan mulus di setiap server Apache ? CakePHP menggunakan sistem url rewrite secara default. Pada beberapa installer Apache, developer terkadang harus mengubah kongurasi pada le httpd.conf supaya Apache server mendukung url rewrite (mod_rewrite). Selain itu, le .htaccess harus bisa ditulisi server. Penjelasan tentang hal tersebut ada pada sub bab ini.

Seringkali permasalahan instalasi membuat sebagian programmer merasa putus asa untuk menggunakan CakePHP sebagai framework pilihannya. Ada beberapa hal yang harus diperhatikan, terkait dengan permasalahan instalasi yang sering dijumpai oleh pengguna CakePHP : 1. Pastikan server Apache Anda mendukung penggunaan session dan mod_rewrite. Untuk melakukan pengecekan, buka le C:\AppServ\apache\conf
\httpd.conf dan pastikan baris berikut dieksekusi oleh Apache (tidak ada tanda

# di depannya) :
! ! ! ! ! ! LoadModule rewrite_module modules/mod_rewrite.so libexec/httpd/mod_rewrite.so AddModule mod_rewrite.c

2. Pastikan le .htaccess diperkenankan untuk di-override. Untuk mengetahuinya, pada le httpd.conf, pastikan pilihan AllowOverride diset All untuk direktori instalasi CakePHP Anda, atau DocumentRoot Anda. Gambar di bawah ini

22

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

memperlihatkan instalasi CakePHP pada server Apache, dengan permasalahan le .htaccess yang tidak di-override. Sekilas, tampaknya instalasi tidak bermasalah, namun coba bandingkan dengan gambar berikutnya. Instalasi CakePHP yang tidak bermasalah akan memunculkan logo CakePHP Power seperti ini di bagian bawah, serta layout halaman yang tampak indah.

Instalasi CakePHP bermasalah tidak akan menampilkan logo CakePHP Power dan layout halaman polos (putih), dengan tulisan hitam di atasnya.

Gambar 2.9. Instalasi CakePHP bermasalah

Gambar 2.10. Instalasi CakePHP berhasil

3.

Untuk memastikan bahwa instalasi CakePHP Anda mengandung le .htaccess, pastikan Anda mendapatkan le instalasi CakePHP dalam bentuk .zip atau .tar.gz dari repository CakePHP. Seringkali, saat Anda mengopikan file-le CakePHP, beberapa sistem operasi menganggap le berawalan . (titik) sebagai le hidden (tersembunyi), sehingga le-le yang Anda kopi tidak melibatkan le .htaccess.

23

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

4.

Jika Anda melakukan instalasi CakePHP pada direktori user Anda (dengan struktur url sebagai berikut http://localhost/~usernameAnda/), maka Anda perlu mengubah le .htaccess Anda. Tambahkan baris RewriteBase dalam folder /CakePHP, /app, dan /webroot.
/ ~usernameAnda/ pada le .htaccess Anda. Tambahkan di le .htaccess di

5. Jika Anda merasa terganggu dengan struktur url panjangan seperti ini http:// example.com/posts/?CAKEPHP=4kgj577sgabvnmhjgkdiuy1956if6ska mak a tambahk an baris php_flag le .htaccess Anda. 6. Beberapa sistem operasi berbasis Unix mempermasalahkan hak akses folder /tmp yang terletak di /CakePHP/app/tmp. Folder /tmp ini erat kaitannya dengan caching dan logging aplikasi Anda. Anda perlu mengubah hak akses folder /tmp berikut sub direktori dan le di dalamnya, sehingga menjadi drwxrwxrwx, atau dengan melakukan perintah chmod 777 untuk tiap-tiap direktori dan le. 7. Pastikan instalasi Anda benar-benar sesuai dengan apa yang dibutuhkan oleh CakePHP. Keterangan lebih lanjut tentang kongurasi server ini bisa Anda lihat di manual CakePHP.
session.trans_id off pada

Demikian beberapa hal yang harus Anda perhatikan saat melakukan instalasi dan kongurasi Apache, MySQL dan PHP di sistem operasi Anda. Semoga penjelasan di atas mempermudah Anda untuk menyediakan lingkungan pengembangan aplikasi berbasis web yang baik. Pada bab 3, Anda akan diperkenalkan dengan langkah-langkah instalasi framework CakePHP.

24

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

Bab 3. Instalasi CakePHP


3.1. Instalasi dan Kongurasi Paket Instalasi CakePHP
Ada beberapa cara untuk memperoleh paket instalasi CakePHP : mendapatkan paket instalasi versi stabil dari CakeForge, mendapatkan paket instalasi versi pengembangan (nightly build), atau mendapatkan versi terbaru dari SVN. Untuk medapatkan paket instalasi versi stabil, Anda bisa mengunjungi situs CakeForge pada alamat : http://cakeforge.org/projects/cakephp/

Untuk mendapatkan paket nightly build, dengan beberapa perbaikan pada bug-bug (kesalahan) yang ada, Anda bisa mendapatkannya di : http://cakephp.org/downloads/index/nightly

Untuk mendapatkan versi terbaru dari repository SVN, gunakan client SVN favorit Anda dan lakukan koneksi ke : https://svn.cakephp.org/repo/trunk/cake/ dan pilih beberapa versi yang ada.

Melakukan Ekstraksi Paket Instalasi


Setelah Anda mendapatkan paket instalasi tersebut, letakkan paket instalasi pada wwwroot (DocumentRoot, biasanya pada sistem operasi Windows diletakkan pada C:
\AppServ\www . Untuk sistem operasi Linux, biasanya diletakkan di direktori /usr/ local/apache/htdocs/. Untuk meyakinkan Anda, silahkan Anda cek kongurasi le httpd.conf, dengan melakukan pencarian baris menggunakan kata kunci frase DocumentRoot). Setelah itu, ekstrak paket instalasi Anda. Ada tiga cara instalasi framework

CakePHP. Model instalasi yang pertama adalah Development Setup, yang akan memudahkan Anda untuk melihat banyak aplikasi berbasis CakePHP di bawah satu domain. Model instalasi yang kedua adalah Production Setup yang akan memungkinkan Anda untuk melihat hanya satu aplikasi berbasis CakePHP di bawah satu domain. Model instalasi ketiga adalah Custom Setup yang akan memudahkan Anda untuk meletakkan folder /app dari aplikasi CakePHP Anda di mana pun yang Anda inginkan. Model instalasi ketiga ini juga memungkinkan satu folder library CakePHP digunakan oleh banyak aplikasi berbasis CakePHP.

25

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

Model Instalasi 1 : Development Setup


Untuk model Development Setup, kita bisa meletakkan instalasi CakePHP dengan susunan instalasi sebagai berikut :
/wwwroot /cake /app /cake /vendors .htaccess index.php

Pada instalasi ini, folder wwwroot (DocumentRoot Anda) akan berperan sebagai web root, sehingga apabila diakses dari browser, url aplikasi CakePHP Anda akan terlihat sebagaimana berikut ini : www.situsku.com/cake/namaController/namaAction/param1/param2 Secara garis besar, susunan folder instalasi CakePHP pada sistem operasi Windows XP bisa dilihat pada Gambar 3.1 di bawah ini. penulis menyederhanakan nama folder paket cake_1.x.x.x.xxx/ menjadi folder cake/ saja.

Gambar 3.1. Struktur instalasi CakePHP di Windows XP

Model Instalasi 2 : Production Setup

26

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

Untuk model Production Setup, Anda harus memiliki hak untuk mengubah kongurasi DocumentRoot pada server Anda. Dengan demikian, CakePHP akan menjadi aplikasi tunggal yang ter-install di server Anda. Susunan instalasi dari Production Setup sebagai berikut :
/cake /app /config /controllers /models /plugins /tmp /vendors /views /webroot <-- Folder ini menjadi DocumentRoot Anda .htaccess index.php /cake /vendors .htaccess index.php

Model Production Setup memerlukan kongurasi pada le httpd.conf. Di bawah ini adalah contoh kongurasi yang memungkinkan untuk mengubah DocumentRoot Anda :

DocumentRoot /path_ke_instalasi_cake/app/webroot

Pada instalasi ini, folder webroot pada aplikasi CakePHP akan berperan sebagai web root aplikasi secara keseluruhan, sehingga apabila diakses dari browser, url aplikasi CakePHP Anda akan terlihat sebagaimana berikut ini : http://www.situsku.com/namaController/namaAction/param1/param2

Model Instalasi 3 : Custom Setup


Pada beberapa kondisi khusus, Anda mungkin menginginkan peletakan direktori aplikasi CakePHP pada folder-folder yang berbeda di dalam harddisk Anda. Kondisi ini barangkali dilatarbelakangi oleh adanya restriksi pada kongurasi server Anda, atau Anda menginginkan beberapa aplikasi CakePHP mengakses pustaka CakePHP yang sama. Ada tiga komponen utama pada aplikasi CakePHP : Inti dari pustaka CakePHP pada folder /cake Aplikasi berbasis CakePHP yang akan Anda kembangkan pada folder /app Folder web root aplikasi Anda yang berisi gambar, le javascript, le css dan lain sebagainya akan diletakkan pada folder /app/webroot.

27

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

Masing-masing direktori ini bisa diletakkan di mana saja di le system Anda, dengan catatan folder webroot harus bisa diakses oleh web server Anda. Anda bahkan bisa memindahkan folder webroot keluar dari folder /app selama Anda memberitahu CakePHP di mana Anda meletakkan direktori webroot Anda. Untuk melakukan kongurasi pada instalasi dengan model Custom Setup ini, Anda harus melakukan sedikit perubahan pada le /app/webroot/index.php. Jika Anda mencermati isi le index.php ini, Anda akan menjumpai setidaknya tiga variabel pokok, yakni : ROOT,
CAKE_CORE_INCLUDE_PATH. ROOT seyogyanya di set pada path yang menunjuk ke direktori yang mengandung APP_DIR, dan

folder /app ;
APP_DIR seyogyanya diset pada path folder /app itu sendiri. CAKE_CORE_INCLUDE_PATH seyogyanya diset pada path folder /cake yakni folder

pustaka CakePHP. Sebelum Anda melakukan perubahan, seharusnya secara lengkap susunan kongurasi pada le index.php sebagai berikut : File : index.php
<?php .... if (!defined('ROOT')) { ! define('ROOT',dirname(dirname(dirname(__FILE__)))); } if (!defined('APP_DIR')) { ! define('APP_DIR',basename(dirname(dirname(__FILE__)))); } if (!defined('CAKE_CORE_INCLUDE_PATH')) { ! define('CAKE_CORE_INCLUDE_PATH', ROOT); } ...... ?>

Contoh di bawah ini akan memperjelas langkah kongurasi Anda. Asumsikan, Anda menginginkan CakePHP untuk bekerja dengan susunan sebagai berikut :

28

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

1. Pustaka Cake akan digunakan bersama dengan aplikasi lainnya, dan akan diletakkan pada folder /usr/lib/cake (asumsikan, sistem operasi Anda adalah Linux). 2. Folder webroot Anda akan Anda letakkan di /var/www/situsku 3. Aplikasi Anda akan Anda letakkan di /home/aku/situsku
/home /aku /situsku <-- Sebelumnya adalah /cake_install/app /config /controllers /models /plugins /tmp /vendors /views index.php

/var /www /situsku <-- Sebelumnya adalah /cake_install/app/webroot /css /files /img /js .htaccess css.php favicon.ico index.php

/usr /lib /cake <-- Sebelumnya adalah /cake_install/cake /cake /config /docs /libs /scripts app_controller.php app_model.php basics.php bootstrap.php dispatcher.php /vendors

Untuk model struktur instalasi sebagaimana di atas, Anda akan melakukan perubahan pada le index.php (yang saat ini terletak di direktori /var/www/situsku/index.php) sebagai berikut :

29

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

File : index.php
<?php ...... if (!defined('ROOT')) { ! define('ROOT', DS.'home'.DS.'aku'); } if (!defined('APP_DIR')) { ! define ('APP_DIR', 'situsku'); } if (!defined('CAKE_CORE_INCLUDE_PATH')) { ! define('CAKE_CORE_INCLUDE_PATH', DS.'usr'.DS.'lib'.DS.'cake'); } .... ?>

Pada kongurasi ini direkomendasikan menggunakan konstanta DS daripada karakter / (garis miring) untuk menuliskan path kongurasi. Hal ini untuk mencegah munculnya peringatan kesalahan missing le yang disebabkan oleh kesalahan penggunaan delimiter. Kongurasi ini juga akan membuat aplikasi kita lebih kompatibel dengan kongurasi server lainnya.

Dari berbagai model instalasi di atas, instalasi model pertamalah yang akan Anda gunakan untuk membangun aplikasi berdasarkan langkah-langkah yang ada di buku ini. Instalasi model pertama ini adalah model yang termudah dan tercepat apabila dibandingkan dengan model yang lainnya.

3.2. Routing CakePHP


Sebelum masuk pada langkah pertama untuk menampilkan Hello World, kita akan membahas sekilas tentang Routing. Routing adalah sebuah metode khusus yang disediakan oleh CakePHP untuk memudahkan developer aplikasi mengatur susunan url aplikasi dan membuatnya rapi. Seringkali dalam sebuah aplikasi web berbasis php, kita menjumpai url sebagai berikut : http://www.situsku.com/index.php?sid=745334f54eb465994f3eef6c63d94503&lang=34

30

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

Routing akan mengarahkan url aplikasi pada controller dan action tertentu, sesuai kongurasi yang kita letakkan pada le /app/config/routes.php. Isi dari le
routes.php sebagai berikut :

File : routes.php
<?php ..... $Route->connect('/', ! array('controller'=>'pages', ! ! 'action' => 'display', 'home')); $Route->connect('/pages/*', ! array('controller' => 'pages', ! ! 'action' => 'display')); $Route->connect('/tests', ! array('controller' => 'tests', ! ! 'action' => 'index')); .... ?>

Secara umum, struktur Routing CakePHP 1.1.xx.xxxx sebagai berikut :


$Route->connect ('URL', array('controller'=>'namaController', 'action'=>'namaAction', 'parameter') );

Dengan penjelasan sebagai berikut :


URL : bagian dari url situs yang ingin Anda petakan dengan Routing. namaController : nama controller yang akan kita panggil melalui url. controller berupa

sebuah kelas php.


namaAction : nama action pada controller yang akan kita panggil. Action berupa sebuah

fungsi di dalam kelas controller tersebut.


parameter : nilai dari parameter pertama pada action tersebut.

Dengan demikian, bisa dikatakan Routing akan mengarahkan bagian url tertentu ke
namaController::namaAction(parameter). Kongurasi Routing Anda, secara

default sebagai berikut :


$Route->connect('/', ! array('controller'=>'pages', ! ! 'action' => 'display', 'home'));

31

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

Apabila user mengakses url / atau dengan kata lain mengarahkan browser pada instalasi CakePHP, maka CakePHP secara otomatis akan mengarahkan browser pada controller
PagesController dengan action display dan parameter home. Kita akan melihat

implementasi Routing pada sub bab berikutnya.

3.3. Hello World !


Apabila instalasi CakePHP Anda tidak bermasalah, Anda akan menjumpai halaman pertama sebagaimana gambar di bawah ini apabila Anda mengarahkan browser ke direktori instalasi CakePHP. Direktori instalasi CakePHP diakses dengan url : http://localhost/cake/

Gambar 3.2. Instalasi CakePHP berhasil Gambar di atas memberikan informasi pada Anda bahwa CakePHP memerlukan kongurasi database supaya bisa terkoneksi dengan server database MySQL yang telah Anda install bersama dengan server Apache sebagaimana dijelaskan pada bab 2. Selain itu, CakePHP juga memberikan beberapa petunjuk awal untuk memulai pengembangan web, yakni dengan memberikan tiga buah pesan : Kita diminta untuk membuat sebuah file bernama home.thtml pada direktori /app/
views/pages/ yang akan mengganti konten (isi) dari tampilan halaman depan.

Kita diminta untuk membuat sebuah le bernama default.thtml yang akan menggantikan layout tampilan halaman depan. Perlu diingat, layout berfungsi sebagai header dan footer dari halaman aplikasi yang akan selalu muncul saat konten berubah (semacam template halaman web). Apabila kita akan menambahkan le css, CakePHP menyediakan lokasinya, yakni pada folder /app/webroot/css/.

32

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

Sebagai langkah awal, kita akan mulai dengan membuat sebuah le bernama
home.thtml pada folder /app/views/page/. Buat le kosong bernama home.thtml

dan isikan script di bawah ini : File : home.thtml


<h1>Halo, dunia !<br/></h1>

<h3>Ini adalah script CakePHP pertama penulis<h3>

Simpan le tersebut, kemudian arahkan browser Anda pada url : http://localhost/cake/ Anda akan melihat tampilan sebagaimana gambar di bawah ini

Gambar 3.3. Tampilan home.thtml Anda sudah berhasil membuat halaman web dengan CakePHP untuk pertama kalinya. Cukup mudah bukan ? Selanjutnya, kita akan mencoba mengimplementasikan konsep Routing dengan script kedua. Buat sebuah le bernama hello.thtml dan letakkan pada folder /app/views/pages/. Isikan script di bawah ini pada le hello.thtml Anda : File : hello.thtml
<h3>Selamat datang, di aplikasi CakePHP <br/></h3> <p>Ini adalah contoh pertama penerapan routing statis</p>

dan

halaman

Selanjutnya, buka le /app/contig/routes.php dan ganti kongurasi Routing Anda. Arahkan CakePHP pada halaman hello.thtml dengan mengganti le kongurasi

33

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

routes.php, sehingga apabila sebelumnya le kongurasi Anda tampak sebagaimana di

bawah ini : File : routes.php


<? .... $Route->connect('/', array('controller' => 'pages', 'action' => 'display', 'home')); .... ?>

Setelah diarahkan pada halaman statis hello.thtml, akan berubah menjadi seperti ini : File : routes.php
<? .... $Route->connect('/', array('controller' => 'pages', 'action' => 'display', 'hello')); .... ?>

Arahkan kembali browser Anda ke direktori instalasi CakePHP. Browser Anda akan menampilkan halaman web berikut ini :

Gambar 3.4. Tampilan hello.thtml Perhatikan title bar pada halaman web CakePHP Anda. Secara otomatis, CakePHP akan memberikan judul CakePHP : Hello pada saat Anda mengakses halaman statis hello.thtml. Langkah pertama menciptakan aplikasi dengan CakePHP sudah kita lalui. Pada pembahasan selanjutnya, kita akan melihat tur lain CakePHP yang akan membuat Anda terkaget-kaget : Scaolding !

34

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

3.4. Scaolding
Apa itu Scaolding ? Scaolding adalah sebuah tur yang disediakan CakePHP untuk memudahkan pengembang aplikasi web menampilkan dan menganalisa konten database pada saat pertama kali mereka mengembangkan aplikasi web dinamis, dengan konten web yang bisa ditambahkan, diubah dan dihapus secara interaktif melalui halaman web. Sebelum masuk pada penjelasan, ada baiknya kita mencoba terlebih dahulu tur Scaolding. Ikuti langkah-langkah di bawah ini dengan seksama dan lihatlah keajaiban yang ditawarkan Scaolding untuk Anda. Kali ini, kita akan membuat sebuah aplikasi web untuk melakukan manajemen pemain sepakbola Liga Indonesia. Dengan aplikasi ini, kita bisa menambahkan (Add), mengubah (Edit), dan menampilkan (View) pemain secara interaktif. Anda hanya membutuhkan waktu kurang dari 4 menit untuk membuat semuanya berjalan ! Sebelum masuk pada aplikasi, kita akan membuat database-nya terlebih dahulu. Buka aplikasi web phpMyAdmin dengan mengakses : http://localhost/phpmyadmin/ Apabila Anda belum memiliki aplikasi phpMyAdmin, Anda bisa menggunakan source phpMyAdmin yang tersedia pada CD atau mendapatkan versi terbarunya melalui internet. Setelah Anda membuka phpMyAdmin, buatlah sebuah database dengan nama
latihancake. Database ini nantinya akan kita gunakan seterusnya untuk membuat

proyek-proyek aplikasi web berskala menengah di akhir buku ini. Setelah Anda berhasil menciptakan sebuah database baru, buatlah dua buah tabel baru, tabel players dan
teams dengan struktur di bawah ini :

Tabel 3.1. Tabel players Nama Field


id rstname position team_id

Tipe Data
small int (5) varchar(50) varchar(25) small int (6)

Keterangan
Unsigned, Not null, auto_increment, primary key Not null Not null Null

35

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

Tabel 3.2. Tabel teams Nama Field


id name

Tipe Data
small int (5) varchar(50)

Keterangan
Unsigned, Not null, auto_increment, primary key Not null

atau dengan mengeksekusi perintah SQL di bawah ini : Query SQL untuk Tabel players dan teams
CREATE TABLE `players` ( `id` smallint(5) unsigned NOT NULL auto_increment, `firstname` varchar(50) NOT NULL default '', `position` varchar(25) NOT NULL default '', `team_id` smallint(6) default NULL, PRIMARY KEY (`id`) ); CREATE TABLE `teams` ( `id` smallint(5) unsigned NOT NULL auto_increment, `name` varchar(50) NOT NULL default '', PRIMARY KEY (`id`) );

Perhatikan field team_id pada tabel players. Ini adalah foreign key yang dipetakan ke primary key tabel teams. Field tersebut diberi nama demikian karena CakePHP mampu secara otomatis mengidentikasinya sebagai foreign key dan memanfaatkannya untuk menampilkan berbagai macam hal yang menarik seperti membuat komponen HTML listbox saat menambahkan dan mengedit pemain baru. Ada beberapa peraturan yang harus ditaati supaya tur Scaolding ini berjalan dengan baik : Apabila Anda ingin memetakan sebuah foreign key ke sebuah tabel, pada aplikasi kita adalah tabel teams ke tabel players, maka foreign key tersebut harus diberi nama dengan TABLE_id, dimana TABLE adaIah bentuk tunggal dari foreign table yang kita petakan. Dalam hal ini, kita memberi nama foreign key kita dengan nama team_id (team adalah bentuk tunggal dari teams). Tabel yang akan kita buat harus dipetakan pada controller yang mendenisikan variabel
$scaffold. Kita akan melihat penerapannya pada contoh ini.

Apabila Anda ingin memanfaatkan keunggulan CakePHP untuk memetakan hubungan (asosiasi) antar tabel, tabel yang Anda buat harus dihubungkan pada model yang

36

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

mendenisikan asosiasi tabel-tabel yang relevan. CakePHP mendukung empat jenis asosiasi antar tabel: hasOne, hasMany, belongsTo, dan hasAndBelongsToMany. Pada aplikasi kita, masing-masing pemain berasosiasi dengan satu tim, sehingga kita akan menggunakan jenis asosiasi belongsTo. Penjelasan lebih lengkap mengenai jenis asosiasi, model, controller, dan view terdapat pada bab selanjutnya. Langkah kedua adalah menghubungkan aplikasi CakePHP dengan database Anda. Buka folder /app/config/. Anda akan menemukan sebuah le bernama
database.php.default. Ubah nama le tersebut, sehingga menjadi database.php.

Selanjutnya, ubah dan sesuaikan kongurasi database pada le tersebut. Sebelum Anda ubah, le database.php akan tampak sebagaimana di bawah ini : File : database.php
<?php class DATABASE_CONFIG { ! var $default = array( 'driver' => 'mysql', ! 'connect' => 'mysql_connect', ! 'host' => 'localhost', ! 'login' => 'user', ! 'password' => 'password', ! 'database' => 'project_name', ! 'prefix' => ''); ! ! ! ! ! ! ! } ?> var $test = array( 'driver' => 'mysql', 'connect' => 'mysql_connect', 'host' => 'localhost', 'login' => 'user', 'password' => 'password', 'database' => 'project_name-test', 'prefix' => '');

Kita akan menggunakan variabel $default pada kelas DATABASE_CONFIG. Untuk itu, variabel $test bisa Anda hapus. Ubah isi variabel $default tersebut dengan mengisikan
latihancake pada elemen array database, localhost pada elemen array host, username_database_anda pada elemen array login, password_database_anda pada

elemen array password. Setelah Anda ubah dan sesuaikan dengan kongurasi database Anda, maka le tersebut akan tampak sebagaimana di bawah ini. Sebagai catatan, penulis

37

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

menggunakan username root dengan password root untuk mengakses database milik penulis. Anda bisa menggunakan username dan password yang sesuai. File : database.php
<?php class DATABASE_CONFIG { ! var $default = array( 'driver' => 'mysql', ! 'connect' => 'mysql_connect', ! 'host' => 'localhost', ! 'login' => 'root', ! 'password' => 'root', ! 'database' => 'latihancake', ! 'prefix' => ''); } ?>

Setelah Anda selesai menciptakan database dan tabel yang dibutuhkan, serta mengarahkan instalasi CakePHP Anda pada database latihancake, saatnya kita berkutat dengan aplikasi web berbasis CakePHP. Untuk membuat aplikasi ini, Anda akan membuat script pada tiga struktur pokok CakePHP, yakni model, controller dan view. Struktur model berupa sebuah kelas PHP yang menangani manajemen data dan berhubungan langsung dengan tabel database Anda. Struktur controller berupa sebuah kelas PHP yang akan menangani proses request dari pengguna aplikasi, mengambil data dari model, dan memberikan hasil request kepada view. Struktur view adalah gabungan script HTML dan PHP yang akan menampilkan hasil request kepada pengguna melalui browser. Penjelasan lebih lanjut mengenai konsep Model-View-Controler (MVC) akan dibahas pada bab selanjutnya. Buka folder /app/controllers/. Di dalam folder tersebut, buatlah sebuah le PHP dengan nama players_controller.php. Isikan script di bawah ini : File : players_controller.php
<?php class PlayersController extends AppController { var $scaffold; } ?>

38

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

Jangan pernah meninggalkan karakter kosong (spasi) setelah tanda ?> di akhir script karena CakePHP akan memunculkan pesan peringatan pada halaman aplikasi Anda.

Masih pada folder controllers , buatlah sebuah le controller kedua bernama


teams_controller.php. Isikan script di bawah ini :

File : teams_controller.php
<?php class TeamsController extends AppController { var $scaffold; } ?>

Dua buah le ini nantinya akan bertugas menangani semua request dari user, termasuk menambahkan pemain atau nama tim, mengubah, dan bahkan menghapusnya. Selanjutnya, buka folder /app/models/. Buatlah le model untuk tabel players dengan nama player.php. Isikan script di bawah ini : File : player.php
<?php class Player extends AppModel { var $name = 'Player'; var $belongsTo = array('Team' => array('className' => 'Team', 'conditions' => '', 'order' => '', 'foreignKey' => 'team_id' ) ); } ?>

Masih pada folder yang sama, buatlah model untuk tabel teams dengan nama team.php. Isikan script di bawah ini :

39

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

File : team.php
<?php class Team extends AppModel { var $name = 'Team'; var $displayField = 'name'; } ?>

Script penjelasan tur Scaolding, baik kelas controller maupun model dapat diambil dari CD yang kami sertakan bersama dengan buku ini.

Arahkan browser Anda pada url di bawah ini dan lihatlah apa yang dilakukan oleh Scaolding : http://localhost/cake/teams

Gambar 3.5. Tampilan halaman List Teams Cobalah untuk menambahkan nama-nama tim sepakbola kesayangan Anda dengan masuk pada link New Team. Sebagai contoh, Anda menambahkan empat buah tim yang berlaga di Liga Indonesia : PSIM, Persija Jakarta, PSMS Medan, dan Persebaya Surabaya. Tampilan halaman tim setelah Anda menambahkan empat buah tim tersebut sebagai berikut :

40

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

Gambar 3.6. Halaman List Teams telah terisi Untuk melakukan pengubahan record atau isi database, Anda cukup menekan link Edit. Untuk menghapus record, Anda bisa menekan link Delete. Untuk menampilkan informasi record, Anda bisa masuk pada link View. Kini, arahkan browser Anda pada halaman players dengan url : http://localhost/cake/players

Gambar 3.7. Tampilan List Players

41

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

Kini Anda akan menambahkan seorang pemain depan (striker) bernama Bejo pada tim Persija. Setelah membuka link New Player, Anda akan menemukan form isian, berikut komponen listbox yang berisi nama-nama tim, sebagaimana gambar berikut ini :

Gambar 3.8. Menambahkan pemain Setelah Anda menambahkan beberapa pemain, halaman List Players akan tampak sebagaimana di bawah ini :

Gambar 3.9. Halaman List Players telah terisi Fitur Scaolding yang menakjubkan telah Anda ciptakan dan dalam waktu kurang dari 4 menit CakePHP membantu Anda mewujudkan impian Anda untuk membuat sebuah aplikasi web yang menarik. Sangat mudah, bukan ? Pada dasarnya, tur Scaolding bekerja pada le controller saat Anda menambahkan variabel $scaffold. Untuk pengembangan aplikasi selanjutnya, variabel $scaffold

42

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

hanya digunakan untuk membantu memberikan sekilas gambaran aplikasi yang akan Anda ciptakan. Nantinya variabel ini akan dihilangkan dan Anda diminta untuk membuat sendiri fungsi-fungsi di dalam kelas-kelas PHP Anda, baik pada kelas-kelas model maupun controller. Dengan demikian, Anda bisa lebih leluasa melakukan inovasi-inovasi pada aplikasi web Anda.

43

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

Referensi Online
Nama Situs
Situs Resmi CakePHP

Prol
Situs ini adalah situs resmi framework CakePHP. Anda bisa mendapatkan berbagai macam hal yang berkaitan dengan CakePHP secara langsung, seperti link referensi online, manual, API, dan berbagai macam berita terbaru tentang Cake Software Foundation.

http://cakephp.org Situs CakeForge Situs yang berisi project-project Open Source yang dikembangkan dengan frmaework CakePHP. Situs ini cukup representatif untuk dijadikan sumber referensi utama dalam pembuatan aplikasi berbasis CakePHP

http://cakeforge.org 21 Things about CakePHP Situs ini yang layak menjadi referensi utama untuk Anda yang baru pertama kali mengenal CakePHP. Situs ini berisi penjelasan singkat tentang 21 hal yang bisa dipelajari oleh programmer PHP yang ter tarik menggunakan CakePHP sebagai dasar aplikasi web yang dibuatnya.

http://avatarnancial.com/pages/cake/

44

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

Nama Situs
Bakery CakePHP

Prol
Situs resmi CakePHP yang berisi tips dan trik seputar CakePHP. Dikemas dalam tampilan yang cukup menawan, situs ini menjadi referensi pengembang CakePHP saat menemui permasalahan yang berhubungan dengan pengembangan CakePHP dengan aplikasi third-party lainnya dan segudang trik lainnya.

http://bakery.cakephp.org Baking With Sosa Blog milik salah seorang disainer web CakePHP sekaligus developer CakePHP, Armando Sosa. Berisi berbagai macam tips dan trik seputar CakePHP dan cerita-cerita menarik di balik pengembangan CakePHP. Layak untuk disimak, jika Anda memang seorang developer yang penasaran dengan kisah di balik pengembangan CakePHP. http://nolimit-studio.com/baking/ Cake Baker 42dh Blog milik Daniel Hofstetter yang berisi pengalamannya selama berkontribusi sebagai salah satu anggota tim developer CakePHP. Sangat menarik dan membantu kita untuk memahami proses pengembangan CakePHP, perbaikan bug-bug yang terdapat di dalamnya, sampai dengan cerita-cerita lucu dan menarik dari pemilik blog. Anda bisa mendapatkan pula contoh aplikasi-aplikasi http://cakebaker.42dh.com buatan Daniel di blog ini.

45

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

Nama Situs
Cake Bits

Prol
Blog yang berisi info terbaru tentang aplikasi berbasis CakePHP dan berbagai berita tentang CakePHP yang dikumpulkan dari situs-situs tutorial CakePHP. Meskipun bukan situs resmi milik Cake Software Foundation, situs ini menjadi rujukan yang cukup baik tentang berita-berita terbaru seputar CakePHP.

http://cakebits.net Unocial CakePHP API Situs ini berisi dokumentasi dan API (Application Programming Interface) CakePHP. Penjelasan class-class, function, dan berbagai macam turunan dari class di CakePHP dijelaskan di situs ini. Meskipun bukan situs resmi Cake Software Foundation, situs ini bisa menjadi rujukan teknis yang cukup baik.

http://docs.cakephp.nu/ CakePHP Japan Apabila Anda mahir berbahasa Jepang, mungkin ada baiknya melongok situs ini dan melihat-lihat isinya. Cukup menarik , meskipun tidak jauh berbeda dari beberapa situs CakePHP lain. Anda juga akan menjumpai contoh-contoh aplikasi sederhana buatan developer Jepang. Oya, jika Anda tidak bisa berbahasa Jepang, klik saja link English di pojok kanan. http://cakephp.seesaa.net

46

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

Nama Situs
CakePHP Indonesia

Prol
Situs CakePHP berbahasa Indonesia, awalnya menjadi tempat untuk menampung segala macam unek-unek, artikel, dan curahan hati developer CakePHP di Jogja khususnya dan di Indonesia secara umum. Bergabunglah bersama kami dan kirimkan pengalaman menarik Anda bersama CakePHP.

http://idcake.web.id/ Milis CakePHP bahasa Indonesia Mailing list CakePHP berbahasa Indonesia yang menjadi ajang berkumpul baker (developer dan user) CakePHP. Jika Anda mengalami kesulitan saat menggunakan CakePHP, jangan sungkansungkan untuk bergabung dan berdiskusi di mailing list ini.

http://groups.yahoo.com/group/idcakephp/ Milis CakePHP bahasa Inggris Mailing list CakePHP berbahasa Inggris. Milis ini direkomendasikan oleh seluruh baker di dunia sebagai ajang diskusi resmi pengguna CakePHP. Bergabunglah dan dapatkan berbagai macam info, trik dan tips, lowongan kerja dan masih banyak lagi.

http://groups.google.com/group/cakephp/

47

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

Nama Situs
Old CakePHP Wiki

Prol
Jika Anda ingin melihat dokumentasi lama dari CakePHP, cobalah berkunjung ke Old CakePHP Wiki. Saat ini, dokumentasi Wiki CakePHP sudah dipindahkan ke Bakery CakePHP meskipun belum semua dokumentasi dimasukkan ke dalam Bakery CakePHP. Jika Anda masih penasaran, kunjungi situs ini dan rasakan sensasi dokumentasi ala Wikipedia untuk aplikasi

http://tinyurl.com/yqnqf2 Thinking PHP

CakePHP Anda. B l o g m i l i k Fe l i x G e i s e n d r f e r a l i a s the_undened ini berisi artikel-artikel yang cukup berisi tentang pemrograman web, termasuk CakePHP. Dari bobot dan tingkat kesulitan tutorial, situs ini masuk dalam kategori lanjut dan sangat cocok jika memang Anda sudah menggeluti pemrograman web dalam kurun waktu yang cukup lama (2 - 3 tahun).

http://thinkingphp.org/ Noswalds Blog Blog milik Andy Dawson, salah seorang baker dari Inggris yang membuat beberapa snippet (source code pendek / class) dan plug-in untuk CakePHP. Berisi beberapa tips-tips menarik tentang pengembangan plug-in untuk CakePHP , berikut contoh-contohnya.

http://www.ad7six.com/

48

CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web

Nama Situs
Planet MVC

Prol
Anda tertarik dengan framework MVC selain CakePHP ? Kunjungi situs Planet MVC dan dapatkan informasi terbaru seputar beberapa framework MVC terkenal di dunia.

http://www.planetmvc.com/ Rossofts Blog Blog milik Miguel Ros, berisi beberapa tutorial menarik tentang CakePHP. Cocok sebagai referensi sekunder dan bahan pengayaan untuk aplikasi kita.

http://rossoft.wordpress.com/ H3rald.Com Blog dan portal milik Fabio Cevasco, salah seorang pengembang CakePHP 1.1 sekaligus penulis beberapa artikel pemrograman web. Ia juga berencana untuk menerbitkan buku resmi CakePHP dari Cake Software Foundation yang berjudul CakePHP Recipes meskipun sampai saat ini belum terealisasi.

http://h3rald.com/

49

Anda mungkin juga menyukai