Cara menggunakan what is cakephp?

Cara menggunakan what is cakephp?

CakePHP adalah sebuah framework atau kerangka kerja untuk membuat aplikasi CRUD (Create, Read, Update, Delete) berbasis bahasa pemrograman PHP. CakePHP juga menjadi salah satu framework pilihan yang memungkinkan seorang untuk mengembangkannya.

Pertama yang harus kita lakukan jika ingin menggunakan framework CakePHP ini adalah menginstal composer. Jika teman-teman tidak mengetahui apa itu composer silahkan baca artikelnya disini.

Buka folder htdocs kalian dan tekan “shift + klik kanan” lalu pilih “open command window here”.

Lalu ketik sebagai berikut :
“composer self-update && composer create-project –prefer-dist cakephp/app my_app_name”
catatan : “Edit my_app_name dengan nama project kalian”

Jika sudah dirasa siap silahkan tekan enter untuk memulai instalasi.

Bila instalasi sudah selesai silahkan buka http://localhost/(nama project), Maka tampilannya akan seperti berikut :

Cara menggunakan what is cakephp?

Satu hal penting lagi yang perlu kalian ketahui :
Bila dalam melakukan penginstalan kalian menemukan tulisan seperti ini “requires ext-intl”, Silahkan buka file php.ini teman-teman lalu cari “extension=php_intl.dll” dan hilangkan titik-koma(;) yg terdapat tepat didepannya, restart apache dan lakukan penginstalan CakePHP kembali.

Semoga bermanfaat bagi kalian.

Navigasi pos

cakePHP merupakan struktur pondasi bagi programer untuk membuat aplikasi web. Tujuan utamanya adalah mempermudah programer bekerja secara terstruktur dan cepat tanpa kehilangan fleksibilitas. CakePHP membuang proses monoton dalam pengembangan aplikasi web. CakePHP menyediakan semua alat bantu yang diperlukan

Berikut ini adalah daftar fitur yang dapat dinikmati apabila menggunakan CakePHP:
• Komunitas yang aktif dan bersahabat
• Lisensi yang fleksibel
• Kompatibel dengan PHP versi 4 dan 5
• Operasi CRUD yang terintegrasi untuk interaksi dengan database
• Scaffolding aplikasi
• Otomatisasi pembuatan code (code generation)
• Arsitektur MVC
• Request dispatcher dengan URL yang kustom, rapih dan adanya route
• Validasi data yang terintegrasi
• Sistem templating yang cepat dan fleksibel (sintaks PHP, tersedia helpers)
• View Helpers untuk AJAX, JavaScript, HTML Forms dan banyak lagi
• Email, Cookie, Keamanan, Session, dan komponen Request Handling
• ACL yang fleksibel
• Sanitasi Data
• Caching yang fleksibel
• Lokalisasi
• Dapat bekerja dari direktori web dimana saja, dengan sedikit atau bahkan tanpa perlu melibatkan konfigurasi Apache
Sebagai media yang maju cakePHP juga dapat membantu kepada pengguna dengan menggunakan :
# Website Resmi CakePHP
http://www.cakephp.org
Wesite resmi CakePHP selalu menjadi tempat yang tepat untuk dikunjungi. Memiliki fitur taut ke alat bantu pengembang, screencast, peluang donasi, dan unduhan yang sering dikunjungi.
# Cookbook
http://book.cakephp.org
Manual ini mungkin menjadi tempat pertama yang Anda kunjungi untuk mendapatkan jawaban. Sebagaimana kebanyakan proyek sumber terbuka, kami mendapatkan peminat baru secara reguler. Berusahalah untuk mendapatkan jawaban dari pertanyaan Anda sebagai usaha awal. Jawaban mungkin agak telat sampainya, tapi akan teringat lama-dan Anda juga akan membantu mengurangi beban pelayanan kami. Baik manual dan API dapat dikunjungi secara online.
# API
http://api.cakephp.org/1.2
Langsung ke sasaran dan langsung dari pengembang inti, API (Application Programming Interface) CakePHP merupakan dokumentasi komprehensif untuk semua detail dari cara kerja internal framework. Merupakan referensi kode yang langsung pada sasaran, jadi bawalah topi baling-baling Anda.
# CakeForge
http://www.cakeforge.org
CakeForge adalah sumber pengembang yang dapat Anda gunakan untuk menempatkan proyek CakePHP Anda dan dibagi ke yang lainnya. Jika Anda mencari (atau ingin berbagi) component atau plugin, silahkan tilik CakeForge
# Uji Kasus (Test Cases)
http://api.cakephp.org/tests
Jika Anda merasa informasi yang diberikan dalam API tidak cukup, periksa kode uji kasus yang diberikan dengan CakePHP 1.2. Mereka dapat digunakan sebagai contoh praktis untuk fungsi dan penggunaan data anggota untuk sebuah kelas. Untuk mendapatkan inti uji kasus Anda perlu mendownload paket malam atau melakukan svn branch checkout. Uji kasus akan terletak di
# Channel IRC
#cakephp @ irc.freenode.net
Jika Anda kebingungan, berikan kami suara di channel IRC CakePHP. Biasanya disana ada seseorang dari tim pengembang, khususnya pada siang hari untuk pengguna di Amerika Utara dan Selatan. Kami ingin mendengar dari Anda, apakah Anda memerlukan bantuan, ingin mencari pengguna Cake di wilayah Anda, atau ingin menyumbangkan merek mobil olahraga baru.
# Google Group
http://groups.google.com/group/cake-php
CakePHP juga sangat aktif di Google Group. Grup ini mungkin suatu sumber yang besar untuk mencari arsip jawaban, tanya jawab, dan segera mendapatkan jawaban atas masalah.
1.3 Memahami Model-View-Controller
CakePHP mengikuti pola desain MVC. Memprogram menggunakan MVC memisahkan aplikasi menjadi tiga bagian utama:
1. Model yang merepresentasikan data aplikasi
2. View yang menyajikan presentasi data dari model
3. Controller yang menangani dan mengalihkan request dari klien

Gambar 1: Bentuk dasar request MVC
Gambar 1 menunjukkan sebuah contoh dari kerangka request MVC dalam CakePHP. Untuk mengilustrasikan, asumsikan seorang klien bernama Joko telah mengklik taut “Beli buku ini sekarang!” di halaman beranda (home) aplikasi Anda.
• Joko mengklik taut yang merujuk ke http://www.example.com/buku/beli dan peraba (browser) yang digunakannya akan membuat request ke web server Anda.
• Dispatcher mengecek URL request (/buku/beli), dan mengarahkan request tersebut ke controller yang sesuai.
• Controller mengeksekusi logik aplikasi. Misalnya, controller mengecek apakah Joko telah login.
• Controller juga menggunakan model untuk memperoleh data dari aplikasi. Model umumnya merepresentasikan tabel database, tapi model dapat juga merepresentasikan entri LDAP, RSS feeds, atau file pada sistem. Dalam contoh ini, controller menggunakan model untuk mengambil data pembelian terakhir si Joko dari database.
• Setelah memproses data, controller memberikan hasilnya ke view. View mengambil data akhir dan menyiapkannya untuk ditampilkan ke klien. View dalam CakePHP umumnya berupa format HTML, tapi view dapat juga berupa PDF, dokumen XML, atau JSON object (tergantung kebutuhan Anda).
• Saat view selesai menggunakan data yang diberikan controller untuk menghasilkan tampilan, isi dari view tersebut akan dikembalikan ke peraba si Joko.
hampir setiap request ke aplikasi mengikuti pola ini. Kami akan menambahkan detail lainnya pada halaman selanjutnya, yang mana khusus berhubungan dengan CakePHP, jadi ingat hal ini baik-baik sebelum berlanjut ke halaman selanjutnya.
Kenapa menggunakan MVC? Karena MVC merupakan pola desain perangkat lunak yang tepat dan teruji, yang membuat aplikasi menjadi terjaga, modular, dan berkembang cepat. Mendesain bagian aplikasi menjadi Model, View dan Controller membuat aplikasi lebih kokoh. Fitur baru dapat dengan mudah ditambahkan, dan tampilan baru pada fitur lama merupakan sebuah cuplikan. Desain yang terpisah dan modular membuat pengembang dan desainer dapat bekerja secara serempak, termasuk mempercepat proses prototyping. Pemisahan dengan MVC juga membuat pengembang leluasa melakukan perubahan di suatu bagian tanpa mempengaruhi bagian lainnya.
Jika Anda belum pernah membuat aplikasi dengan cara seperti ini, maka perlu sedikit waktu untuk membiasakannya, tapi kami yakin setelah Anda membuat aplikasi menggunakan CakePHP, Anda tidak akan mau membangun aplikasi dengan cara lain.
2 Prinsip Dasar CakePHP
2.1 Struktur Tata Letak Berkas pada CakePHP
CakePHP tak hanya menyajikan class Controller, Model dan View, tapi CakePHP juga memberikan beberapa class dan object tambahan yang membuat proses pengembangan (development) dalam MVC lebih cepat dan nyaman. Component, Behavior, dan Helper merupakan class-class yang mempermudah penambahan dan penggunaan berulang ke class dasar MVC di dalam aplikasi Anda. Untuk saat ini, kita fokus ke level atas dulu, untuk mengetahui detail penggunaan alat bantu tersebut bisa belakangan.
2.1.2 Ekstensi-ekstensi untuk View
Helper merupakan class yang membantu operasi logik di view. Seperti halnya component yang digunakan di controller, helper merupakan presentasi dari logik yang dapat diakses dan digunakan bersama oleh beberapa view. Salah satu helper inti, yaitu AjaxHelper, membuat request Ajax dalam view lebih mudah.
Sebagian besar aplikasi memiliki kode view yang digunakan berulang kali. CakePHP memberikan kemudahan penggunaan kode view yang berulang untuk layout dan element. Secara default, setiap view dirender oleh controller akan ditempatkan di dalam sebuah layout. Element digunakan saat ada porsi kecil dari content yang ingin digunakan berulang kali oleh beberapa view.
2.1.3 Ekstensi-ekstensi untuk Model
Hampir sama, Behavior digunakan untuk penggunaan model yang memiliki fungsi yang serupa. Misal, jika Anda menyimpan data user dalam struktur pohon, Anda dapat mendefinisikan model User agar bertingkah layaknya sebuah pohon, dan Anda dapat dengan mudah menghapus, menambahkan, atau menggeser node di struktur pohon Anda.
Models juga didukung oleh class lainnya yang disebut DataSource. DataSource merupakan abstraksi untuk model agar model dapat memanipulasi tipe data yang berbeda secara konsisten. Saat sumber utama data di CakePHP berasal dari database, Anda tetap dapat menulis DataSource tambahan untuk model Anda agar direpresentasikan dalam RSS feed, file CSV, entri LDAP, atau event iCal. Dengan menggunakan DataSource, Anda dapat mengasosiasi record dari sumber data yang berbeda: dibanding hanya terbatas pada SQL join, dengan DataSource Anda dapat menegaskan DataSource bahwa model LDAP Anda terasosiasi dengan banyak event iCal.
Seperti halnya controller, model dilengkapi dengan fitur callback juga:
• beforeFind()
• afterFind()
• beforeValidate()
• beforeSave()
• afterSave()
• beforeDelete()
• afterDelete()
Nama dari method ini sudah cukup menjelaskan fungsi dari penggunaannya. Anda dapat memperoleh detail dari callback di bab model.
2.1.4 Ekstensi-ekstensi untuk Aplikasi
Masing-masing controller, helper dan model mempunyai class induk yang dapat digunakan untuk mendefinisikan perubahan aplikasi secara luas. AppController (terletak di /app/app_controller.php), AppHelper (terletak di /app/app_helper) ,dan AppModel (terletak di /app/app_helper.php) merupakan tempat yang tepat untuk mendefinisikan method yang ingin dipakai beberapa controller, helper dan model sekaligus.
Meskipun bukan berupa class atau berkas, route mempunyai peran dalam membuat request yang di tujukan ke CakePHP. Definsi dalam route menjelaskan bagaimana CakePHP memetakan URL ke action di controller. Konfigurasi default mengasumsikan URL “/controller/action/var1/var2” akan memanggil Controller::action($var1, $var2), tapi dengan mengkonfigurasi route Anda bisa mengkustom URL serta bagaimana URL tersebut dibaca oleh aplikasi.
Beberapa fitur dalam sebuah aplikasi dapat dipaketkan secara keseluruhan. Plugin merupakan paket dari model, controller dan view yang dapat di gunakan oleh beberapa aplikasi untuk mengerjakan tujuan khusus. Sistem manajemen pengguna atau blog sederhana merupakan contoh tepat untuk plugin di CakePHP.
2.2 Bentuk Umum Request di CakePHP
Kita telah melewati dasar-dasar dalam CakePHP, jadi kita lanjutkan saja ke pembahasan bagaimana setiap obyek bekerja bersama untuk memenuhi sebuah request. Melanjutkan contoh reqeuest sebelumnya, coba bayangkan si Joko baru saja mengklik taut “Beli buku sekarang!” pada aplikasi CakePHP.

