OOP takes time to learn. In the process you'll probably find that you tear up all your code and start from scratch several times. That's just part of the learning process. Each time you'll be getting better at developing the analytical faculties you need. Good classes - like good functions - are usually classes which do just one thing. Lean clases are also much easier to test.
The sooner you start testing the better. Unit-testing is a vital OOP technique. I can't stress that too highly. There are a whole list of benefits apart from the obvious one of quality control.
I'd recommend SimpleTest (see my signature link) as a testing framework. It's the only one with mock objects (come back to that later - basically mocks let you use testing as a design tool) and there's a nice little web tester which even lets you set form field values and submit forms. I'd be utterly lost without it.
Ignore simplistic talk of classes as "nouns". Move swiftly on when someone starts talking about cars. Resist the temptation to link classes together with inheritance - save that for when one object genuinely *is* of the same general type as the parent.
Study patterns as much as you can. These are tried and tested solutions to common problems including the problem of how to get objects to talk to each other now that you can't just use inheritance. There's a lot of material on the web - it doesn't have to be directly about php programming.
This site is a good start:
http://www.phppatterns.com.
Martin Fowler's "Patterns of Enterprise Application Architecture" is essential reading, later. You can see the online catalog
here. The book explains in more detail. It's not beginner-level but it's not as hard going as it might at first appear. Fowler talks very lucidly about many programming problems and how to solve them.