On Tue, Oct 11, 2011 at 04:10:49PM -0700, MjR wrote: > Hello all, I am a student at CPIT in my last semester of a BICT > specialising in web development. Currently in the process of > completing my final year project developing a licencing system based > around php. > I find myself in the position of choosing and evaluating which > framework I should use, as I consider myself a novice I feel it would > be best for me to pose this question to you all for some expert > advice. Most suitable would be a frame work that is comprehensive yet > can be picked up easily to someone with a limited understanding quite > quickly, as this project is running on a tight time schedule. > I would really appreciate any help and advice you can all offer.
There's a few things that I would consider important when looking at a framework for web development: - Does it work on the bus? I.e., if you're not connected to the net in any way, can you still work on a project at http://127.0.0.1/? Is this the default, prescribed way to work with the framework? - Pain to deploy - the prime reason for the point above is that if the default mechanism for doing development work is on the developers machine, the framework will almost certainly have an easy mechanism for deployment. It should also be easy for multiple developers to push to the same install. - Database schema changes - How does the framework handle these? Assuming your application is database backed, this can become a huge pain point over time if your framework doesn't support it. It's particularly problematic when developers hand roll solutions, and end up knowing a set of secret incantations that are required to roll out schema changes. When developer no. 2 comes to the project, she's pretty much stuffed. A database agnostic framework should probably get extra points, as it's likely to have at least a modicum of abstraction in the database access / ORM code layer. - Testability. From Michael Feathers book 'Working with legacy code': "The main thing that distinguishes legacy code from non-legacy code is tests, or rather a lack of tests." A project with even a small level of complexity becomes almost impossible to effectively regression test by hand. Check that your framework supports unit testing, and ideally some form of integration testing that exercises the whole stack. There are probably others, but I think the points above are important if you're playing a long game. Malc -- NZ PHP Users Group: http://groups.google.com/group/nzphpug To post, send email to [email protected] To unsubscribe, send email to [email protected]