Gambar 2. Bentuk Request Cake pada Umumnya.
Hitam = element yang diperlukan, Abu-abu = element opsional, Biru = callback
1. Joko mengklik taut ke http://www.example.com/books/beli, dan peraba (browser) si Joko membuat request ke web server Anda.
2. Route akan menterjemahkan URL untuk mengekstrak parameter dari request, yaitu: controller, action dan argumen lainnya yang mempengaruhi logik bisnis saat ruquest.
3. Dengan menggunakan route, URL yang direquest dipetakan ke action di controller (sebuah method dalam class controller). Dalam kasus ini method beli() di dalam class BooksController. Callback beforeFilter() di controller dipanggil sebelum logic action controller dieksekusi.
4. Controller dapat menggunakan model untuk memperoleh data aplikasi. Dalam contoh ini, controller menggunakan model untuk mengambil data pembelian terakhir Joko dari database. Penggunaan model tidaklah diperlukan, tapi semua controller CakePHP secara inisial membutuhkan setidaknya satu model.
5. Setelah model memperoleh data, model akan memberikannya ke controller. Callback untuk model dapat dipanggil.
6. Controller dapat menggunakan component untuk memanipulasi data atau melakukan operasi lainnya (misal untuk manipulasi session, autentifikasi, atau mengirim email).
7. Saat controller selesai menggunakan model dan component untuk menyiapkan data, controller dapat memberikan data tersebut ke view dengan pemanggilan method set(). Callback di controller dapat dieksekusi sebelum data dikirim. Kemudian logik di view dieksekusi, element dan/atau helper dapat disertakan (include). Secara default, view dirender di dalam layout.
8. Kemudian callback controller tambahan (seperti afterFilter()) dapat dipanggil. Setelah itu kode view yang dirender diberikan ke peraba si Joko.
2.3 Struktur Berkas (File) di CakePHP
Mari kita lihat seperti apa CakePHP terlihat di luar kotak. Anda sudah mengetahui CakePHP dari bentuk request MVC nya, tapi Anda perlu mengetahui juga bagaimana berkas-berkas dalam CakePHP terorganisir.
• app
• cake
• docs
• index.php
• vendors
Saat Anda mengunduh CakePHP, Anda akan melihat 4 pelipat (folder). Pelipat app merupakan tempat mengerjakan sulap: yaitu tempat berkas-berkas aplikasi Anda ditempatkan. Pelipat cake adalah tempat dimana sulap terjadi. Berkomitmenlah untuk tidak menyunting berkas-berkas di pelipat ini. Kami tidak dapat membantu jika Anda telah memodifikasi inti CakePHP. Pelipat docs adalah tempat informasi penting seperti readme, changelog, dan lisensi. Dan terakhir, pelipat vendors yang merupakan tempat pustaka pihak ketiga (third-party library) yang digunakan dalam aplikasi CakePHP Anda.
2.3.1 Pelipat App
Pelipat app dalam struktur berkas CakePHP merupakan tempat dimana Anda akan sering mengerjakan aplikasi Anda. Mari kita lihat ke dalam pelipat app.
config Tempat berkas konfigurasi CakePHP. Berkas tata koneksi database, bootstrapping, konfigurasi inti dan lainnya sebaiknya ditempatkan disini.
controllers Berisi controller dan component aplikasi Anda.
locale Tempat menyimpan berkas string untuk internasionalisasi.
models Berisi model, behavior dan datasource aplikasi Anda.
plugins Berisi paket plugin.
tmp Tempat menyimpan data sementara. Data sebenarnya yang disimpan tergantung pada bagaimana Anda mengkonfigurasi CakePHP, tapi umumnya pelipat ini digunakan untuk menyimpan deskripsi model, log, dan terkadang informasi session.
vendors Class atau pustaka pihak ketiga sebaiknya ditempatkan di pelipat ini. Dengan begitu, Anda dapat mudah mengkasesnya menggunakan fungsi App::import(‘vendor’, ‘nama’). Jika diperhatikan lebih seksama hal ini terlihat redundan, karena pelipat folder juga terdapat di tingkat atas struktur direktori CakePHP. Kita akan mendapatkan perbedaan diantara keduanya saat pembahasan manajemen multi aplikasi dan tata (setup) sistem yang lebih kompleks.
views Berkas untuk tampilan ditempatkan disini: berkas-berkas element, halaman galat (error page), helper, layout dan view.
webroot Dalam tata produksi, pelipat ini merupakan tempat document root aplikasi Anda. Pelipat di dalamnya juga merupakan tempat untuk berkas CSS stylesheet, gambar (images), dan JavaScript.
2.4 Konvensi CakePHP
Kami adalah penggemar konvensi di atas konfigurasi. Walaupun dibutuhkan waktu untuk mempelajari konvensi CakePHP, Anda telah menghemat waktu untuk perjalanan jauh ke depan: dengan mengikuti konvensi, Anda telah mendapatkan fungsionalitas, dan Anda membebaskan diri Anda dari mimpi buruk melacak berkas konfigurasi. Konvensi membuat sistem pengembangan menjadi seragam sehingga pengembang lain dapat dengan mudah menelusuri dan membantu.
Konvensi CakePHP telah digunakan selama beberapa tahun sebagai pengalaman dan aturan terbaik untuk pengembangan web. Kami menyarankan Anda menggunakan konvensi ini saat melakukan pengembangan dengan CakePHP, tapi banyak prinsip-prinsip konvensi ini yang dapat dengan mudah dioverride – biasanya saat Anda bekerja dengan sistem peninggalan pengembang lain.
2.4.1 Konvensi Nama Berkas dan Class
Secara umum, nama berkas menggunakan garis bawah (underscore) sedangkan nama class menggunakan CamelCase. Misal, class KissesAndaHugsController dapat ditemukan di dalam berkas kisses_and_hugs_controller.php.
Nama class dalam suatu berkas tidaklah harus nama yang serupa dengan nama berkas. Misal, class EmailComponent terdapat di dalam berkas email.php, dan class HtmlHelper terdapat di dalam berkas bernama html.php.
2.4.2 Konvensi Model dan Database
Nama class dari model ditulis CamelCase dan singular. Contoh penamaan class model: Person, BigPerson dan ReallyBigPerson.
Nama tabel untuk model CakePHP ditulis dengan underscore dan plural. Nama tabel untuk model pada contoh di atas adalah people, big_people, dan really_big_people.
Foreign key dalam hubungan asosiasi hasMany, belongsTo atau hasOne secara default dikenali oleh CakePHP dengan nama model terkait (dalam bentuk singular) diikuti dengan _id. Jadi jika baker hasMany cakes, tabel cakes akan merujuk baker dalam tabel bakers melalui foreign key baker_id.
Tabel join yang digunakan dalam relasi hasAndBelongsToMany (HABTM) antara beberapa model sebaiknya diberi nama tabel model yang dijoin secara alpabet (misal apples_zebras, bukan zebras_apples).
Semua tabel model dalam CakePHP yang saling berinteraksi (kecuali tabel join) membutuhkan primary key singular untuk menidentifikasi setiap row secara unik. Jika Anda menginginkan model tabel yang tidak memiliki field primary key, seperti row dari join table posts_tags, konvensi CakePHP adalah ada satu field primary yang ditambahkan ke tabel.
2.4.3 Konvensi Controller
Nama class controller berbentuk plural, CamelCase, dan diakhiri dengan Controller. Contoh konvensi penamaan controller adalah PeopleController dan LatestArticlesController.
Fungsi pertama yang mungkin ditulis adalah fungsi index(). Saat ada request dengan menyertakan controller tanpa parameter action, CakePHP secara default akan mengeksekusi fungsi index() di controller tersebut. Misal, request ke http://www.example.com/apples/ akan memanggil fungsi index() di controller ApplesController, sedangkan request ke http://www.example.com/apples/view/ akan memanggil fungsi view() di controller ApplesController.
Anda juga dapat mengubah akses fungsi di controller dengan menyisipkan underscore di awal nama fungsi tersebut. Jika nama fungsi di controller diawali dengan underscore, maka fungsi tersebut tidak dapat diakses secara langsung dari web melainkan hanya melalui pemanggilan internal. Contohnya:
Plain Text View
_findNewArticles();
}

