Perubahan dan Perbedaan CakePHP 1.3 dengan 2.x

CakePHP adalah area kerja (framework) berbasis bahasa pemrograman PHP yang akan sangat membantu dan memudahkan para developer website tingkat menengah untuk mem-build suatu “web application“. Kenapa saya menyebut tingkat menengah? Ya, memang bekerja dengan framework membutuhkan setidaknya pengalaman penggunaan sintax yang bersifat OOP (Object Oriented Programming). Sehingga bagi pemula web, saya sarankan agar lebih memahami dahulu konsep-konsep awal pembuatan web tanpa harus menggunakan framework seperti CakePHP, Codeigniter, Zend dan lainnya. Setelah sedikit mahir, bolehlah kita menggunakan Framework tersebut.

Saat kita memakai framework khususnya CakePHP yang juga sedang saya pelajari saat ini. Yang pasti kita juga harus melakukan penyesuaian dengan konsep dasar membangun aplikasi web menggunakan CakePHP. Dimana kita nanti akan mengenal istilah MVC (Model View Controller). Konsep dan struktur-struktur dalam CakePHP wajib diikuti oleh pemakai, sebab inilah tantangan yang nantinya dapat memudahkan pembuatan web jika kita telah terbiasa memakai Framework.

CakePHP

Perbandingan Versi CakePHP

Awal mula saya menggunakan CakePHP, saya menemukan setidaknya problem yang membuat saya pusing bukan main. Walaupun ini problem umum, namun karena saya juga pengguna awam Framework, jadilah harus lebih giat mencari sumber-sumber untuk problem solving di CakePHP. Problem yang saya hadapi ini adalah adanya perbedaan dan perubahan antara cakePHP versi 1.3 dengan versi 2.0 atau diatasnya. Tentunya ada banyak perubahan yang saya baca di situs resmi cakePHP, diantaranya adalah:

  • Dukungan versi PHP

CakePHP versi 1.3 mendukung PHP4 (versi 4), berbeda dengan CakePHP 2.x yang sudah tidak lagi mendukung PHP4 dan sekarang ini menggunakan versi PHP terbaru yaitu PHP5.

  • Penamaan File dan Folder

Penamaan File, CakePHP 2.x sekarang ini mengadopsi sistem penamaan file yang cukup berbeda, sistem penamaan ini merubah file penamaan di versi 1.3 yang biasanya menggunakan underscore atau lowercase misalkan my_things_controller.php (1.3) dirubah menjadi MyThingsController.php pada CakePHP versi 2.x
Penamaan Folder, pada CakePHP versi 2.x sekarang menggunakan sistem penamaan CamelCase jika di dalam folder tersebut mengandung file yang mempunyai Class, semua yang ada di dalam folder /App CakePHP 2.x mengadopsi CamelCase kecuali folder /tmp dan /webroot yang menggunakan model lowercase.

  • htacces (URL Rewriting)

Pada CakePHP versi 1.3, isi file .htacces line RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] dirubah menjadi RewriteRule ^(.*)$ index.php [QSA,L] pada CakePHP versi 2.x.

  • Perubahan isi folder AppController / AppModel / AppHelper / AppShell

Pada CakePHP 1.3 kita bisa lihat isi file di folder-folder tersebut masih menggunakan underscore seperti app/app_controller.php, app/app_model.php, app/app_helper.php. Pada CakePHP versi 2.x ke atas sudah ada perubahan penamaan dengan mengadopsi CamelCase, bisa dilihat seperti ini app/Controller/AppController.php, app/Model/AppModel.php, app/Helper/AppHelper.php.

  • CakePHP 2.x lebih cepat?

Saya pernah mendengar penuturan dari salah satu master web yang telah lama berkecimpung di dunia CakePHP, bahwa CakePHP versi 2.0 ke atas lebih aman dan cepat dibanding versi Cake 1.3 ke bawah.

Untuk lebih detil dan lengkapnya Anda juga bisa melihat rujukan resmi di link http://book.cakephp.org/2.0/en/appendices/2-0-migration-guide.html . Sekian dan semoga berguna bagi Anda yang baru belajar CakePHP terutama versi 2.x ke atas, yang mungkin terbentur dengan banyaknya tutorial di internet yang umumnya menggunakan CakePHP versi 1.3.

Salam, Cake ! 😀

 
Muhammad K Huda

Muhammad K Huda

A non exhausted blogger person within fullstack engineer (spicy food), open source religion, self-taught driver and maybe you know or don't like it. Simply says, Hello from Me!

 

One thought on “Perubahan dan Perbedaan CakePHP 1.3 dengan 2.x

Leave a Reply

Your email address will not be published. Required fields are marked *

Chaptcha * Time limit is exhausted. Please reload CAPTCHA.