Archief - PHP: object oriented / procedural

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Dubbelpunt

Legacy Member
Graag had ik van jullie jullie mening gekregen omtrent procedureel vs object oriented programmeren in PHP. Ik hoor van alle kanten tegenstrijdige argumenten. Het lijkt alsof Object Oriented DUIDELIJK dé manier is, maar dan hoor ik van andere php developers dat dit bullsh*t is want indien goed gecodeerd, dan is er niets mis met procedureel php programmeren. Ik spreek hier over een website die wekelijks groeit en blijft groeien, maand na maand!

adrianhates

Legacy Member
procedureel php programmeren kan goed als je systeem beperkt is. Als het groot wordt is het aangenamer om met OO te werken. OO kan je natuurlijk ook heel gemakkelijk sharen en bij andere projecten gebruiken.

Stel nu dat je een mail classe hebt. Die kan je gewoon simpel weg van het 1 naar ander project kopieren.

OO programmeren houdt ook je code overzichtelijker , aangezien er alleen maar functies worden aangeroepen ipv heel de code op 1 pagina te hebben staan.

OO is heel flexibel , denk maar aan bepaalde patronen zoals Strategy , Template en Singleton.

Dat zijn de eerste punte die in mijn hoofd opkomen , zijn vast nog een pak meer mogelijkheden met OO

mattyh88

Legacy Member
'k Heb sinds vorig jaar ook leren OO-programmeren en de enigste reden waarom ik dit aangenamer vind, is omdat het zooveeel overzichtelijker is. In't begin is het even wennen vind ik, maar eens je ermee weg bent, kan je eigenlijk blijven gaan. Je projecten groeien net alsof het niets is. :)

My vote goes to OO-programmeren =)

passero

Legacy Member
Ik schrijf ook altijd zoveel mogelijk OO in php. Soms kan je niet anders omdat PHP initieel niet echt OO is maar je kan het wel voor 90% OO maken imo.
Als je gewoon bent om OO talen te gebruiken zoals Java, .net, C++,... dan is het leuker om dit ook in PHP te doen. Zoals adrianhates aangeeft heb je dan de kennis van de patterns al die je een hele hoop vooruit kunnen helpen.

Cycloon

Legacy Member
adrianhates zei:
Stel nu dat je een mail classe hebt. Die kan je gewoon simpel weg van het 1 naar ander project kopieren.

Je kan natuurlijk ook perfect een mail functie kopiëren naar een ander project.

adrianhates zei:
OO is heel flexibel , denk maar aan bepaalde patronen zoals Strategy , Template en Singleton.

Al die patterns kan je in principe ook proceduraal programmeren.

Het enige probleem bij proceduraal programma is dat je zelf afspraken moet gaan maken over bv naamgeving, hoe je alles gaat samenhouden, wat waar moet komen etc... Dit terwijl dit bij een OO-ontwerp direct een stuk duidelijker is en al die afspraken al voor jou zijn uitgewerkt. OO programmeren is dus dé manier om overzichtelijke code te krijgen die flexibel is maar dan moet je de afspraken ook zo volgen zoals ze zijn bedoeld. Foutief OO programmeren levert ook niks op.

Jerre Muesli

Legacy Member
Ach voor vele kleinere projecten heeft dit weinig voordeel denk ik.
Tevens kan je in PHP perfect non-OO programmeren.
Ik ben een zware voorstander van OO, maar het is questie van het afwegen van voor- en nadelen.
Als je zwaar wil uitbreiden zou ik toch zoveel mogelijk OO doen.

dJeez

Legacy Member
Bekijk de source van Drupal eens en dan zal je snel genoeg inzien waarom OO voor een project van die omvang imho (en ik ben niet de enige die dat denkt) toch een veel betere keuze geweest zou zijn.

Dubbelpunt

Legacy Member
dJeez zei:
Bekijk de source van Drupal eens en dan zal je snel genoeg inzien waarom OO voor een project van die omvang imho (en ik ben niet de enige die dat denkt) toch een veel betere keuze geweest zou zijn.

geweest zou zijn? is drupal dan procedureel geschreven? :oink:

passero

Legacy Member
Drupal is al een oud project. TOen was er nog zo geen ondersteuning voor OO gelijk nu. Ik geloof wel dat we eraan gedacht hebben om de nieuwe versie gedeeltelijk OO te maken omdat het inderdaad beter is maar kweet eigenlijk niet hoe het daar nu mee zit...

