OOP Class Check
Hey mensen, ben sinds gisteren me aan het verdiepen in de fenomeen OOP.
Nou heb ik een Class geschreven Page_numbers met het idee dat ik um makkelijk in andere projecten kan gaan gebruiken.
Nou is mijn vraag of jullie even naar de class willen kijken of ik het goed heb aangepakt omdat ik met het fenomeen nog niet zo heel bekend ben.
Opbouwende kritiek is van harte welkom (ook issues over bad practice)
De Class:
Nou heb ik een Class geschreven Page_numbers met het idee dat ik um makkelijk in andere projecten kan gaan gebruiken.
Nou is mijn vraag of jullie even naar de class willen kijken of ik het goed heb aangepakt omdat ik met het fenomeen nog niet zo heel bekend ben.
Opbouwende kritiek is van harte welkom (ook issues over bad practice)
De Class:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
/********
* Show all errors
********/
error_reporting(E_ALL);
ini_set("display_errors", 1);
?>
/********
* Show all errors
********/
error_reporting(E_ALL);
ini_set("display_errors", 1);
?>
Gewijzigd op 16/03/2006 16:49:00 door The Beeding Clown
Ben ik de enige die hier onder de code blokken " target="_blank"> ziet staan? ;-)
Je hebt het prima gedaan ;)
Alleen je moet wat meer commentaar binnenin het script geven. (niet dat ik dat doe maar oke)
Alleen je moet wat meer commentaar binnenin het script geven. (niet dat ik dat doe maar oke)
Tnx, Commentaar zet ik in mijn eigen scripts nooit zo heel veel... Omdat je het zelf gescript en als je er naar kijkt weet je meestal gelijk weer wat het allemaal doet.
Is het wel toegestaan op het moment dat je het object aanmaakt je gelijk de Class varablen mee geeft ??
En kan het geen kwaat de Constructor zo vol te zetten met dingen ??
Is het wel toegestaan op het moment dat je het object aanmaakt je gelijk de Class varablen mee geeft ??
En kan het geen kwaat de Constructor zo vol te zetten met dingen ??
Gewijzigd op 15/03/2006 16:19:00 door The Beeding Clown
Jah dat moet juist ;)
nano:
Dat zeggen heel veel mensen, maar ik denk niet dat als je je script over een maand of twee terug ziet dat je gelijk weet hoe het werkt.Tnx, Commentaar zet ik in mijn eigen scripts nooit zo heel veel... Omdat je het zelf gescript en als je er naar kijkt weet je meestal gelijk weer wat het allemaal doet.
Quote:
Ah oke, tnx.. (ben er allemaal nog een beetje nieuw mee)Jah dat moet juist ;)
Gewijzigd op 15/03/2006 16:41:00 door The Beeding Clown
Sebastiaan:
Daar heb je eigenlijk wel gelijk in idd.. En zeker met classes, die zijn meer plug and play en kijk je ook natuurlijk niet zo heel vaak meer na.Dat zeggen heel veel mensen, maar ik denk niet dat als je je script over een maand of twee terug ziet dat je gelijk weet hoe het werkt.
Gewijzigd op 15/03/2006 16:41:00 door The Beeding Clown
Daarom. Bijvoorbeeld: Een MySQL database driver voor de site bijvoorbeeld schrijf je als je het goed doet maar één keer, je hoeft hem niet meer terug te zien, je include hem en klaar. Maar over twee jaar wil je je site wat uitbreiden en je weet niet precies wat die ene functie deed. Er staat geen commentaar in je script en je bent twee uur bezig wat anders 30 seconden zou duren :-)
Ik heb laatst nog een lading functies van 1 jaar oud van mijzelf omgezet in een class (in beiden geen commentaar, alleen maar logische functienamen, logische variabelen) en ik moet zeggen dat het me wel 20 seconden meer tijd koste dan toen ik die namen nog uit mijn hoofd kende.
Ik denk (herstel: ik weet) dat het bij klassen zoals deze van Nano (of die ik aan het bijwerken was) niet erg nodig is om commentaar in te voegen. Voor anderen mag het misschien handig zijn, maar ik denk dat het wel handig kan zijn voor anderen.
Mocht je het publiceren, dan gewoon goed documenteren. Bijvoorbeeld met PHPdoc.
Ik denk (herstel: ik weet) dat het bij klassen zoals deze van Nano (of die ik aan het bijwerken was) niet erg nodig is om commentaar in te voegen. Voor anderen mag het misschien handig zijn, maar ik denk dat het wel handig kan zijn voor anderen.
Mocht je het publiceren, dan gewoon goed documenteren. Bijvoorbeeld met PHPdoc.
Daar heb je idd ook wel weer gelijk in.. deze Class is ook niet zo heel erg ingewikkeld in elkaar gezet.
Heb ik nog wel even 1 vraagje.. :unsure:
Ik wil naast deze Class vanavond ook een Database Class gaan maken.
Hoe moet ik de query's uit deze Class veranderen zodat de gebuik maken van de Database Class ??
Moet ik in dit Object een Object Database aanmaken ?? Hoe gaat dat allemaal presies in zijn werk.
Heb ik nog wel even 1 vraagje.. :unsure:
Ik wil naast deze Class vanavond ook een Database Class gaan maken.
Hoe moet ik de query's uit deze Class veranderen zodat de gebuik maken van de Database Class ??
Moet ik in dit Object een Object Database aanmaken ?? Hoe gaat dat allemaal presies in zijn werk.
Ik geef zelf meestal bij de constructor een reverence naar een database-object mee. Maar aangezien dit een deel van een database-object zou kunnen zijn zou ik uitgaan van extend.
(Slecht) voorbeeldje:
je moet wel even oppassen: De __construct functie van Page_numbers overschrijft die van Database, dus je kan denk ik het beste bij Database een functie initConnection() maken, en vanuit je __construct functie daar naar verwijzen.
(Slecht) voorbeeldje:
Code (php)
je moet wel even oppassen: De __construct functie van Page_numbers overschrijft die van Database, dus je kan denk ik het beste bij Database een functie initConnection() maken, en vanuit je __construct functie daar naar verwijzen.
woei, oke...
Uhmm "extends" betekend toch dat ie alle Propeties en Methods van zijn Parent Class erft ??
De $this-> refereerd (als ik het goed heb) naar zijn eigen Class (object)
Is het niet makkelijker (zit ik ineens te denken) om na het aanmaken van het Database Object, in de Pagenumber Class "$Database->run_query($sql);" te doen, of gaat dat niet werken, is dat niet slim om het op die manier aan te pakken?
Sorry als ik mischien een beetje bull lul nu, ik ben er echt nog een beetje nat achter mijn oren mee allemaal.
Ik hoor graag de reacties, wil het allemaal snel en belangrijker nog, op de goeie manier onder de knie krijgen.
Uhmm "extends" betekend toch dat ie alle Propeties en Methods van zijn Parent Class erft ??
De $this-> refereerd (als ik het goed heb) naar zijn eigen Class (object)
Is het niet makkelijker (zit ik ineens te denken) om na het aanmaken van het Database Object, in de Pagenumber Class "$Database->run_query($sql);" te doen, of gaat dat niet werken, is dat niet slim om het op die manier aan te pakken?
Sorry als ik mischien een beetje bull lul nu, ik ben er echt nog een beetje nat achter mijn oren mee allemaal.
Ik hoor graag de reacties, wil het allemaal snel en belangrijker nog, op de goeie manier onder de knie krijgen.
extend -> [vertalen] -> uitbreiden, dus ja :-)
Je kan ook in de Pagenumbers-klasse een Database-instance maken, maar ik denk dat een extend hier gewoon beter op z'n plaats is aangezien de pagenumbers-klasse eigenlijk een onderdeel, een uitbreiding op de Database-klasse is.
$this wijst inderdaad naar alle functies en alle variabelen binnen de scope van de klasse, en als je een klasse extend, krijg je inderdaad ook alle functies en variabelen van de klasse die je uitbreidt in die scope, tenzij je ze in de extentie overschrijft.
$this wijst inderdaad naar alle functies en alle variabelen binnen de scope van de klasse, en als je een klasse extend, krijg je inderdaad ook alle functies en variabelen van de klasse die je uitbreidt in die scope, tenzij je ze in de extentie overschrijft.
Ah oke.. ik snap um idd.. :)
ik ga er lekker verder mee spelen.. Als ik er niet uitkom kom ik jullie wel weer even lastig vallen met alle problemen waar ik tegenaan loop. :P
Heel erg bedankt voor de feedback en antwoorden op mijn vragen, stel het zeer op prijs :)
ik ga er lekker verder mee spelen.. Als ik er niet uitkom kom ik jullie wel weer even lastig vallen met alle problemen waar ik tegenaan loop. :P
Heel erg bedankt voor de feedback en antwoorden op mijn vragen, stel het zeer op prijs :)




