For one of my projects i had to make some select boxes which would work in a chain. I had 500.000 inserts in mysql which should be found easily. So i implemented 5 chained select boxes.
The first part of the project was not meant to be public so i limited my work to Firefox. But after a while the public part started and i wanted to use some ready made widgets in smarty (like my address widget with 5 chained select boxes). When i tried it in IE 6 it did not worked.
For my new huge project, i did some research so I would work less. I started with cake php and after one week learning i decided that it is no good for me. My last project is not a web site and cakephp looks like it is done for making blogs and news pages.
Then i started to look at ZEND FRAMEWORK. It is a lot more flexible then cakephp and i also didnt needed scafolding. So after learning about a week I started to work on the project. In the begining it went very well, but after 2 month the pain started. I just got to lazy and depended on the framework.
On my earlier projects I allways wrote a small framework which would help me to work through the project. If i had to write something more than twice, I decided to write a function or even better an object.
When i work with zend framework, i just skipped the first process and started to write hardcoded in to the actions. Now as things get more complicated I have a great lack of my usual objects and classes.
So i learned, never get layz of writing the helpers of a project. Take around 30% in the begining of a project for writing your own objects. This will also help you to solve problems even before they occur.