November 23, 2006

Bake dan Scaffolding Pada CakePhp

Posted in komputer, php pada 10:41 am oleh fuad

CakePhp (http://www.cakephp.org) dibuat oleh ichal Tatarynowicz pada tahun 2005. Proyek ini terinspirasi oleh esuksesan RoR(Ruby On Rails) yang membuat bahasa Ruby terkenal.
CakePhp adalah sebuah framework (kerangka
kerja) yang bisa membuat proses pengembangan aplikasi web menjadi lebih
cepat dan efiisen. CakePhp menyediakan pustaka (library), class, dan
infrastruktur bagi programmer dalam membuat aplikasi web.

Dalam proses pengembangan plikasi web CakePhp menggunakan pola MVC ( Model View Controller). imana pada pola ini kode pengaksesan database dan kode untuk
menampilkan data dipisahkan. Pola ini memiliki banyak keuntungan salah
satunya adalah proses pengembangan logika bisnis( bussiness logic),
pembuatan basis data, dan desain antar muka dapat dilakukan oleh orang
yang berbeda dan secara mandiri, sehingga proses pembuatan aplikasi
bisa menjadi lebih cepat

Untuk menginstall CakePhp maka terlebih dahulu harus disediakan:

  1. HTTP Server( Seperti Apache, dengan session dan mod_rewrite dienabled)
  2. PHP 4.3.2 atau yang lebih baru, CakePhp dapat bekerja dengan php versi 4 dan 5 dengan baik.
  3. Database Server( Saat ini CakePhp baru mendukung MySql, Postgresql, dan wrapper untuk AdoDB)

Versi terbaru CakePhp dapat didownload di
http://cakeforge.org/projects/cakephp/. Proses Penginstallan CakePhp
sangat mudah cukup dengan diekstrak pada direktori root HTTP server.

/wwwroot          
           /cake          
            /app  
            /cake  
            /vendors  
           .htaccess  
            index.php

Setelah itu ada beberapa hal yang mesti dicek.

  • Pastikan file .htaccess bisa ditulisi. Untuk itu padasettingan dokumen root web server anda pastikan bagian “AllowOverride”adalah All.
  • Pastikan modul mod_rewrite telah terinstall dan dimuat oleh web server anda.

Untuk memastikan cakephp telah terinstall dengan benar maka bukalah alamat http://localhost/cake

pada browser, jika cakephp diekstrak pada folder cake pada dokumen root tadi.

Selanjutnya jika Cakephp telah terinstall, maka proses selanjutnya

adalah konfigurasi database. Pada CakePhp konfigurasi database disimpan

di app/config/database.php. CakePhp yang baru terinstall tidak memiliki

file ini, untuk itu kopi file app/config/database.php.default menjadi

app/config/database.php lalu ubah sesuai dengan database yang akan

digunakan.

var $default = array('driver' => 'mysql',                     'connect' =>'mysql_connect',                     'host'    => 'localhost',  

                     'login'   => 'user',  

                     'password' => 'password',  

                     'database' => 'project_name',  

                     'prefix'   => '');

Nah sekarang lanjut ke tahap pemrogramannya. Dalam membuat aplikasi dengan CakePhp ada tiga hal yang mesti dibuat yaitu

  1. Model,model ini adalah akses poin ke database jadi semua kode kode yangbersifat pengaksesan terhadap database ada di model. Kode model disimpan dalam folder app/models
  2. Controller, berisi logika bisnis pada aplikasi, memrosesdata data yang diambil dari database, dan mengatur data data apa yangmesti ditampilkan. Kode controller disimpan dalam folder app/controllers
  3. View, berisi kode kode yang akan mengatur bagaimana data datadari controller tadi akan ditampilkan. Kode view disimpan dalam folderapp/views.

Dalam website resmi CakePhp(http://www.cakephp.org) Cakephp disebut

sebagai Rapid Application Framework Salah satu alasannya adalah karena Cake

memiliki fitur Scaffold dan Bake.

Bake

adalah fitur CakePhp yang mampu menggenerate model,

view, dan controller secara otomatis sesuai dengan database yang ada

pada konfigurasi. Bake cocok digunakan sebagai template, karena

Bake akan otomatis menghasilkan kode kode umum yang sering digunakan

(kode kode CRUD) yang bisa diubah ataupun ditambahkan sesuai kebutuhan.

Untuk menggunakan fitur ini cukup mudah masuklah

pada direktori cake/scripts pada instalasi CakePhp lalu ketikkan “php

bake.php”. Misal akan dibuat aplikasi yang menggunakan tabel Log.
Contoh penggunaan Bake pada pembuatan model

[M]odel[C]ontroller[V]iewPlease select a class to Bake: (M/V/C)>m---------------------------------------------------------------  

Model Bake:  

---------------------------------------------------------------  

Possible models based on your current database:  

1. Log  

Enter a number from the list above, or type in the name of another model.  

> 1  

Would you like to supply validation criteria for the fields in your model? (y/n)[y]  

> n  

Would you like to define model associations (hasMany, hasOne, belongsTo, etc.)? (y/n)[y]  

> n  

---------------------------------------------------------------  

The following model will be created: ---------------------------------------------------------------  

Model Name: Log  

DBConnection: default  

Model Table: logs  

Validation: Array  

(  

)  

---------------------------------------------------------------  

Look okay? (y/n)  

[y] > y  

Creating file /var/www/html/cake//app/models/log.php  

File /app/models/log.php exists, overwrite? (y/n/q):y  

Do you want to bake unit test files anyway? (y/n)[y] > n

Hasil eksekusi bake di atas akan

menghasilkan file app/model/log.php
<?
class Log extends AppModel{
}
?>
Contoh penggunaan bake pada pembuatan controller

Please select a class to Bake: (M/V/C)> c---------------------------------------------------------------  

Controller Bake:  

---------------------------------------------------------------  

Controller name? Remember that Cake controller names are plural.  

> logs  

Would you like bake to build your controller interactively?  

Warning: Choosing no will overwrite Logs controller if it exist. (y/n)[y]  

> y  

Would you like this controller to use other models besides 'Log'? (y/n)[n]  

 > n  

Would you like this controller to use other helpers besides HtmlHelper? (y/n)[n]  

> n  

Would you like this controller to use any components? (y/n)[n]  

> n  

Would you like to include some basic class methods (index(), add(), view(), edit())? (y/n)[n]  

> y  

---------------------------------------------------------------  

The following controller will be created:  

---------------------------------------------------------------  

Controller Name: logs  

---------------------------------------------------------------  

Look okay? (y/n)[y]  

> y  

Creating file /var/www/html/cake//app/controllers/logs_controller.php  

File /app/controllers/logs_controller.php exists, overwrite? (y/n/q):y  

Wrote /app/controllers/logs_controller.php  

Cake test suite not installed.  

Do you want to bake unit test files anyway? (y/n)[y]  

> n

Hasil pengeksekuian di atas akan menghasilkan file

app/controllers/Logs_Controller.php

Penggunaan bake pada pembuatan view

Please select a class to Bake: (M/V/C)---------------------------------------------------------------  

View Bake:  

---------------------------------------------------------------  

Controller Name? (plural)  

> logsWould you like bake to build your views interactively  

?Warning: Choosing no will overwrite views if it exist.  

(y/n)[y]  

> y  

Would you like to create some scaffolded views (index, add, view, edit) for this controller?  

NOTE: Before doing so, you'll need to create your controller and model classes  

(including associated models). (y/n)[n]  

> y  

Creating file /var/www/html/cake//app/views/logs/index.thtml  

Wrote /app/views/logs/index.thtml  

Creating file /var/www/html/cake//app/views/logs/view.thtml  

Wrote /app/views/logs/view.thtml  

Creating file /var/www/html/cake//app/views/logs/add.thtml  

Wrote /app/views/logs/add.thtml  

Creatingfile /var/www/html/cake//app/views/logs/edit.thtml  

Wrote /app/views/logs/edit.thtml---------------------------------------------------------------Note:- If you're using a non-domain install, change URL pathsfrom /controller/action to /cake_install/controller/action---------------------------------------------------------------View Scaffolding Complete.

Pengeksekusian di atas akan menghasilkan file file :

app/views/logs/add.thtml
app/views/logs/index.thtml
app/views/logs/edit.thtml
app/views/logs/view.thtml

Scaffolding memiliki fungsi yang hampir sama denganBake, hanya saja dengan scaffolding tidak ada kode yang mesti kita buat hanya membuat kelas model dan controller. Lalu mendeklarasikan variabel scaffold pada controller.
Contoh model yang menggunakan fitur scaffolding
<?
class Log extends AppModel{
}
?>
Contoh controller yang menggunakan fitur scaffolding
<?php
class LogsController extends AppController
{
var $scaffold;
}
?>
Kedua kelas di atas akan otomatis menghasilkan aplikasi web sederhana dengan kemampuan CRUD (Create Update Delete).
Kesimpulan:
CakePhp adalah sebuah Rapid ApplicationFramework yang bisa mempercepat pembuatan sebuah aplikasi web. Salah satu fitur yang dimiliki CakePhp adalah Bake dan Scaffolding. Dengan Bake dapat dibuat template untuk masing masing model, view, dan controller sehingga developer tidak perlu membuat kode dari awal. Sedang Scaffolding sangat berguna dalam membuat aplikasi web sederhana dengan fitur CRUD.

6 Komentar »

  1. massunu said,

    Mtur nuwun mas, atas tutorialnya. Saya sangat tertarik dengan Cake PHP dan sedang exploring selama beberapa hari ini ,…. mohon bimbingannya ya , insya Allah …

  2. TRie said,

    Kl kasusnya make xampp gimana yah?
    msh bngung naruk2 file nya euy …

  3. fuad said,

    kalau xampp harus di enable dulu mod_rewrite nya (di uncomment) di conf/apache.conf terus DocumentRoot nya (htdocs) di ganti dari AllowOverride None jadi AllowOverride All

  4. kahfi said,

    bagaimana kalau di archivenya cake ga ada .htaccess-nya?

  5. strato said,

    saya juga pake cakephp dengan xampplite. tinggal buat folder di htdocs,..tapi sebelumnya cake-nya di tempatkaan di mana aja bisa. jgn lupa set dulu environment variabel spaya bisa panggil file bat-nya

  6. This is really cool… Are you kidding me about my impressive sterling Good joke :) Did you hear about the dyslexic rabbi? He was walking around everywhere saying, “Yo!”


Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: