I'd suggesting picking an old, successful established project, like media wiki or drupal, and becoming very very familiar with it. These projects have gone through many iterations and have collected the solutions to many problems that you didn't even know you had (yet). Are they perfect examples? There is no such thing as perfect code.
Lightweight generally means unused.

I'd study Zend Framework.
I'd also suggest picking a few interesting people and then checking out anything they do. I have a short list of people and projects that I follow and check in with repeatedly, just because they are always coming up with some interesting bits of code.
Learning software based on a doc comment generated API reference is like fast forwarding past the movie and then watching the credits. I rarely find API Reference docs to be the best way to learn about a body of code. What is?
Throw this at the bottom of your index.php
PHP Code:
echo implode(get_included_files(), "\n");
And point your browser to the working app.
(Use a register shutdown function if the app does funky exits or output buffering)
Now, use the list and open the files one by one and read the code in context.
So how would I learn about Symfony if I were approaching it for the first time? First, I'd read over their user manual. Then I'd get an example app going. Then I'd do the trick with included files. Then I'd try to write a more complicated application. I'd join their forums and mailing lists. I'd look at other apps that were available. I'd probably never look at the API Reference except in the code.
Bookmarks