- You are immortal, and therefore, will always be around to help other developers understand and extend your code.
- You have no life, and therefore, don’t mind spending all of your free time writing code comments and documentation that would already be written in a good framework, so other developers after you (or with you) can also write code for your app(s).
- You are coding an app that will be one of the most visited sites on the web (all by your self and for eternity if #1 and #2 are true), and therefore, can justify the potential nanoseconds saved by not having the “overhead” of a framework.
- You are a web security god and are way smarter than the collective group of developers who code and test good frameworks for security issues.
- You want to spend all of your time re-inventing the wheel by writing your own RESTful routing implementation, ORM, templating engine, etc. etc. instead of what a good framework provides. Or maybe you skip the ORM part and just re-write larges parts of the app when you need to switch DB engines.
- You don’t do “deadlines”.
If these reasons don’t apply to you, I recommend checking out Laravel, or better yet, the Laravel 4 beta.
I jumped into Laravel as my PHP Framework of choice about a month ago after deciding to switch full time to PHP from Coldfusion. Though I’ve only used it for a month, I really believe Laravel 3 is an awesome framework. However, now that the beta 1 of Laravel 4 has come out, and I’ve been looking into what it would take to port my first Laravel 3 app to 4, I do have a few concerns and I’m not the only one.
I’m not so concerned about the controller/action naming conventions or the use of Composer in general, but the practical day-to-day stuff that will affect me as I’m developing.
One of the first things I noticed in my attempt to port over my app was the absence of the HTML, FORM, and URI (I think) helper functions. This was explained to be a result of using replacement packages available via Composer. That’s fine, but here’s my biggest concern regarding a heavy reliance on Composer (and this is not restricted to Laravel at all):
As a newbie I rely HEAVILY on documentation. The more you strip out of the framework and farm out to Composer, the more places I have to go to find documentation. This can be a pain.
Now I’m seeing there’s a movement afoot to buy a license for Redactor.js so it can be included in Laravel 4. That sounds great to me, but why would Laravel’s developers want to include a wysiwyg editor as part of the core, when they’re stripping out stuff like HTML and FORM helpers?
I can see not including a Twitter library like Zend, buy why remove something that was already there and relied upon by many developers?
I’m just ranting here, and I’m very hopeful that as things stabilize and the smoke clears, L4 will be awesome and even better than L3 has been for me so far.
But I’m still just a little concerned.
I’m planning on writing up a post about the Laravel framework and why I’ve chosen it for my new foray into PHP and away from Coldfusion.
In the meantime, Tutsplus and Jeffery Way have put together a nice tutorial for setting up Laravel 4, the yet-to-be-released next version of the PHP framework that’s really getting a lot of buzz lately.
I also highly recommend the Laravel Essentials course by Tutsplus, also by Jeffrey Way, as well as the tutorial series by Shawn McCool at Laravel.io.