function _findNewArticles() {
//Logic to find latest news articles
}
}

?>
1. _findNewArticles();
5. }
6.
7. function _findNewArticles() {
8. //Logic to find latest news articles
9. }
10. }
11. ?>
Halaman http://www.example.com/news/latest/ dapat diakses seperti biasa oleh pengguna, tapi saat pengguna mengakses http://www.example.com/news/_findNewArticles/ maka yang didapat adalah galat (error), karena fungsi yang diakses diawali dengan underscore.
Pertimbangan URL untuk Nama Controller
Sebagaima telah Anda lihat, nama controller dengan satu kata akan merujuk ke path URL dengan huruf kecil. Misal, ApplesController (didefinisikan dalam berkas ‘apples_controller.php’) dapat diakses melalui http://example.com/apples.
Nama controller yang lebih dari satu kata menggunakan konvensi camelCase dengan bentuk plural untuk URLnya. Misal, RedApplesController (red_apples_controller.php) akan merujuk ke http://example.com/redApples dan OperatingSystemsController (operating_systems_controller.php) akan merujuk ke http://example.com/operatingSystems
2.4.3.1 Kaitan URL terhadap Penamaan Controller
Sebagaimana Anda lihat, penamaan controller dengan satu kata secara mudah dipetakan ke path URL dalam bentuk lower case. Contohnya, ApplesController (yang mungkin didefinisikan dalam berkas ‘apples_controller.php’) dapat diakses melalui http://example.com/apples.
Nama controller yang terdiri lebih dari satu kata dipetakan ke URL secara camelCased dengan bentuk plural. Contohnya, RedApplesController (red_apples_controller.php) akan dipetakan ke http://example.com/redApples dan OperatingSystemsController (operating_systems_controller.php) akan dipetakan ke http://example.com/operatingSystems.
2.4.4 Konvensi View
File-file template View akan dinamai setelah fungsi controller ditampilkan, dalam suatu bentuk garis bawah. Fungsi getReady() dari kelas PeopleController akan mencari template View di /app/views/orang/get_ready.ctp.
Pola dasarnya adalah /app/views/controller/underscored_function_name.ctp.
Dengan menamai bagian aplikasi Anda menggunakan konvensi CakePHP, Anda mendapatkan fungsi tanpa kerumitan dan batasan pemeliharaan dari konfigurasi. Berikut adalah contoh terakhir yang mengikat konvensi
• Tabel database: “people”
• Kelas Model: “Person”, terletak di /app/models/person.php
• Kelas Controller: “PeopleController”, terletak di /app/controllers/people_controller.php
• Template View, terletak di /app/views/people/index.ctp
Menggunakan konvensi ini, CakePHP mengetahui bahwa permintaan untuk http://example.com/people/ peta untuk panggilan pada fungsi indeks() dari PeopleController, di mana model Person tersedia secara otomatis (dan secara otomatis terikat dengan ‘person’ tabel dalam database), dan mengubahnya ke file. Bagaimanapun tidak ada hubungan yang telah dikonfigurasi dengan cara apa pun selain dengan membuat kelas-kelas dan file-file yang Anda butuhkan untuk membuatnya.
Sekarang Anda telah diperkenalkan kepada dasar CakePHP, Anda dapat mencoba menjalankan melalui Tutorial Blog CakePHP untuk melihat hal-hal tersebut berjalan bersama.
3 Pengembangan dengan CakePHP
3.1 Hal – hal yang dibutuhkan
• HTTP Server. Apache dengan mod_rewrite lebih dianjurkan, tapi tidak wajib.
• PHP 4.3.2 atau versi di atasnya. Ya, CakePHP dapat berfungsi di PHP 4 dan 5.
Secara teknis database engine tidak dibutuhkan, tapi kami rasa kebanyakan aplikasi membutuhkannya. CakePHP mendukung beragam database storage engine:
• MySQL (4 atau versi di atasnya)
• PostgreSQL
• Firebird DB2
• Microsoft SQL Server
• Oracle
• SQLite
• ODBC
• ADOdb
3.2 Persiapan Instalasi
CakePHP dapat diinstall dengan mudah dan cepat. Persyaratan minimum yang diperlukan hanyalah server web dan kopian dari Cake, cukup itu saja. Manual ini hanya berfokus pada setting di Apache (karena merupakan server web yang paling sering digunakan), kamu juga bisa mengkonfigurasi CakePHP untuk berjalan di berbagai macam server web seperti LightHTTPD atau Microsoft IIS
Persiapan Instalasi terdiri dari beberapa langkah:
• Download berkas CakePHP
• Konfigurasi server web-mu untuk membaca skrip php jika perlu
• Mengecek ijin akses berkas
3.2.1 Mendapatkan CakePHP
Ada dua cara untuk mendapatkan salinan terbaru CakePHP. Pertama, Anda dapat mengunduh arsip dalam format kompresi (zip/tar.gz/tar.bz2), atau Anda dapat melakukan check out kode langsung dari repositori (SVN) kami.
Untuk mendapatkan salinan terbaru, kunjungi web site kami di http://www.cakephp.org. Klik taut “Download Now!” yang besar itu. Unduhan CakePHP dihost di CakeForge, dan Anda dapat juga mengunjungi web site proyek – proyek seputar CakePHP di http://cakeforge.org/projects/cakephp.
Jika Anda ingin bekerja dengan kode terbaru, silahkan cek unduhan malaman (nightly build) kami di http://cakephp.org/downloads/index/nightly. Kode malaman CakePHP adalah kode yang stabil, dan meliputi perbaikan antar rilis.
Untuk mengambil salinan terbaru dari repositori SVN kami, terhubunglah ke https://svn.cakephp.org/repo/branches/1.2.x.x .
3.2.2 Hak Akses
CakePHP mwnggunakan direktori /app/tmp untuk sejumlah operasi yang berbeda. Beberapa contohnya antara lain : deskripsi model, cache view, dan infomasi session.
Dengan demikian, pastikan direktori /app/tmp di instalasi cake Anda dapat ditulisi oleh user web server.
3.3 Instalasi
Menginstal CakePHP bisa saja semudah menempatkannya di document root web server Anda, tetapi bisa juga menjadi sekompleks dan sefleksibel yang Anda inginkan. Pada bagian ini akan dibahas tiga tipe instalasi CakePHP: pengembangan (development), produksi, dan mahir (advance).
• Pengembangan (Development): cara instalasi yang mudah, URL aplikasi meliputi nama direktori tempat instalasi CakePHP, dan tidak cukup aman.
• Produksi: Memerlukan akses untuk mengkonfigurasi document root web server, URL yang rapih, sangat aman.
• Mahir (Advance): Dengan beberapa konfigurasi, Anda dapat menempatkan direktori-direktori penting CakePHP ke beberapa bagian filesystem yang berbeda, sehingga memungkinkan satu direktori inti CakePHP digunakan oleh banyak aplikasi CakePHP.
3.3.1 Development
Tempatkan instalasi cake di dalam document root web server Anda. Misal, asumsikan document root web server Anda adalah /var/www/html, tata letak direktori akan terlihat di filesystem seperti ini:
• /var/www/html
o /cake_1_2
 /app
 /cake
 /docs
 /index.php
 /vendors
