Original text noted that it's "usually a good idea to follow to common patterns". Removed extra 'to'.
In MVC section the sentence "The model-view-controller (MVC) pattern... let..." should be changed to "The model-view-controller (MVC) pattern...lets..."
Also added a semicolon to a sentence in the Factory section that Strunk and White would agree enhances the clarity of the sentence.
- Moved static variable into the static creation method getInstance.
- Replaced "new self();" with "new static" (late static binding to allow
subclassing).
- Changed visibility of __construct to protected.
- Added the two private methods __clone and __wakeup.
- Added DocBlock comments.
- Updated description and enhanced with links to the PHP manual.
I had trouble understanding this passage, but a peek in the documentation
explained it. It's not about "execution" – the execution of the function is
unaffected – it's about name resolution. And it's also not really about
"definition".
While I was at it, I renamed "method" to function, as these are not methods and
methods aren't really affected by namespaces (they're already namespaced by a
class). Also copyedited a bit.