I remember those old days when I had to write everything by myself. I wrote huge libraries to work with MySQL. Then I learned PostgreSQL and SQLite but didn’t rewrote my old library to work with those, I was running short of time. So I forsake the opportunity to write a db library which works with them. What I did was plain code relevant to database specific portions. Oh ya, that was a long time ago.
Soon after that I came to know adoDB which made my dream come true. I was so much happy getting my all db specific works done in a much more smarter way. I get rid of database portability issues. I was very happy that time.
I learned smarty soon after I realize that my codes are getting ugly with all the inline HTMLs and PHPs. Nothing could be smarter than separating the presentation logic from the business layer. I am a big smarty fan since that time. It saves my sleep for many nights.
But again I am recurrently suffering from maintainability issues. I was not surprised to find that my code is becoming huge unmanageable giant and it takes huge time for refactoring the application. I was very sad those days. Oh what a disaster that was.
When working with my team members located remote places, I fall into a deep shit. How can we manage and track the changes done by us? Even I was getting strange code in my routine which I bet was not written by me!! It was a terrific job delivering the project after team working. Team working made our life real hell. I was thinking that one man project was much better than a team. he he he.
Soon after that I learned version controlling and it saves me from more disaster in my life. Because i learned how to taste the flavour of “team working” instead of a “one man only” project. I did a big leap, now I enjoy my life a lot for that.
But I am stuck again to find that my problem of “unmanageable” code still remains unmanageable because a lot of code clutters and redundancy. I used a lot of open source libraries for different tasks. The whole projects getting messy and hard to manage. Its a sad time again.
Immediately after that I realized, shit, what I am doing? Why I am reinventing the wheels everyday? Where has gone the true meaning of OOP? Why am I living in a hell. I study the MVC frameworks and then I was really happy to guess that it might solve all my problems in a smarter way.
So which framework I have to choose? I got FreeForm, Prado, Seagull, Symfony, CakePHP and CodeIgniter. Oops, a whole lot frameworks to choose from. I went thru FreeForm and Prado but i really dont like the flavour of everything widgetized!. I just dont want to loose control over my easy part for the sake of manageability. I also dont want to remember the properties of my easy HTML objects as a widget. I went thru CakePHP and it is a fantastic framework i agree. I learned it from their online documentation list, worked some templates and controller as thier way and damn, It is so intelligent that didn’t leave control to me for some specific tasks. It is much smarter than I can handle, I dont like something which left less flexibility on my hand t solve my own problem.
I got big names likes symfony and I heard that yahoo bookmarks is done using this. But Again it was a hard time for me. So many configurations lead my life to an endless journey to eternity. I found that I am spending much more time in studying the framework than working to deliver my project to client. Ohhhhhhh, what am i doing? All these learning curve for making my project successfull manageable at the cost of “failure” to deliver the project itself? Well, I think I have to go for something else.
Suddenly I got codeigniter and I was able to run a whole lot of controllers, templates and models in minutes (well not in minutes, but much less time than previous ones). A rich , pleasing to read, friendly set of documentation, a bunch of in built libraries and less autonomous control gives me full freedom over my application. It was easy to integrate my old friend smarty with it, in case it comes with it’s own active record, but it gives me chance to add adoDB with it. I fall in love with code igniter soon after i realize that it comes with almost zero learning time (or i better say learning on demand)
Thats the story how I started my journey with CodeIgniter……
A prelude to foundation. I remember the wise saying from Donald Knuth – “Premature optimization is the root of all evil” and I realize, thats true.
Note: The article was done as a story. In real life application development you have to consider many more things like scalability, performance and cost of development. Its not an wise idea to switch to framework just for fun. If you are happy and satisfied with the framework you are working with, I would rather suggest you to stay with that.