Untuk melihat aplikasi CakePHP Anda, arahkan perambah (browser) Anda ke http://www.example.com/cake_1_2/
3.3.2 Produksi
Untuk menggunakan tata produksi, Anda membutuhkan hak akses untuk merubah document root web server Anda. Memilih penggunaan tata produksi berarti keseluruhan domain berlaku sebagai satu aplikasi CakePHP.
Tata produksi menggunakan layout seperti berikut:
• /path_ke_instalasi_cake/
o /app
 /webroot (direktori ini di set sebagai the document root web server)
o /cake
o /docs
o /index.php
o /vendors
Jika aplikasi ini akan di hostingkan dalam Apache, direktif DocumentRoot untuk domain kurang lebih terlihat seperti ini:
DocumentRoot /path_ke_instalasi_cake/app/webroot
Untuk melihat aplikasi CakePHP Anda, arahkan peraba Anda ke http://www.example.com.
3.3.3 Instalasi Advance
Ada beberapa situasi dimana Anda ingin menempatkan direktori CakePHP pada tempat yang berbeda pada filesystem. Mungkin dikarenakan oleh keterbatasan pada host berbagi, atau Anda hanya menginginkan sebagian kecil aplikasi Anda berbagi pustaka Cake yang sama. Bagian ini menjelaskan bagaimana menempatkan direktori CakePHP Anda tersebar pada filesystem.
Perlu diketahui, bahwa ada tiga bagian penting dalam aplikasi Cake:
1. Pustaka inti CakePHP, di dalam /cake.
2. Kode aplikasi Anda, di dalam /app.
3. Webroot aplikasi, umumnya di dalam /app/webroot.
Setiap direktori ini dapat ditaruh dimana saja pada file system Anda, dengan pengecualian pada webroot, yang mana harus dapat diakses oleh web server Anda. Anda bahkan dapat memindahkah direktori webroot keluar dari direktori app selama Anda memberitahu Cake dimana lokasinya.
Untuk mengkonfigurasi instalasi Cake Anda, Anda perlu menyunting beberapa perubahan di /app/webroot/index.php. Ada tiga konstanta yang perlu Anda sunting: ROOT, APP_DIR, and CAKE_CORE_INCLUDE_PATH.
• ROOT perlu diset ke path direktori tempat direktori app berada.
• APP_DIR perlu diset ke path direktori app Anda.
• CAKE_CORE_INCLUDE_PATH perlu diset ke path direktori pustaka CakePHP Anda.
Mari kita coba melalui sebuah contoh sehingga Anda dapat melihat seperti apa instalasi advance dalam praktik. Bayangkan jika saya ingin menata CakePHP bekerja seperti berikut:
• Pustaka inti CakePHP akan ditempatkan di /usr/lib/cake.
• Direktori webroot aplikasi saya berada di /var/www/mysite/.
• Direktori app aplikasi saya ditempatkan di dalam /home/me/mysite.
Dengan diberikan tipe penataan ini, saya perlu menyunting berkas webroot/index.php (yang mana berada di /var/www/mysite/index.php, dalam contoh ini) menjadi seperti ini:
Plain Text View
// /app/webroot/index.php (partial, comments removed)

if (!defined(‘ROOT’)) {
define(‘ROOT’, DS.’home’.DS.’me’);
}

if (!defined(‘APP_DIR’)) {
define (‘APP_DIR’, ‘mysite’);
}

