Programmers write programs for users so certain processes in the workflow can be automated for efficiency and correctness.
As such, to improve the programming efficiency of similar projects for addressing a common set of related problems, such as the need for content management system in web authoring, some programmers write programming frameworks to integrate the bare bone workflow of a system that acts like a prototype. It is then on the prototype that more details are added and project-specific needs are satisfied.
While you can create a php website from scratch, spinning out code line by line, you may also consider using one of the frameworks such as cakephp and zend framework to accelerate your development if you are familiar with one of them.
However, it’s not all goodness coming out of enjoying such an established foundation. First of all, you have to learn them and some modern frameworks such as Zend Framework are well established that it’s just not easy to master it. While you may spend time learning other people’s framework, you can easily create your own, especially if you have done enough coding and prototyping and have always wanted to be faster in production by reducing repeating stuff, which is the essence of programming frameworks.
Every seasoned programmer has his own library of frameworks, one way or another. If you speak PHP, you may want to read this php framework comparison article by chad.