Tuesday 22 February 2011

PHP Meetup 2011: Framework Shootout

Tengah aku main click2 kat FB tetiba aku nampak satu event. Event cam tajuk kat atas tu la. Aku pun terus inform kat member yang minat nak pi. Ok aku ada geng. Bos plak memang tengah paksa pilih framework. Aku ni mana reti guna framework. Selalu dok buat plain PHP je. PHP bodo-bodo tu. Satu page ada macam-macam mak nenek. Jadi masa ni aku gunakan untuk pilih, mana satu frameowrk yang menyenangkan aku.
Awal aku sampai. 8.10 pagi.


Di mulakan dengan ucapan alu-aluan orang MIMOS. Lepas tu pengasas php.net.my ya.. Lepas tu CakePHP. Bila sebut je aku dah rasa lapaq. Al-maklumlah time tu tak breakfast lagi. Frameowrk ni agak menarik, senang difahami(mungkin sebab awal pagi lagi senang masuk otak). Tapi aku tak suka sebab dia banyak magic. Kena guna plural, singular. Agak leceh skit kalau nak guna dengan existing database. Tapi dia support Informix.


Pastu sesi makan, nasi lemak. Sodap la juga. Kalau tak sedap confirm tak lincin polistren aku.


Perut dah kenyang mata dah sedikit kuyu, tapi acara masih diteruskan dengan DooPHP. Benda baru bagi aku. Presenternya adalah founder DooPHP. Orang Malaysia. Agak ringan dan pantas dari segi pemprosesan berbanding CakePHP.


Kemudian ada Django, ni guna Python. Another programming language. Sangat menarik tertarik memang deboom. Aku hampir-hampir ingin mengucapkan sayonara kepada PHP, bukan sekarang la. Sebab kena belajaq Python dulu(ceh ada hati tu. :-D)


Lepas tu ZendFramework. Zend ni agak bagus bagi aku. Banyak library dan yang bagusnya, code dia boleh diguna pakai dalam CakePHP atau CodeIgniter. Kira pemurahlah bagi je. Lepas tu lunch dan solat. Nasi ayam ok. Sodap.


Saja nak habaq, kat tengah-tengah antara pintu masuk surau lelaki dan perempuan ada kolam. :-D


Selepas berehat panjang, diteruskan pulak dengan CodeIgniter. Presenter dia lagi muda dari aku. Kagum aku. Aku suka CI ni sebab nak configure dia tak susah. Memang senang paham. Antara framework yang mudah untuk dipelajari. Yang bestnya, dia boleh terima banyak code-code dari framework lain. Plugin pun banyak, walaupun sesi nak update dari CI 1.7.3 ke 2.0.0 agak susah gila.


Lepas tu terus ke framework seterusnya, Ruby on Rails. Ni lebih kurang CakePHP. Sebenarnya CakePHP yang tiru dia. Jadi dia memang ada singular, plural masa nak create database.


Yang terakhir adalah PHPHyppo. Framework ni buatan anak Malaysia. Framework ni baru lagi. Memang mudah aku tengok. Sebab masa dia buat demo untuk create form, boleh dikatakan tak payah bersusah payah nak taip coding panjang berjela. Memandangkan baru lagi, banyak la kena improve.


ya, ni lah free gift yg aku dapat. Mug limited edition. hahaha.


sesi penting. bergambar beramai-ramai. :-D

Dah abis tu balik la. Mau tunggu apa lagi. Dah tak da sesi makan-makan. Hehehe. Pastu singgah rumah Juliana.


 Dijamu dengan sotong sumbat pulut dan keropok ikan terengganu. hehehe


Ni adalah muka2 tukang melantak

P/S:
1. Event ni memang best. Banyak input. Memang tak kering gusi dengan lawak2 spontan presenter dan tukang dengaq.
2. Aku terasa nak belajaq Python saat ini. hahaha
3. Organizer dua orang lelaki. Next time minta diorang ajak gurl2 jadi volunteer. Kot2 la terurus skit.