WHiSPy

Legacy Member
Tyfius zei:
Drupal is niet geschreven volgens PHP OO maar volgt wel de OO principes. Zie: Drupal Programming from an Object-Oriented Perspective | Drupal API

Daarnaast is er in Drupal 7 vrij veel OO bijgekomen. Heel de database layer is met PDO geschreven.

Probleem is 't 'm net in 't "bijgekomen" stuk. :)

Zo'n groot systeem moet je van de grond af in OO opbouwen of je gaat een beetje een zooitje krijgen waar niemand nog wijs uit geraakt. Op een gegeven moment gaan ze gewoon de beslissing moeten nemen: dit is een nieuwe major release en die kunnen we niet backwards compatible maken met de plugins voor oudere releases. Vanaf dat moment gaan er meer mensen 't geheel ook serieus kunnen aanpakken.

Het is trouwens niet voor niets dat er veel gezucht naar boven komt als 'k met mensen praat die met drupal moeten beginnen werken.

Tyfius

Legacy Member
WHiSPy zei:
Probleem is 't 'm net in 't "bijgekomen" stuk. :)

Zo'n groot systeem moet je van de grond af in OO opbouwen of je gaat een beetje een zooitje krijgen waar niemand nog wijs uit geraakt. Op een gegeven moment gaan ze gewoon de beslissing moeten nemen: dit is een nieuwe major release en die kunnen we niet backwards compatible maken met de plugins voor oudere releases. Vanaf dat moment gaan er meer mensen 't geheel ook serieus kunnen aanpakken.

Het is trouwens niet voor niets dat er veel gezucht naar boven komt als 'k met mensen praat die met drupal moeten beginnen werken.
Dan ligt dat toch aan die mensen. Drupal gebruikt al jaren de modulaire OO principes, alleen de manier van uitvoering is niet volgens de PHP OO regels. Waarvan de syntax trouwens ook maar allesbehalve is als je dat met echte OO talen gaat vergelijken.

De API documentatie bij Drupal is ook van redelijke hoge kwaliteit en er zijn code-wise niet echt veel manieren om iets verkeerds te doen. Die code is echt geen zootje hoor.

WHiSPy

Legacy Member
Tyfius zei:
Dan ligt dat toch aan die mensen. Drupal gebruikt al jaren de modulaire OO principes, alleen de manier van uitvoering is niet volgens de PHP OO regels. Waarvan de syntax trouwens ook maar allesbehalve is als je dat met echte OO talen gaat vergelijken.

De API documentatie bij Drupal is ook van redelijke hoge kwaliteit en er zijn code-wise niet echt veel manieren om iets verkeerds te doen. Die code is echt geen zootje hoor.

Met alle respect, maar als de OO principes van een bepaalde taal je niet bevallen, gebruik dan 'n andere taal. Architecturaal valt 't naar mijn mening hoegenaamd niet te verdedigen waarom je de regels niet zou volgen en andere mensen zou dwingen om jouw manier van denken te volgen.

Kan perfect zijn dat 't van hoge kwaliteit is, maar de achterliggende idee blijft vreemd voor mij. Ik zit nu ondertussen 4 jaar en half in de java-wereld en ik zie geen reden waarom ik daarin mijn eigen draai aan de taal zou moeten geven. Een taal is ten allen tijde 'n tool to a means en geen doel op zich. :)

Ik heb zelf een kleine 4 jaar in php geprogrammeerd (sommige mensen zullen zich mij nog herinneren van in die tijd, aangezien ik hier toen zeer regelmatig postte), maar bepaalde beperkingen in php begonnen mij zodanig te storen dat ik verder ben gaan kijken.

Jonathan

Legacy Member
OO wegens de overzichtelijkheid en logische manier van werken ..

metalleke

Legacy Member
WHiSPy zei:
Met alle respect, maar als de OO principes van een bepaalde taal je niet bevallen, gebruik dan 'n andere taal. Architecturaal valt 't naar mijn mening hoegenaamd niet te verdedigen waarom je de regels niet zou volgen en andere mensen zou dwingen om jouw manier van denken te volgen.

Er zijn ook nog andere redenen om voor een technologie te kiezen he. Denk dat deze bij het begin meer zullen doorgewogen hebben.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan