Ik ga binnenkort een revisie schrijven van een CMS-achtig systeem in PHP. De oude was zgn. 'procedureel' opgezet, zeg maar "C-style" functies, netjes gegroepeerd in files-to-be-included (ook qua naamgeving erg 'clean').
Nu overweeg ik voor de nieuwe versie over te stappen naar OO, zeg maar "C++/Java style". Dat ken ik van m'n ervaring met C++ en Java en het is natuurlijk prachtig, maar ik ben nou niet bepaald kapot van de OO implementatie in PHP4. Dit vanwege <vul hier alles in wat PHP5-OO wel heeft>.
Daarnaast heb ik m'n vraagtekens bij PHP-OO en de "stateless-heid" van HTTP. Waar ik OO met name toegepast heb in client applicaties als games en editors in C++, Java en Lingo en dus mooie "persistent" object-structuren had, zie ik er het nut niet helemaal van in om na elke GET/POST request weer een hele zooi classes te moeten instantieren op basis van wat sessie-muk (of erger nog, in sessies geserializde objecten weer moet deserializen). Dit wat betreft de globale applicatie-structuur.
Voor tijdelijke gegevensopslag tijdens de afhandeling van een request gebruik ik in PHP altijd associatieve arrays. Ik heb ook wel es met objecten geprobeerd, maar het feit dat een object verkregen uit een "mysql_fetch_object" niet eens gecast kan worden naar een custom-made class zodat ik er direct methods van kan aanroepen vinnik toch wel tamelijk brak. Nee, eerst middels een truucje het enkelvoudige constructor-probleem omzeilen en omkitten naar je eigen object...
Dan fiets ik liever een associatieve resultset rechtstreeks door een kale functie, toch, of mis ik iets?
Een ander punt dat ik m'n uiteindelijke beslissing mee moet nemen, is dat "klant" bij de presentatie van ons aanvankelijke plan weinig interesse toonde in hippe zaken als XML en XSLT. Hij gaat liever voor "lean and mean", "rough en ready" PHP+MySQL = HTML. Bij nader inzien wel cool eigenlijk (fuk XML
). Wat heeft dit met PHP-OO te maken? s n e l h e i d ! Ik moet toegeven het nog nooit getest te hebben maar volgens mij is PHP-OO veel trager dan de procedurele aanpak. Is dit eigenlijk echt zo?
Onder jullie zijn er vast genoeg die voor dezelfde keuze hebben gestaan en er uiteindelijk 1 gemaakt hebben, ben benieuwd wat en waarom, en wat je op basis van je ervaringen mij aanraadt. Nee mijn lichte voorkeur voor de procedurele aanpak schuif ik niet onder stoelen of banken
. Maar mischien zijn er ook mensen die beide handig combineren?
Nu overweeg ik voor de nieuwe versie over te stappen naar OO, zeg maar "C++/Java style". Dat ken ik van m'n ervaring met C++ en Java en het is natuurlijk prachtig, maar ik ben nou niet bepaald kapot van de OO implementatie in PHP4. Dit vanwege <vul hier alles in wat PHP5-OO wel heeft>.
Daarnaast heb ik m'n vraagtekens bij PHP-OO en de "stateless-heid" van HTTP. Waar ik OO met name toegepast heb in client applicaties als games en editors in C++, Java en Lingo en dus mooie "persistent" object-structuren had, zie ik er het nut niet helemaal van in om na elke GET/POST request weer een hele zooi classes te moeten instantieren op basis van wat sessie-muk (of erger nog, in sessies geserializde objecten weer moet deserializen). Dit wat betreft de globale applicatie-structuur.
Voor tijdelijke gegevensopslag tijdens de afhandeling van een request gebruik ik in PHP altijd associatieve arrays. Ik heb ook wel es met objecten geprobeerd, maar het feit dat een object verkregen uit een "mysql_fetch_object" niet eens gecast kan worden naar een custom-made class zodat ik er direct methods van kan aanroepen vinnik toch wel tamelijk brak. Nee, eerst middels een truucje het enkelvoudige constructor-probleem omzeilen en omkitten naar je eigen object...
Dan fiets ik liever een associatieve resultset rechtstreeks door een kale functie, toch, of mis ik iets?
Een ander punt dat ik m'n uiteindelijke beslissing mee moet nemen, is dat "klant" bij de presentatie van ons aanvankelijke plan weinig interesse toonde in hippe zaken als XML en XSLT. Hij gaat liever voor "lean and mean", "rough en ready" PHP+MySQL = HTML. Bij nader inzien wel cool eigenlijk (fuk XML
Onder jullie zijn er vast genoeg die voor dezelfde keuze hebben gestaan en er uiteindelijk 1 gemaakt hebben, ben benieuwd wat en waarom, en wat je op basis van je ervaringen mij aanraadt. Nee mijn lichte voorkeur voor de procedurele aanpak schuif ik niet onder stoelen of banken