Instalasi Awal CakePHP di LINUX Opensuse dengan Virtual Host
Saya mengasumsikan anda telah memiliki Apache MySQL dan PHP 4/5 di PC/Laptop anda (LAMPP), bila belum maka anda dapat mengikuti tutorial instalasi APACHE,PHP dan MySQL (Opensuse LAMP) di sini:
- http://www.how2forge.org/installing-apache2-with-php5-and-mysql-support-on-opensuse-11.3-lamp
- http://www.susegeek.com/internet-browser/install-configure-lamp-apachemysqlphp-in-opensuse-110/
- http://www.novell.com/coolsolutions/feature/595.html
- atau di sini http://www.howtoforge.com/installing-apache2-with-php5-and-mysql-support-on-opensuse-11.2-lamp
Pertama-tama pastinya download dulu Cakephp di cakephp.org ,
Konfigurasi Virtual Host Untuk CakePHP di Linux Opensuse
- Copy folder cakephp hasil ekstraksi ke directory dimana saja (kan kita pake Virtual Host nantinya)
- /app/tmp folder ini harus bisa di akses oleh web server, cara gampangnya chmod -R 777 /app/tmp , kalo di windows udah full akses biasanya, berbagai macam cache dan temporary file akan disimpan disini nantinya.
- saatnya membuat Virtual Host, pertama tama buka /etc/hosts dengan editor misal /etc/gedit hosts , setelah terbuka maka tambahkan baris berikut (This file describes a number of hostname-to-address):
127.0.0.2:80 www.cakeajah.com
//buka browser ketik alamat www.cakeajah.com (apa yg terjadi ??)
- sekarang buka /etc/apache2/vhosts.d/ di bawah folder ini kita akan menyimpan .conf coba buat file namanya /etc/apache2/vhosts.d/vhost-cakeajah.conf
- Buka vhost-cakeajah.conf masukan konfigurasi :
<VirtualHost 127.0.0.2:80>
ServerAdmin webmaster@cakephp.com
ServerName http://www.cakeajah.com
DocumentRoot /srv/www/vhosts/cakephp/app/webroot/
ErrorLog /var/log/apache2/server_www_1s.log
CustomLog /var/log/apache2/access_www_1s.log combined
HostnameLookups Off
UseCanonicalName On
ServerSignature On
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory “/srv/www/vhosts/cakephp/app/webroot/”>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
- restart apache2 : service apache2 restart
- Di browser ketik: http://www.cakeajah.com
- <Bersambung…>
validasi variable dengan fungsi milik PHP : filter_var
Untuk melakukan validasi pada sebuah variable secara langsung di controller dapat menggunakan fungsi yang kita buat sendiri atau copy paste kode orang dari hasil googling yang kadang cukup panjang dan berisi REGEX yang cukup memusingkan, tetapi PHP sendiri telah memiliki fungsi khusus untuk ini yang sangat simpel.
contoh tadi saya membuat validasi sederhana untuk email pada controller, seperti ini:
Validasi Email
if (filter_var($e_mail, FILTER_VALIDATE_EMAIL)) {
// $e_mail berisi email
} else {
// $e_mail berisi bukan email
}
Validasi BOOLEAN
- FILTER_VALIDATE_BOOLEAN
Validasi Integer
- FILTER_VALIDATE_INT
Validasi URL
- FILTER_VALIDATE_URL
contoh lain:
<?php
var_dump(filter_var(‘example.com’, FILTER_VALIDATE_URL, FILTER_FLAG_SCHEME_REQUIRED));
var_dump(filter_var(‘example.com’, FILTER_VALIDATE_URL));
?>
Struktur CakePHP
Struktur CakePHP
CakePHP memiliki fitur Controller, Model, dan View dan juga beberapa kelas tambahan dan bagian bagiannya yang membuat pengembangan web dengan konsep MVC menjadi lebih cepat dan lebih menyenangkan. Component, Behavior, dan Helper merupakan kelas yang menyediakan ekstensibilitas dan reusabilitas dengan cepat menambahkan fungsionalitas ke kelas MVC dasar dalam aplikasi Anda. Sekarang kita akan tinggal di tingkat yang lebih tinggi, sehingga dapat mencari rincian tentang cara menggunakan fasilitas ini di kemudian hari.
Controller Extensions (“Components”)
Components atau Komponen adalah sebuah kelas yang membantu dalam logika pada controller. Jika Anda memiliki beberapa logika Anda ingin berbagi antara controller (atau aplikasi), komponen biasanya cocok. Sebagai contoh, kelas EmailComponent inti membuat membuat dan mengirim email menjadi lebih mudah. Alih-alih menulis metode controller dalam kontroler logika tunggal yang melakukan ini, Anda dapat membuat paket logika sehingga bisa dibagi.
Controller juga dilengkapi dengan callback. Callback ini tersedia untuk Anda gunakan, kalau-kalau Anda harus memasukkan beberapa logika antara operasi inti CakePHP. Callback yang tersedia diantaranya:
- BeforeFilter (), dieksekusi sebelum aksi kontroler logika
- BeforeRender (), dieksekusi setelah logik controller, tapi sebelum view dirender
- AfterFilter (), dieksekusi setelah semua logika controller, termasuk membuat tampilan. Mungkin tidak ada perbedaan antara afterRender () dan afterFilter () kecuali Anda telah secara manual membuat panggilan ke render () dalam aksi kontroler Anda dan telah memasukkan beberapa logika setelah panggilan itu.
View Extensions (“Helper”)
Helper adalah kelas yang membantu dalam logika tampilan. seperti komponen yang digunakan di controller, helper memungkinkan logika presentasi yang dapat diakses dan dibagi antara tampilan, Salah satu helper inti, AjaxHelper, membuat permintaan Ajax dalam tampilan web jauh lebih mudah.
Sebagian besar aplikasi memiliki kode view yang digunakan berulang kali. CakePHP tampilan memfasilitasi penggunaan kembali kode dengan tata letak dan element. Secara default, setiap view dirender oleh controller ditempatkan di dalam sebuah layout.
Model Extensions (“Behavior”)
Mirip dengan Component dan Helper, “Behavior” bekerja sebagai cara untuk menambahkan fungsionalitas umum antara model. Misalnya, jika Anda menyimpan data user dalam struktur pohon, Anda dapat menentukan “User” anda model sebagai berperilaku seperti struktur pohon/ bertingkat, dan mendapatkan fungsi bebas untuk menghapus, menambah, dan menggeser node di struktur yang mendasari Anda.
Model juga didukung oleh kelas lain yang disebut DataSource. DataSource merupakan abstraksi yang memungkinkan model untuk memanipulasi tipe data yang berbeda secara konsisten. Sedangkan sumber utama data dalam aplikasi CakePHP sering berupa database, Anda dapat menulis DataSource tambahan yang memungkinkan model Anda untuk mewakili RSS feed, file CSV, entri LDAP.
Sama seperti controller, model juga dilengkapi dengan callback:
- BeforeFind ()
- AfterFind ()
- BeforeValidate ()
- BeforeSave ()
- AfterSave ()
- BeforeDelete ()
- AfterDelete ()
Nama-nama metode ini harus deskriptif cukup untuk membuat anda tahu apa yang mereka lakukan. Anda dapat menemukan rincian nanti dalam bab model.
Controller,view dan model masing-masing memiliki sebuah kelas induk yang dapat digunakan untuk mendefinisikan perubahan aplikasi-lebar. AppController (terletak di / app / app_controller.php), AppHelper (terletak di / app / app_helper) dan AppModel (terletak di / app / app_model.php) adalah tempat yang bagus untuk menempatkan method yang ingin berbagi antara semua controller, helper atau model.
Routing
Meskipun mereka bukan merupkan file class , Route berperan dalam permintaan yang dibuat untuk CakePHP. definisi Route memberitahu CakePHP bagaimana bentuk URL pada peta aplikasi untuk menentukan tindakan pada controller. Perilaku default mengasumsikan bahwa URL “/ controller/action/var1/var2” peta untuk Controller:: action ($ var1, $ var2), tetapi Anda dapat menggunakan rute untuk menyesuaikan URL dan bagaimana mereka dibaca oleh aplikasi Anda.
Beberapa fitur dalam sebuah aplikasi dapat dipaketkan secara keseluruhan. Plugin merupakan paket dari model, controller dan view yang menyelesaikan tujuan tertentu yang dapat aplikasikan secara ganda. Sistem manajemen pengguna atau blog sederhana mungkin cocok untuk plugin CakePHP.
http://book.cakephp.org/view/879/Beginning-With-CakePHP#!/view/897/Application-Extensions
Prinsip mendasar dari CakePHP
CakePHP menyediakan dasar yang kuat untuk aplikasi Anda. Ia bisa menangani setiap aspek, dari permintaan awal pengguna hinggamelakukan render dari tampilan sebuah halaman web. Dan karena kerangka yang dibuat mengikuti prinsip MVC, ini memungkinkan Anda untuk dengan mudah menyesuaikan dan memperluas sebagian besar aspek aplikasi Anda.
Kerangka kerja ini juga menyediakan struktur organisasi dasar, dari penamaan file ke penamaan tabel di database, sehingga menjaga seluruh aplikasi yang konsisten dan logis. Konsep ini sederhana namun kuat. Ikuti konvensi dan Anda akan selalu tahu persis di mana hal-hal dan bagaimana mereka terorganisir.
Model Visual Control pada CakePHP (MVC)
CakePHP menggunakan konsep MVC (Model,Visual dan Control). Memprogram menggunakan konsep MVC adalah pemrograman dengan memisahkan aplikasi menjadi tiga bagian utama:
1. Model yang merepresentasikan data aplikasi / database
2. View membuat presentasi data dari model / tampilan pada browser
3. Controller yang menangani dan mengalihkan request dari klien / Logik dari aplikasi
Gambar: memperlihatkan contoh request dengan memakai konsep MVC dalam CakePHP. Untuk mengilustrasikan, asumsikan seorang klien bernama “Ricardo” hanya mengklik taut “Beli buku ini sekarang!” Link pada halaman muka aplikasi Anda.
- Contoh Ricardo meng klik link yang menunjuk ke http://www.example.com/cakes/buy dan browser akan membuat request ke server web Anda.
- Memeriksa dan mengirim URL request (/cakes/buy), dan mengirim permintaan yang sesuai ke controller .
- Controller logik aplikasi. Sebagai contoh, mungkin mengecek apakah Joko telah login
- Controller juga menggunakan model untuk mendapatkan akses ke data aplikasi. Model umumnya merepresentasikan tabel database, tetapi mereka dapat juga merepresentasikan entri LDAP, RSS feeds, atau file pada sistem. Dalam contoh ini, controller menggunakan model untuk mengambil data pembelian terakhir Ricardo dari database.
- Setelah controller bekerja pada data itu. View mengambil data akhir dan menyiapkannya untuk ditampilkan ke klien. View dalam CakePHP umumnya berupa format HTML, tetapi melihat bisa saja berupa PDF, dokumen XML, atau JSON object tergantung kebutuhan Anda.
- Setelah menggunakan data dari controller untuk membanguntampilan sepenuhnya dilakukan, isi dari view tersebut akan dikembalikan ke browser milik Ricardo.
Hampir setiap request ke aplikasi mengikuti pola ini. Kami akan menambahkan beberapa detail di kemudian hari yang khusus untuk CakePHP.
Manfaat
Mengapa menggunakan MVC? Karena merupakan perangkat yang mengubah aplikasi ke dalam satu paket, terjaga, modular, dan berkembang cepat. Mendesain bagian aplikasi menjadi model terpisah, view /tampilan dan Controller membuat aplikasi yang sangat ringan pada saat digunakan, Fitur baru dapat dengan mudah ditambahkan, dan tampilan baru pada fitur lama merupakan sebuah cuplikan. Desain yang terpisah dan modular membuat pengembang dan desainer untuk bekerja secara simultan, termasuk kemampuan untuk cepat prototipe. Pemisahan juga memungkinkan pengembang untuk membuat perubahan di salah satu bagian dari aplikasi tanpa mempengaruhi pekerjaan orang lain.Jika Anda belum pernah membuat aplikasi dengan cara ini, dibutuhkan beberapa waktu untuk membiasakan diri, tapi kami yakin bahwa begitu Anda telah membangun aplikasi pertama Anda menggunakan CakePHP, Anda tidak akan ingin melakukannya dengan cara lain.
Web Komunitas CakePHP
Situs Resmi CakePHP
http://www.cakephp.org
- Situs resmi CakePHP merupakan tempat yang bagus untuk dikunjungi. Ini menjelaskan fitur fitur dan link pada pengembang tentang fasisilitas yang tersedia oleh CakePHP dan sering digunakan, screencast, peluang donasi, dan download CakePHP.
The Cookbook
http://book.cakephp.org
- Buku petunjuk ini mungkin harus menjadi tempat pertama Anda untuk mendapatkan jawaban. Seperti banyak proyek open source lainnya, kita mendapatkan orang-orang baru untuk memecahkan setiap masalah yang timbul, Cobalah yang mencari dokumentasi yang terbaik untuk menjawab pertanyaan Anda Anda. Jawaban mungkin datang lebih lambat atau mungkin dapat lebih cepat, Baik manual dan API memiliki komponen online.
The Bakery
http://bakery.cakephp.org
- The CakePHP Bakery merupakan lembaga kliring untuk semua hal CakePHP.terdapat banyak tutorial, studi kasus, dan contoh kode. Setelah Anda berkenalan dengan CakePHP, bergabunglah dan berbagi pengetahuan dengan komunitas dan mendapatkan ketenaran dan keberuntungan disana.
CakeForge
http://www.cakeforge.org
- CakeForge sumber lain pengembang dapat Anda gunakan untuk host Anda proyek CakePHP untuk berbagi dengan orang lain. Jika Anda mencari (atau ingin berbagi) komponen yang keren atau plugin yang keren, kunjungilah CakeForge.
Test Case
http://api.cakephp.org/tests
- Jika Anda pernah merasa informasi yang diberikan dalam API tidak cukup, periksa kode pada uji kasus yang diberikan oleh CakePHP 1.3. Mereka dapat menjadi contoh praktis untuk fungsi dan penggunaan data anggota untuk kelas pemula. Untuk mendapatkan inti uji kasus Anda perlu men-download atau checkout versi 1,3 cabang dari repositori git.
IRC channel
- CakePHP – Diskusi Umum
- CakePHP-docs – Dokumentasi
- CakePHP-bakery- Bakery
Jika Anda bingung, anda dapat mencari kami di channel IRC CakePHP. Seseorang dari tim pengembangan biasanya ada, terutama pada jam-jam siang hari pada waktu Amerika Utara dan Amerika Selatan. Kami akan senang mendengar dari Anda, apakah Anda butuh bantuan, ingin mencari pengguna di wilayah Anda, atau anda ingin sekedar menyumbangkan mobil sport merek terbaru Anda :D.
Grup Google
http://groups.google.com/group/cake-php
- CakePHP juga memiliki komunitas di Google yang sangat aktif . Hal ini dapat menjadi sumber daya yang besar untuk menemukan jawaban dan arsip tentang CakePHP, pertanyaan yang sering diajukan, dan mendapatkan jawaban atas masalah-masalah dengan segera.
http://book.cakephp.org/view/879/Beginning-With-CakePHP#!/view/881/Where-to-Get-Help
Pengantar CakePHP
Panduan ini mengasumsikan bahwa Anda memiliki pemahaman umum tentang PHP dan pemahaman dasar pemrograman berorientasi obyek (OOP). Fungsi yang berbeda dalam rangka memanfaatkan teknologi yang berbeda seperti SQL , JavaScript dan XML, manual ini tidak berusaha untuk menjelaskan teknologi tersebut, hanya bagaimana mereka digunakan dalam konteks.
Apa alasan kita untuk memilih CakePHP sebagai Framework dalam melakukan web development ?
CakePHP adalah gratis, open source, rapid development framework untuk PHP. Ini adalah struktur pondasi bagi programmer untuk membuat aplikasi web. Tujuan utama CakePHP adalah untuk memungkinkan Anda untuk bekerja dalam cara yang terstruktur dan cepat tanpa kehilangan fleksibilitas.
CakePHP mengambil alih kegiatan monoton dalam pengembangan web. Kami menyediakan semua alat yang Anda butuhkan untuk memulai coding apa yang Anda benar-benar harus dilakukan : misal logika spesifik untuk aplikasi Anda. Daripada menciptakan kembali kode yang sama setiap kali Anda memulai bekerja untuk sebuah proyek baru, check out / download dulu copy dari CakePHP dan mulai dengan fitur yang nyata untuk aplikasi Anda.
CakePHP memiliki tim pengembang dan komunitas yang aktif dan ramah, membawa nilai tambah ke proyek yang anda kerjakan. Selain menjaga Anda dari pengulangan pembuatan kode yang sama dan monoton , menggunakan CakePHP berarti inti aplikasi anda sudah teruji dengan baik dan sedang terus ditingkatkan, benar benar framework yang tangguh bukan? coba dan rasakan manfaat dan kelezatannya.
Berikut daftar fitur yang akan Anda nikmati (dengan gratis) saat menggunakan CakePHP:
- Komunitas yang aktif dan ramah siap membantu anda
- lisensi Fleksibel
- Kompatibel dengan versi 4 dan 5 dari PHP
- Terintegrasi CRUD untuk interaksi database
- Aplikasi Scaffolding
- Kode generasi, generate kode secara otomatis dari console/CUI untuk windows maupun Linux
- Arsitektur MVC (Model-Visual-Control)
- Url dapat di route dan disingkat sehingga terlihat cantik dan singkat
- Built-in validasi
- Cepat dan fleksibel (sintaks PHP, tersedia helpers)
- Lihat Helpers untuk AJAX, JavaScript, HTML Bentuk dan banyak lagi
- Email, Cookie, Keamanan, Session, dan komponen Request Handling
- ACL yang fleksibel
- Sanitasi Data
- Caching yang fleksibel
- Pelokalan
- Bekerja dari direktori situs web, dengan sedikit atau tidak ada konfigurasi Apache
Dan tentunya masih sangat banyak fitur lainnya yang masih dapat anda manfaatkan dengan menggunakan CakePHP, segera rasakan kelebihan dan kelezatannya.
Test Hello world
<div><?= “HELLO WORLD!”;?></div>