Článek není špatný, akorát bych měl několik poznámek:
1) připadá mi to trochu jako manuál, ten je na php.net, OOP není o syntaxi ale o způsobu myšlení a hlavně praxi (ostatně jako každý jazyk)
2) procedurální programování není špatný a nechápu, proč je dotyčný označen za bastliče. Na tom přece není nic zlého, z praxe jsem spíš pro přehledný jednoduchý procedurální webík než spagetti bastl či nevhodně navržené OOP. Samozřejmě souhlasím s tím, že úroveň PHP programátorů je značně kolísavá a OOP nutí alespoň nějak úhledně psát kód. Na druhou stranu se totéž dá udělat i s funkcemi a kdo píše "jako prase", OOP se učit asi nebude.
3) "Objekt je něco, co dokáže udržovat svůj stav". To v případě PHP IMHO není zcela pravda. Pokud nepoužijeme speciální cache či např. SESSION, objekty mezi stránkami se stále vytváří a zanikají. Ideální stav by bylo něco na způsob Javy (tam prý lze "odložit" instanci to speciální cache)
4) abstract function a interface jsou pro mne divnost. Ve Vašem příkladě je to již patrné - když mám předka a definuji že v potomcích používám nějakou metodu, definuji ji jako abstract protected function. Potom ale i v potomkovi musí být protected (nebo public), což ale mi přijde divný - ta metoda pro toho potomka je ve vztahu private, ne protected. Nikdo další ji již dědit nemusí a potomek je třeba final. Interface jsou IMHO užitečné při rozsáhlejším počtu vetších tříd, jinak mi to přijde zbytečné.
5) jestli bude další čánek, přimlouvám se rozebrat nativní PHP interface a třídy, popř. výjimky jako např. interface Countable apod. - zkrátka SPL extenzi. Do toho osobně moc nevidím.
Na závěr musím poděkovat za "osvětu" PHP komunity, v poslední době co jsem viděl za "kódy", byla síla... jak jsem již řekl, obávám se však, že ten, kdo chce psát rozumně, hledá tyto možnosti, ale kdo ne, bude psát "jak čuně" pořád...