Ingredients for Baking CakePHP
A Reluctant Endeavor
So I've been keeping myself busy with a side project lately and the client wanted it in PHP. For crap! PHP?!
Is PHP really as atrocious as viewed by many?
- Exhibit A: The PHP "quick" reference.
- Exhibit B: Lacking common abstractions found in modern languages: true ordered arrays, closures, lambdas, and even basic consistency.
Note: The up and coming PHP 5.3 addresses some of these gaping holes, so hold back the hate mail, please.
I'd conjecture that most coders spoiled by C#, Perl, Ruby, and Python would dismiss PHP on the spot as a stepping stone to more sophisticated platforms. I did. But to be fair, one might arguably punt assembly language, C or even C++ for the same reason. What makes a seemingly weak language powerful is the framework laid overtop. So, what PHP lacks in expressiveness can be abstracted out to higher level functionality.
Shut The... Front Door! A Framework Can Help PHP?
This is exactly what I've found for myself with CakePHP. With a little relearning of the fundamentals of the MVC design pattern, it really was pretty quick to get it working, guided by their online docs, bakery code samples, newsgroups, and even some Stackoverflow Q&A. There's an IRC channel, but... it's not for everyone. YMMV.
Ok, so suppose you like the sound of CakePHP and maybe you even tried it once. Your recommended reading assignment is Matt Curry's Super Awesome Advanced CakePHP Tips. He'll set you in the right direction to get the most of the concepts and conventions.
Why Would I Limit Myself To PHP When I Have <insert fanatical buzzword here>?
Meh. Get over it. When you want to build a web site quick and cheap, it's not happening with ASP.NET, no matter what it has over PHP. The LAMP stack is free to all and easy to run, which means you can get a web host for $5/mo easy.
Now go out and build the next best thing on the web!
About Shawn Poulson / Exploding Coder
Software developer and designer
I'm a software developer in the Philadelphia/Baltimore metro area that loves web technology and creating compelling and useful applications. This blog was created to showcase some of my ideas and share my passion and experiences with others in the same field. Read more...