I've not so long ago started a new site from scratch. When building website, I more often than not design the layout first, with an aspect of nearly everything in it. For example, I'd design and include error messages, which 99% of the time would never be seen, etc. And that is what I have done this time too.
Recently I have started the back end coding in PHP to make the pages dynamic in their construction. So all the HTML, error messages and content is templated. Next I am moving on to designing the database so that I can begin designing the CMS, although with this being a solo evening project, it is going to take a long time to include all the features.
On the topic of OOP, I have recently been working with OO PHP, and I think its great. I mean for this new site, I have created a template class, which when called and passed an array of parameters, it will produce a complete page. I am very pleased with it. Lol. But I will continue this trend with all aspects of the CMS also.
And to Peter, with regard to creating a dynamic website, the best thing I think you can do is firstly find a good book (I like the PHP and MySQL book by Larry Ulman) and come up with a project. Then sit down and teach yourself. Use the book for pointers. Then PHP.net is an awesome resource too. As is Google. And if all else fails, you have DaniWeb - something which I wished I had found when I was first learning (although I still am).
Best of luck.
R