Archief - INFO: PHP5 released!

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.

Cakeman

Legacy Member
PHP:
if(isset($_GET['blog']) && is_numeric($_GET['blog'])) {
	$query = "select id, title, content, unix_timestamp(datum) as datum from blog where id = " . $_GET['blog'];
	$result = mysql_query($query) or die ("<strong>Fout bij ophalen van gegevens:</strong><br />" . mysql_error());

	if(mysql_num_rows($result) <= 0) {
		echo "De post is niet gevonden.";
	}
	else {
		$obj = mysql_fetch_object($result) or die ("<strong>Fout bij het ophalen van de gegevens:</strong><br />" . mysql_error());
		$datum = strftime("%a %d %B %Y - %H:%M", $obj->datum);
		echo '<h1>' . $obj->title . '</h1>';
		echo '<span class="postinfo">' . $datum . '</span><br />';
		echo '<p>' . $obj->content . '</p>';
	}
}
else {
	// de 5 nieuwste blogs tonen
}
Hoe kan je hiervoor dan een class maken die je elke keer weer opnieuw kan gebruiken, no matter hoeveel velden van welk type je moet ophalen en wat ermee moet gebeuren?

KO

Legacy Member
ik sprak over 1 enkele niet aan elkaar gelinkte page, 1 keer je groter gaat is Object oriented beter :)

Ansur

Legacy Member
Cakeman zei:
PHP:
// code
Hoe kan je hiervoor dan een class maken die je elke keer weer opnieuw kan gebruiken, no matter hoeveel velden van welk type je moet ophalen en wat ermee moet gebeuren?
Door een aparte databaseklasse te maken scheidt je je gegevens van je layout à la MVC principe (cfr. Java).

Zet hier functies invoor
- query uit te voeren
- rij op te halen
- db te selecteren
- connecten/disconnecten
- rijen tellen
- fout ophalen
- connectie checken
- ...

Dan heb je 1 klasse, waar je bij verandering in 1 file moet zitten prutsen, niet in de x paginas waar je aan db-handling doet.
Errorchecking enzo kan je ook in je db-klasse doen, ipv de vele die's die ik inje code al zie.

DarkBone

Legacy Member
Ik probeer altijd zoveel mogelijk functionaliteit in klasses te steken, maar dat wil niet zeggen dat je niet meer met pagina's zit waarin hele scripts kunnen voorkomen. Het verschil is dat die scripts nu echter gebruik maken van die objecten objecten, daar waar je vroeger functies zou aanroepen en in het slechtste geval code zou als herhalen (omdat ze bijvoorbeeld niet generiek was). Voordeel hierbij is dat die klasses herbruikt kunnen worden. Maar in hoeverre dat echt noodzakelijk is voor ieder project moet je zelf uitmaken.

Ge gaat altijd een soort 'driver' pagina hebben die gebruik maakt van klasses maar die op zichzelf geen klasse is.

Ansur

Legacy Member
Een main-methode die enkel en alleen een instantie van een bepaalde klasse aanmaakt :)

DarkBone

Legacy Member
Ansur zei:
Een main-methode die enkel en alleen een instantie van een bepaalde klasse aanmaakt :)

Dat vind ik persoonlijk een onnodige doordrijving van het OO model :)

killgore

Legacy Member
Ansur zei:
Weet je, maak eens een corporate site. vanaf dat je daar met 'gewoon wat' scriptjes tussen de HTML enzo afkomt, dan kan dat mss wel werken in het begin, totdat je ineens een kleine aanpassing doet aan een bepaalde databaseveld, of dat er een bepaalde subsectie bij moet komen. Dan is je site bloated van 't kan ni meer en bij de 3e uitbreiding/aanpassing kan je opnieuw beginnen coden.

*mod* en begin niet dat da 2 verschillende dingen zijn, een gewone site en een corporate site. Des te eerder je je simpele zaken goed gaat maken, des te beter
kuch kuch
om php van html te scheiden hebben ze iets uitgevonden dat een templatesysteem noemt.

Grayfox

Legacy Member
de bedoeling van OOP kan toch maar alleen behaald worden als je dan ook alles volgens het OO model schrijft?
kga wel akkoord, als je bijvoorbeeld maar 10lijntjes PHP op je site hebt, en dit zo gaat houden, dat het nutteloos is object orientated programeren toe te passen
maar als je later je site gaat uitbreiden, is dit wel een vereiste imo.

killgore

Legacy Member
Grayfox: routines in klasses steken idd, geheel je site in klasse steken == no go :)

bv.

Je kan een deftig nieuwsscript in aparte scripts steken. Moet je hier echt een klasse voor programmeren?

SuPeRfLy

Legacy Member
k ga die zend studio is kopen en een kijken wat die code analyzer over men code te zeggen heeft.

Ansur

Legacy Member
killgore zei:
Grayfox: routines in klasses steken idd, geheel je site in klasse steken == no go :)

bv.

Je kan een deftig nieuwsscript in aparte scripts steken. Moet je hier echt een klasse voor programmeren?
Ik zou da doen ja :)
In zo een klasse steekt dan quasi geen HTML code, zodat ik erna hetzelfde in oneindig veel verschillende lay-outs kan steken (voor zover dat da mogelijk is me een nieuws-pagina, but you get my point ;))
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