RC: Bos dah tanya nak guna framework mana. dewman cakap ikut projek. Aku cakap kalau nak senang CI. Nak lagi sonang PHPHyppo. Hehehe. Konklusinya, ikut projek. yeeee.. Nanti peningkan kepala lagi.

9 comments:

fazilah said...

http://ericharrison.info/2010/04/21/how-i-build-php-applications/


How I Build PHP Applications
April 21st, 2010 52 Comments

fazilah said...

As a developer, I tend to shy away from large pre-built systems like Drupal and Joomla and I loathe large frameworks like CodeIgniter and the like. I like to build apps that keep my work close to the core, working with the native API and controlling my page output. I like SQL and prefer to write my queries myself rather than rely on behind-the-scenes magic that various ActiveRecord implementations provide.

In past projects I’ve worked on that used massive frameworks, I always seem to spend 90% of my time working the 10% of functionality that these frameworks do not natively provide. I’ve learned to trust my instincts and just write the code that I need for the application and ignore the promises of these frameworks to get me from point A to point B faster than doing it myself.

fazilah said...

The Promises of Frameworks

These frameworks all promise rapid development through pre-built methods and APIs that take me from Point A (the idea of the app I have to build) to Point B (the finished product). The problem I’ve found is that in the applications I need to build, Point B is never where I need to go. For example, let’s say that I’m building a Content Management System for work. The application flow looks something like this:

User views a page that has tabular data retrieved from the database.
User clicks on a record in that table to pull up a form to edit that data.
Application retrieves data from database, displays it in a form.
User edits the data, clicks Save.
Application takes the data from the request, checks the validity, then stores the data in the database.
[Repeat as needed]
Pretty simple workflow, and is often one of the things that these frameworks are built to handle. They’ll have ActiveRecord interfaces to automatically understand the data in the database. The framework will have a magic tabular output mechanism to take the list of records and make a large HTML table and display all of the data. The framework will also have some magic methods to create a form that is linked to the ActiveRecord entity and handle all the data validation and processing.

fazilah said...

This all works great… as long as your application has a single table with a very strict set of rules. As soon as you add relationships between multiple tables and crazy business logic (which exists in every single application I’ve ever built), these frameworks start to fall apart. You then spend hours poring through documentation figuring out how to extend the ActiveRecord class with your own ActiveRecordSpecialTable class that handles the many-to-many relationships. Then you have to dive in to the output mechanisms and figure out how to trick the framework into displaying an edit form with data from multiple sources. And so on, and so forth. Forever.

Meanwhile, by merely applying your years of web development experience, you could have made two simple scripts. One to display tabular data and one to display a form. You could have quickly crafted a back end script to pull data from the database using an SQL statement like:

SELECT posts.id,posts.title,posts.dtg,users.firstname,users.lastname FROM posts LEFT JOIN users ON posts.user_id = users.id

Nice, simple, and easy to maintain.

The problem I noticed is that these frameworks are very good at taking my application from Point A to Point B, but very bad at taking my application from Point B to Point C.

fazilah said...

THose are from http://ericharrison.info/2010/04/21/how-i-build-php-applications/
I think he is PRACTICAL and HONEST enough to the REALISTIC WORLD.

fazilah said...

http://dewmandew.blogspot.com/2011/02/jom-bergaduh.html

zam3858 said...

tq for the review. nanti kalau kitaorang announce nak buat meetup, jgn lupa volunteer jugak. any help is welcome. :D

aku_tak_tau said...

wah tenkiu untuk review....nih antara mangsa2 jadik ajk meetup akan datang nih. ahaha

rafi cyber said...

fazilah: thanks for the info

zam3858 & aku_tak_tau: Insya-Allah. Kalau free dan tak ada apa2 yg menghalang. :-D

Post a Comment