I have made a similar blog post on frameworks / content management systems before in this website, but that was like 6 months ago and a lot have changed. What has been the rage is now the unwanted old component, and there have been made huge improvements in back end framework’s approaches to problems (such as an inversed IoC Container from Laravel, check that stuff out especially if you are into software engineering, pure bliss.)
Active Records implementations have been improved, support for pagination on Twitter Bootstrap out of the box invented, new abstractions added, and bla bla bla….Basically, what i am trying to say here is that everything moved so fast in time that there is a need to create a totally new article about it.
In this article today, i am going to enlist my top ( and apparently the Internet’s) favorite frameworks and why they are so good, and as i do usually, for fairness, i will include their limitations too so you can make a good assesment and judge yourself if the one you are reading is lacking a feature that you need. And again, as i do usually, i always start out with my favorite in these kinds of listings, so the first is gonna be…
1 – Laravel
Damn. I don’t know where to begin. I have first skimmed the documentation around April uninterested after picking up CodeIgniter and jQuery for good. I skip to the ORM and Blade Templating Engine sections and i remain amazed. Everything is so aligned, so beautiful, so abstract, it makes me make love to the screen.
I was hearing clients on the freelance websites going “We want laravel, laravel web application needed, laravel programmer wanted ) so much that i decided to look and respond to my question “Well, what the heck is Laravel anyway? What is it good for?”
My questions were answered by the Gods of beautiful documentation and API, and i have skimmed through the documentation to discover this piece of software engineering piece of art.
They are the first to approach framework directory structure with a /public folder that will let you hide the back end files somewhere else on the server (for example, in the /home directory if you have one instead of public_html folder).
The features of the framework are:
- Loose coupling and dynamic instantiation via the IoC Container
- Awesome Routing feature to build REST Controllers, or simply write beautiful routing logic
- Advanced HTTP Error logging (via HTTPException Object)
- Migrations for database (configuring your tables, creating and dropping them)
- Beautiful Database ORM (You just create a file with the name of your table, then start making requests like table_name::get() )
- Good Templating Language (beautiful foreach, if statements on the HTML part and a nice parent / child hierarchy for HTML content)
- Resources – A REST Controller creation method in which you can fastly create REST controllers very fast for your database objects
- A default SMTP server configuration that works pretty good for sending messages for some reason
And of course, like every piece of software out there, it comes out with limitations too:
Sounds like bullshit, but it is actually true. There are no known limitations and bugs for Laravel 4 (except user created ones, but that is not the fault of the framework) This framework is simply awesome like that.
Too bad that most hosts dont have artisan pre-installed or have the option to install it. Otherwise you could have deployed it anywhere and everywhere, but i am sure that will come later when the hosts realize Laravel’s importance.
I would gradly recommend you to play around with this framework , because first of all it is fun ( new features, cool syntax, little tricks etc. ). My favorite will be this one this year.
2 – CodeIgniter
This is the one that i still did not get rid of from my toolset because i love to be able to just slap the little guy (3.6 mb compressed) to the web host of the domain i am working on and build a cool web application in minutes.
The only that annoys me in this framework, is that, i have to write all the models myself (save the function that i made for doing SELECT WHERE’s with the string from the $column_name argument for my convenience ). It is a pretty tedious process to me (as i tend to deal with an amount of tables in my applications and have to write a separate model for each table in the damn database)
The features that this framework come with are:
- Full MVC like the majority of the PHP frameworks out there
- Very good session library that i use for authentication with no issues
- Very light and fast if you know how to use it correctly
- Very detailed and verbose logging (albeit not by default, you can enable it from the config file in the app folder
I use this framework for the majority of my web applications because it is so easy to deploy and so small (plus that i am soooo used with the syntax and writing for it). I have wrote a tutorial on how to build a web application on it ( check out my past tutorials ) . I have built both my webisode and video sharing platform, and my clients web applications in it (it usually took me 1 week to finish them with CodeIgniter and UI design implimentation part )
One of the most lovable frameworks out there, i hold CodeIgniter in my pocket and walk confidently everywhere, and so should you.
Thanks for reading and start commenting!