What is a Framework?

In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by user code, thus providing application specific software. It is a collection of software libraries providing a defined application programming interface (API). — Wikipedia (2012-03-15)

In my career as a programmer, I have come across more than a few Frameworks, both commercially available and privately designed by the companies I have worked for. Here I have chosen three to feature my abilities with. These are CakePHP, Yii, and Zend.