OOP hoe moet ik alles netjes indelen
Ik had al best veel kennis van PHP maar OOP was toch nog bij sommige dingen nieuw voor mij.
Nu heb ik nog een aantal vragen:
Wat is beter? Alle classes in 1 bestand voor het hele systeem, dus elke functie en klasse staat in hetzelfde bestand waar ze worden aangeroepen en dit bestand include ik dan.
Of is het beter om dit te verspreiden (sorteren) over meerdere bestanden?
Mij is altijd geleerd dat je geheugenefficient moet programmeren, dus niet onnodig variabelen aanmaken enzo.
Maar ik heb het gevoel dat OOP juist erg veel werkgeheugen kost.
En ik vind ook dat OOP helemaal niet overzichtelijker is dan procedurele code.
Ik vind het juist een versnipperde code die door elkaar is gegooid.
Of duurt het even voordat ik het voordeel ervan inzie?
Gewijzigd op 01/09/2012 20:03:43 door Jan terhuijzen
Elke class hoort zijn eigen bestandje te hebben dus stel je hebt 10 classes ( 10 php bestandjes ) dan zet je deze in een map ( je library ) om de juiste class op te halen kan je gebruik maken van een autoloader. het hangt er een beetje vanaf hoe je gaat programmeren met OOP maar het is na verloop van tijd veel sneller en overzichtelijker je moet alleen de logica ervan inzien.
Gewijzigd op 01/09/2012 20:26:57 door jan terhuijzen
Bijv. je hebt deze structuur:
En je doet ergens in een bestandje:
Zal de autoloader worden aangeroepen => bestand bestaat namelijk nog niet. Die autoloader laadt dan src/Notification/EmailNotification.php in.
Meer over autoloaders: hier en hier (dat hele topic is trouwens wel interessant om te lezen, daardoor heeft Jasper ook het nut van OO gezien)
Quote:
Mij is altijd geleerd dat je geheugenefficient moet programmeren, dus niet onnodig variabelen aanmaken enzo.
Maar ik heb het gevoel dat OOP juist erg veel werkgeheugen kost.
Maar ik heb het gevoel dat OOP juist erg veel werkgeheugen kost.
Dat doet het niet. OOP kost misschien iets meer server ruimte, maar werkgeheugen niet.
Quote:
En ik vind ook dat OOP helemaal niet overzichtelijker is dan procedurele code.
Ik vind het juist een versnipperde code die door elkaar is gegooid.
Of duurt het even voordat ik het voordeel ervan inzie?
Ik vind het juist een versnipperde code die door elkaar is gegooid.
Of duurt het even voordat ik het voordeel ervan inzie?
Het duurt even voordat je het voordeel ervan inziet. Een van die voordelen is dat als je echt goed OO script je je script zo flexibel hebt gemaakt dat je maar 1 keer een login systeem hoeft te maken en je die overal kunt gebruiken. Doordat je zo met 10 regels code ipv MySQL een oracle database kunt ondersteunen. Of i.p.v. opslaan in een database opslaan in een bestand.
Of wat dacht je van meerdere security levels? Dat is zo gedaan.
Neem als voorbeeld 8 van de 10 topics die hier voorbij komen: een lap gehutste html/php/sql code met de vraag 'het werkt niet'. Heel vaak zit het probleem in de query.
Aan de andere kant, ik heb mijn database afhandeling in classes zitten en schrijf eigenlijk nauwelijks sql. En dat het ophalen van data niet werkt kan ik me al helemaal niet voorstellen :)