if (!defined(‘CAKE_CORE_INCLUDE_PATH’)) {
define(‘CAKE_CORE_INCLUDE_PATH’, DS.’usr’.DS.’lib’.DS.’cake’);
}
1. // /app/webroot/index.php (partial, comments removed)
2. if (!defined(‘ROOT’)) {
3. define(‘ROOT’, DS.’home’.DS.’me’);
4. }
5. if (!defined(‘APP_DIR’)) {
6. define (‘APP_DIR’, ‘mysite’);
7. }
8. if (!defined(‘CAKE_CORE_INCLUDE_PATH’)) {
9. define(‘CAKE_CORE_INCLUDE_PATH’, DS.’usr’.DS.’lib’.DS.’cake’);
10. }
Direkomendasikan untuk menggunakan konstanta DS dibandingkan simbol slash untuk delimeter path berkas. Hal ini mencegah eror dari berkas yang tidak ada akibat salah delimeter, dan hal ini membuat kode Anda lebih portable.
3.3.3.1 Path Class Tambahan
Kadang kala berguna untuk dapat berbagi class-class MVC antar aplikasi pada sistem yang sama. Jika Anda ingin controller yang sama dalam dua aplikasi Anda dapat menggunakan bootstrap.php CakePHP untuk menyediakan class tambahan ini ke view.
Dalam bootstrap.php, definisikan beberapa variabel bernama khusus agar CakePHP tahu tempat lain mencari class-class MVC:
Plain Text View
$viewPaths = array();
$controllerPaths = array();
$modelPaths = array();
$helperPaths = array();
$componentPaths = array();
$behaviorPaths = array();
1. $viewPaths = array();
2. $controllerPaths = array();
3. $modelPaths = array();
4. $helperPaths = array();
5. $componentPaths = array();
6. $behaviorPaths = array();
Setiap variabel khusus ini dapat diset menjadi array dari absolute path filesystem dimana class tambahan dapat ditemukan saat direquest. Pastikan setiap path yang didefinisikan terdapat trailing slash.
3.3.4 Apache dan mod_rewrite
Sementara CakePHP ditulis untuk bekerja dengan mod_rewrite di luar kotak- dan biasanya tanpa masalah-kami mengetahui ada beberapa pengguna berjuang mendapatkan semua itu bekerja secara apik di sistem mereka. Inilah beberapa hal yang perlu Anda coba untuk mendapatkannya bekerja secara tepat:
• Pastikan .htaccess override diperbolehkan. Dalam httpd.conf, Anda perlu memiliki bagian yang mendefinisikan Directory Anda pada server. Pastikan AllowOverride diset ke All untuk DocumentRoot yang sesuai.
• Pastikan Anda menyunting httpd.conf sistem, bukan httpf.conf user- atau site-tertentu.
• Apakah CakePHP tidak menemukan berkas .htaccess yang dibutuhkannya? Hal ini kadang terjadi saat menyalin atau memindahkan karena beberapa sistem operasi memperlakukan berkas dengan awalan ‘.’ sebgai berkas tersembunyi. Pastikan salinan CakePHP Anda berasal dari bagian unduhan di situs atau repsitori SVN kami, dan telah di mekarkan secara benar.
• Pastikan Anda memuat mod_rewrite secara benar. Anda akan mendapatkan sesuatu seperti LoadModule rewrite_module libexec/httpd/mod_rewrite.so (pengguna Linux/Unix perlu juga melihat sesuatu seperti AddModule mod_rewrite.c) dalam httpd.conf Anda. Juga pastikan tidak berupa komentar (dengan penambahan # di awal). Restart Apache untuk memastikan tata conf Anda aktif.
• Jika Anda menginstal CakePHP ke dalam direktori pengguna (http://example.com/~username), Anda perlu mengubah berkas .htaccess dalam base direktori tempat instalasi CakePHP Anda. Cukup tambahkan baris “RewriteBase /~myusername/”.
3.3.5 Lighttpd and mod_magnet
While lighttpd features a rewrite module, it is not an equivalent of Apache’s mod_rewrite. Full mod_rewrite functionalities are spread amongst Lighttpd’s mod_rewrite, mod_magnet and mod_proxy.
CakePHP, however, mostly needs mod_magnet to redirect requests in order to work with pretty URLs.
To use pretty URLs with CakePHP and Lighttp, place this lua script in /etc/lighttpd/cake.
Plain Text View
— little helper function
function file_exists(path)
local attr = lighty.stat(path)
if (attr) then
return true
else
return false
end
end
function removePrefix(str, prefix)
return str:sub(1,#prefix+1) == prefix..”/” and str:sub(#prefix+2)
end

— prefix without the trailing slash
local prefix = ”

— the magic 😉
if (not file_exists(lighty.env[“physical.path”])) then
— file still missing. pass it to the fastcgi backend
request_uri = removePrefix(lighty.env[“uri.path”], prefix)
if request_uri then
lighty.env[“uri.path”] = prefix .. “/index.php”
local uriquery = lighty.env[“uri.query”] or “”
lighty.env[“uri.query”] = uriquery .. (uriquery ~= “” and “&” or “”) .. “url=” .. request_uri
lighty.env[“physical.rel-path”] = lighty.env[“uri.path”]
lighty.env[“request.orig-uri”] = lighty.env[“request.uri”]
lighty.env[“physical.path”] = lighty.env[“physical.doc-root”] .. lighty.env[“physical.rel-path”]
end
end
— fallthrough will put it back into the lighty request loop
— that means we get the 304 handling for free. 😉
1. — little helper function
2. function file_exists(path)
3. local attr = lighty.stat(path)
4. if (attr) then
5. return true
6. else
7. return false
8. end
9. end
10. function removePrefix(str, prefix)
11. return str:sub(1,#prefix+1) == prefix..”/” and str:sub(#prefix+2)
12. end
13. — prefix without the trailing slash
14. local prefix = ”
15. — the magic 😉
16. if (not file_exists(lighty.env[“physical.path”])) then
17. — file still missing. pass it to the fastcgi backend
18. request_uri = removePrefix(lighty.env[“uri.path”], prefix)
19. if request_uri then
20. lighty.env[“uri.path”] = prefix .. “/index.php”
21. local uriquery = lighty.env[“uri.query”] or “”
22. lighty.env[“uri.query”] = uriquery .. (uriquery ~= “” and “&” or “”) .. “url=” .. request_uri
23. lighty.env[“physical.rel-path”] = lighty.env[“uri.path”]
24. lighty.env[“request.orig-uri”] = lighty.env[“request.uri”]
25. lighty.env[“physical.path”] = lighty.env[“physical.doc-root”] .. lighty.env[“physical.rel-path”]
26. end
27. end
28. — fallthrough will put it back into the lighty request loop
29. — that means we get the 304 handling for free. 😉
If you run your CakePHP installation from a subdirectory, you must set prefix = ‘subdirectory_name’ in the above script.
Then tell Lighttpd about your vhost:
$HTTP[“host”] =~ “example.com” {
server.error-handler-404 = “/index.php”

magnet.attract-physical-path-to = ( “/etc/lighttpd/cake.lua” )

server.document-root = “/var/www/cake-1.2/app/webroot/”

# Think about getting vim tmp files out of the way too
url.access-deny = (
“~”, “.inc”, “.sh”, “sql”, “.sql”, “.tpl.php”,
“.xtmpl”, “Entries”, “Repository”, “Root”,
“.ctp”, “empty”
)
}
3.3.6 Fire It Up
Baiklah, mari kita lihat CakePHP beraksi. Tergantung pada penataan yang Anda gunakan, Anda perlu mengarahkan perambah Anda ke http://example.com atau http://example.com/cake_instal/. Pada langkah ini, Anda akan melihat default home CakePHP, dan pesan yang memberitahukan status koneksi database Anda saat ini.
Selamat! Anda siap membuat aplikasi CakePHP perdana Anda.
3.4 Konfigurasi
Di CakePHP detail konfigurasi database disimpan di dalam sebuah file, yaitu di app/config/database.php. Contoh dari file konfigurasi database dapat dilihat di app/config/database.php.default. Sebuah konfigurasi yang sudah benar seharusnya aan terlihat kurang lebih seperti ini :
Plain Text View
var $default = array(‘driver’ => ‘mysql’,
‘persistent’ => false,
‘host’ => ‘localhost’,
‘login’ => ‘cakephpuser’,
‘password’ => ‘c4k3roxx!’,
‘database’ => ‘my_cakephp_project’,
‘prefix’ => ”);
1. var $default = array(‘driver’ => ‘mysql’,
2. ‘persistent’ => false,
3. ‘host’ => ‘localhost’,
4. ‘login’ => ‘cakephpuser’,
5. ‘password’ => ‘c4k3roxx!’,
6. ‘database’ => ‘my_cakephp_project’,
7. ‘prefix’ => ”);
Secara default, $default lah yang akan digunakan, kecuali disebutkan lain di dalam $useDbConfig di dalam sebuah model. Sebagai contoh, jika aplikasi saya memiliki database legacy sebagai tambahan yang di default, saya bisa menggunakannya di dalam model dengan membuat koneksi baru ke database $legacy yang array nya kurang lebih sama dengan array $default. Caranya adalah dengan menset var $useDbConfig = `legacy` pada model bersangkutan.
Isilah nilai / pasangan isi di dalam array konfigurasi sesuai kebutuhan anda.
Key Value
driver Nama dari driver database yang akan digunakan disini. Examples: mysql, postgres, sqlite, pear-drivername, adodb-drivername, mssql, oracle, or odbc.
persistent Perlu tidaknya menggunakan koneksi secara persistent ke dalam database.
host hostname dari server database (atau alamat IP address nya).
login Username yang digunakan untuk login ke dalam database.
password Password yang digunakan untuk login ke dalam database.
database Nama dari database yang akan digunakan.
prefix (optional) Sebuah String yang digunakan sebagai prefiks dari setiap tabel di dalam database. Jika anda tidak menggunakan prefiks pada nama tabel anda, kosongkan bagian ini.
port (optional) Port TCO atau Unix socket melakukan koneksi ke database server.
encoding Menentukan karakter apa yang digunakan untuk mengirimkan pernyataan SQL ke server.
schema Digunakan pada database PostgreSQL untuk menentukan schema mana yang akan digunakan.
Setting prefix adalah untuk tabel, bukan model. Sebagai contoh, jika anda membuat tabel join untuk Apple dan Flavor model anda, anda menamakannya prefix_apples_flavors (not prefix_apples_prefix_flavors), dan menset prefix setting menjadi ‘prefix_’.
Sampai disini, anda mungkin ingin melihat CakePHP Conventions. Penamaan yang benar untuk table anda (dan penambahkan beberapa kolom) bisa membawa anda ke fungsionalitas yang membebaskan, sehingga anda tidak perlu melakukan konfigurasi. Sebagai contoh, jika anda menamakan tabel database anda big_boxes, model anda BigBox, controller anda BigBoxesController, semuanya akan bekerja secara bersama – sama secara otomatis (tanpa konfigurasi). Dengan aturan konvensi, gunakan garis bawah, huruf kecil, dan bentuk jamak kata untuk setiap nama tabel di dalam database. Contoh : bakers, pastry_stores, savory_cakes.
3.4.2 Konfigurasi Utama
Di dalam CakePHP, konfigurasi aplikasi terletak di /app/config/core.php. Isi file ini adalah kumpulan definisi variabel dari class Configure dan definisi konstanta yang menentukan bagaimana aplikasi anda nantinya akan bekerja. Sebelum kita melihat lebih dalam mengenai variabel ini, anda perlu harus terbiasa dulu dengan Configure, class registry untuk konfigurasi CakePHP.
3.4.3 Kelas Konfigurasi
Walaupun beberapa hal perlu dikonfigurasi di dalam CakePHP, kadangkala akan lebih baik jika anda memiliki konfigurasi tersendiri untuk aplikasi anda. Dulu mungkin anda harus mendefinisikan konfigurasi custom atau konstanta di dalam beberapa berkas (file). Hal ini membuat anda harus meng-include-kan berkas konfigurasi tersebut setiap kalau anda memerlukan variabel atau konstanta di dalamnya.
Kelas Configure baru dari CakePHP dapat digunakan untuk menyimpan data tersebut, dan mengambil nilai tertentu dari aplikasi atau runtime. Hati – hati, kelas ini memperbolehkan untuk menyimpan apa saja di dalamnya, dan menggunakannya di bagian lain dalam kode anda (sebuah godaan untuk merusak pola MVC, sedangkan CakePHP didesain untuk itu). Tujuan utama dari kelas Configure ini adalah untuk mengumpulkan variabel – variabel yang bisa disebar (share) di banyak objek. Selalu ingat untuk tetap mengikuti aturan “convention over configuration” dan anda tidak akan berakhir dengan merusak struktur MVC yang sudah dirancang.
Kelas ini bertindak sebagai singleton dan method – method di dalamnya bisa dipanggil darimana saja di dalam aplikasi anda (dalam konteks statis).
Plain Text View

1.
3.4.3.1 Configure Methods
3.4.3.1.1 write
write(string $key, mixed $value)
Gunakan write() untuk menyimpan data di dalam konfigurasi aplikasi anda.
Plain Text View
Configure::write(‘Company.name’,’Pizza, Inc.’);
Configure::write(‘Company.slogan’,’Pizza for your body and soul’);
1. Configure::write(‘Company.name’,’Pizza, Inc.’);
2. Configure::write(‘Company.slogan’,’Pizza for your body and soul’);
penggunaan notasi titik di dalam parameter $key. Anda bisa menggunakan notasi ini untuk mengorganisir konfigurasi anda dalam satu gruo logikal.
Contoh di atas juga bisa ditulis dalam satu panggilan :
Plain Text View
Configure::write(
‘Company’,array(‘name’=>’Pizza, Inc.’,’slogan’=>’Pizza for your body and soul’)
);
1. Configure::write(
2. ‘Company’,array(‘name’=>’Pizza, Inc.’,’slogan’=>’Pizza for your body and soul’)
3. );
Anda bisa menggunakan Configure::write(‘debug’, $int) untuk berpindah antara mode debug dan mode produksi secara langsung (on the fly). Hal ini akan berguna terutama untuk AMF atau interaksi SOAP dimana melakukan debugging informasi bisa menyebabkan masalah parsing.
3.4.3.1.2 read
read(string $key = ‘debug’)
Digunakan untuk membaca konfigurasi data dari aplikasi. Defaultnya adalah nilai (value) penting dari debug CakePHP. Koola sebuah kunci (key) diberikan, data dikembalikan sebagai return value dari fungsi ini. Dengan menggunakan contoh write() di atas, sekarang kita bisa membaca data tersebut :
Plain Text View
Configure::read(‘Company.name’); //yields: ‘Pizza, Inc.’
Configure::read(‘Company.slogan’); //yields: ‘Pizza for your body and soul’

Configure::read(‘Company’);

//yields:
array(‘name’ => ‘Pizza, Inc.’, ‘slogan’ => ‘Pizza for your body and soul’);
1. Configure::read(‘Company.name’); //yields: ‘Pizza, Inc.’
2. Configure::read(‘Company.slogan’); //yields: ‘Pizza for your body and soul’
3.
4. Configure::read(‘Company’);
5.
6. //yields:
7. array(‘name’ => ‘Pizza, Inc.’, ‘slogan’ => ‘Pizza for your body and soul’);
3.4.3.1.3 delete
delete(string $key)
Digunakan untuk menghapus informasi dari konfigurasi aplikasi.
Plain Text View
Configure::delete(‘Company.name’);
1. Configure::delete(‘Company.name’);
3.4.3.1.4 load
load(string $path)
Gunakan method ini untuk mengambil informasi konfigurasi dari sebuah berkas tertentu.
Plain Text View
// /app/config/messages.php:

1. // /app/config/messages.php:
2.
7.
8.
Setiap pasangan key-value direpresentasikan di dalam berkas dengan array $config. Variabel – variabel lain di dalam berkas tersebut akan diabaikan oleh fungsi load().
3.4.3.1.5 versi
version()
Mengembalikan informasi versi CakePHP yang digunakan pada aplikasi saat ini.
3.4.3.2 Variabel Konfigurasi Utama CakePHP
Kelas Configure digunakan untuk mengatur kumpulan dari variabel konfigurasi utama CakePHP. Variabel – variabel ini dapat ditemukan di app/config/core.php. Deskripsi dari tiap variabel dan apa pengaruhnya terhadap aplikasi CakePHP anda dijelaskan di bawah ini.
Variabel Configure Deskripsi
debug Merubah keluaran (output) dari debugging CakePHP.

0 = Mode produksi, tidak ada keluaran.
1 = Pesan error dan peringatan ditampilkan.
2 = Pesan error, peringatan, dan SQL ditampilkan.
3 = Pesan error, peringatan, SQL, dan dump lengkap dari controller ditampilkan.
App.baseUrl Hilangkan komentar (Un-comment) definisi ini, jika anda tidak berencana untuk menggunakan mod_rewrite Apache dengan CakePHP. Jangan lupa untuk menghapus berkas .htaccess anda.
Routing.admin Hilangkan tanda komentar pada definisi ini jika anda ingin memanfaatkan admin routes dari CakePHP. Ganti variabel ini dengan admin route yang ingin anda gunakan. Hal ini akan dibahas lebih lanjut nanti.
Cache.disable Jika di set true, maka caching akan dimatikan untuk seluruh bagian website.
Cache.check Jika di set true, mengaktifkan cache untuk view. Pengaktifan masih diperlukan di dalam controller, tetapi variabel ini juga mengaktifkan deteksi terhadap setting tersebut.
Session.save Memberitahu CakePHP mekanisme penyimpanan session yang mana yang akan digunakan.

php = Menggunakan penyimpanan session default PHP.
cake = Menyimpan data session di /app/tmp
database = Menyimpan data session di dalam database. Pastikan tabel tersebut sudah di set up menggunakan file SQL yang terletak di /app/config/sql/sessions.sql.
Session.table Nama tabel yang menyimpan informasi session (tidak termasuk prefiks).
Session.database Nama database yang menyimpan session.
Session.cookie Nama cookie yang digunakan untuk melacak session.
Session.timeout Standar timeout session (dalam detik). Nilai sebenarnya tergantung dari Security.level.
Session.start Jika di set true, maka session akan otomatis dijalankan.
Session.checkAgent Jika diset false, session CakePHP tidak akan melakukan pengecekan untuk memastikan user agent tidak berubah antar request.
Security.level Level keamanan dari CakePHP. Timeout session didefinisikan di ‘Session.timeout’, dikalikan dengan nilai yang tertera disini.

Nilai – nilai yang valid:
‘high’ = x 10
‘medium’ = x 100
‘low’ = x 300

‘high’ juga ‘medium’ mengaktifkan session.referer_check

Security.salt String acak yang digunakan dalam security hashing.
Acl.classname, Acl.database Konstanta yang digunakan oleh fungsi – fungsi dari Access Control List Constants CakePHP. Silahkan lihat bab Access Control list untuk informasi lebih lanjut.
Konfigurasi cache juga ada di core.php – Kita akan membahas ini belakangan.
Kelas Configure dapat digunakan untuk membaca dan menulis setting konfigurasi utama secara langsung saat dijalankan (on the fly). Hal ini akan sangat berguna terutama jika anda ingin merubah setting debug untuk bagian tertentu saja dari aplikasi anda.
3.4.3.3 Konstanta Konfigurasi
Ketika kebanyakan opsi konfigurasi ditangani oleh Configure, ada beberapa konstanta yang digunakan CakePHP selama proses berlangsung (runtime).
Konstanta Deskripsi
LOG_ERROR Konstanta Error. Digunakan untuk membedakan error logging dan debugging. Saat ini PHP mendukung LOG_DEBUG.
3.4.4 The App Class
3.4.4.1 Using App::import()
App::import($type, $name, $parent, $search, $file, $return);
At first glance App::import seems complex, however in most use cases only 2 arguments are required.
3.4.4.2 Importing Core Libs
Core libraries such as Sanitize, and Xml can be loaded by:
Plain Text View
App::import(‘Core’, ‘Sanitize’);
1. App::import(‘Core’, ‘Sanitize’);
The above would make the Sanitize class available for use.
3.4.4.3.1 Loading Controllers
App::import(‘Controller’, ‘MyController’);
Calling App::import is equivalent to require’ing the file. It is important to realize that the class subsequently needs to be initialized.
Plain Text View
constructClasses();
?>
1. constructClasses();
8. ?>
3.4.4.3.2 Loading Models