Matt Zandstra's [PHP Objects, Patterns and Practice is excellent. As is Dagfinn Reiersol's [URL="http://www.amazon.co.uk/gp/product/1932394753"]PHP in Action: Objects, Design, Agility](http://www.amazon.co.uk/gp/product/143022925X). IMO, if you want to learn things like MVC, OOP, Design Patterns etc, don't use a Framework - at least not to build anything.
Build the objects, learn the patterns, create a framework. Only then will you know why these frameworks exist and why they are built the way they are. It's one thing becoming proficient in say, Zend, Symfony, CI, Kohana or Cake - anyone can read the documentation and build an application. The real developers, the ones you want to hire, are the ones who know why they have view helpers, event notifiers, etc... If you know why they have them, you know when to use them to solve a particular problem, because that's what we do. Developers solve problems.