The following post is in response to a thread that was immediately closed as I was writing my answer to RenderIn's post at: http://stackoverflow.com/questions/3265509/what-are-the-benefits-of-using-a-programming-framework . The thread was closed and in the comments a link was placed directing him to here, so I'll attempt to answer his question here. In quotes below is what I was ABOUT to submit:
"Allow me to recommend Joomla! to you and your organization. At my last employer, I had to pick-up PHP (having no prior experience with it), and after about a month and a half of doing some manual hand-coding of PHP, I was tasked to code a Joomla! component that would serve-up videos to users. I also had to create a backend that would allow non-techie administrators to categorize, edit, delete, etc., the videos as well as provide thumbnails for them, etc.
Now to get a working prototype for that, it took about two months (I was an intern at the time and only working 20-24 hours per week, so if you have quite a bit of PHP experience as well as experience with MVC development methodology, you probably could've gotten a working prototype up a LOT quicker than me)."
Now in response to the OP of THIS thread:
Spending the time to learn a framework is definitely worthwhile (I haven't seen it mentioned in here until my post so I'll say it again: for a PHP-framework I'd recommend Joomla!).
Some of the benefits of learning a framework (an open-source one like Joomla!):
- A huge community of people who can help answer your questions (besides stackoverflow; lol)
- Access to ALL of the source code, so you can customize it however you want.
- Lots of free (and paid) third-party plugins to enhance functionality.
- Lots of tutorials.
- Frameworks take care of performing a lot of mundane tasks automatically.
In reference to bullet four: Joomla! takes care of things for you such as database connection management and such so that you don't have to bother creating all your own custom functions to connect to your MySQL database or return different types of database results (e.g. one record, first result of first record, list of records, etc.), you simply place calls to theirs. Joomla!'s API is openly available on the web at their site: http://api.joomla.org/
Anyway hopefully this helps RenderIn and anyone else wondering about frameworks (especially PHP-related ones).