Developing a new site: Learning Laravel
For more than a month now I have been working in my new playpen with the Laravel PHP framework. I figured this would be a good time to take a moment to discuss my initial impressions of it, particularly in comparison to Codeigniter, the other framework I have experience with.
One of the nice aspects to Codeigniter is that it is a very lightweight framework. To start working with it, you take a .zip file and empty its contents to your working directory. Then you are off to work. It allows for a very fast start, especially if the work is being done on a system that isn't ready for Laravel. Laravel on the other hand has an installation process that requires first installing Composer and configuring it to install Laravel. The process isn't so bad once Composer is ready to go, but there is a little bit of lead time on a "fresh" system.
Since Codeigniter is lightweight, it requires more work to get some tasks done. For example, it lacks a templating system. At a previous job, the lead programmer and I spent time cobbling together our own templating system. The goal was to have a single view consist of a number of small, easily maintainable files (yet, allow data being accessible to all the files). Laravel comes with the Blade templating system built into it. As I learned how it works, I really like the ease on which complicated views can be pieced together.
Both frameworks have ways of adding in modules to quickly add common components to a site. Codeigniter maintained its simple method of unzipping contents to a directory. Laravel uses Composer again. I think a nice aspect of Composer in this regard is that modules can easily be kept up to date since Composer does all the work to both check for updates to existing modules and to handle dependencies.
A final area to touch on is that I'm not seeing how either framework utilizes the models part of being an MVC framework. In my limited experience with Groovy on Grails, I could describe my database tables as true objects and let Grails handle all of the heavy lifting of maintaining the actual database structure. I don't recall Codeigniter doing anything of this sort. Laravel may be capable of this since I saw hints of it in the built-in authentication system. However, it is either not well documented on how to fully use it or I simply have spent enough time sorting it out (perhaps it's both).
Overall, I have enjoyed working with Laravel thus far. Heck, it's nice to be doing some real programming again. It tells me that I really am a "code monkey" and look forward to being able to do it full time again.
Add new comment