OOP Class Check

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

The Beeding Clown

The Beeding Clown

15/03/2006 16:07:00
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php

/********
*    Show all errors
********/

error_reporting(E_ALL);
ini_set("display_errors", 1);

?>
Gewijzigd op 16/03/2006 16:49:00 door The Beeding Clown
 
PHP hulp

PHP hulp

25/01/2022 12:49:25
 

15/03/2006 16:09:00
Quote Anchor link
Ben ik de enige die hier onder de code blokken " target="_blank"> ziet staan? ;-)
 
Han eev

Han eev

15/03/2006 16:09:00
Quote Anchor link
Je hebt het prima gedaan ;)
Alleen je moet wat meer commentaar binnenin het script geven. (niet dat ik dat doe maar oke)
 
The Beeding Clown

The Beeding Clown

15/03/2006 16:17:00
Quote Anchor link
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 ??

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$page_nums
= new Page_numbers("guestbook", "WHERE blocked='N'", $link_id);
?>


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
 
Han eev

Han eev

15/03/2006 16:18:00
Quote Anchor link
Jah dat moet juist ;)
 

15/03/2006 16:20:00
Quote Anchor link
nano:
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.
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.
 
The Beeding Clown

The Beeding Clown

15/03/2006 16:20:00
Quote Anchor link
Quote:
Jah dat moet juist ;)
Ah oke, tnx.. (ben er allemaal nog een beetje nieuw mee)
Gewijzigd op 15/03/2006 16:41:00 door The Beeding Clown
 
The Beeding Clown

The Beeding Clown

15/03/2006 16:40:00
Quote Anchor link
Sebastiaan:
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.
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.
Gewijzigd op 15/03/2006 16:41:00 door The Beeding Clown
 

15/03/2006 16:58:00
Quote Anchor link
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 :-)
 
Jelmer -

Jelmer -

15/03/2006 17:18:00
Quote Anchor link
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.
 
The Beeding Clown

The Beeding Clown

15/03/2006 17:45:00
Quote Anchor link
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.
 
Jelmer -

Jelmer -

15/03/2006 17:52:00
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
Class Database{
   function
doeIets() {
      echo 'ik doe iets, en je mag bij voorkeur nooit uit een klasse echoen';
   }
}


Class Page_numbers extends Database{
   function
doeNiets() {
      $this->doeIets();
   }
}

?>


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.
 
The Beeding Clown

The Beeding Clown

15/03/2006 18:08:00
Quote Anchor link
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.
 

15/03/2006 18:12:00
Quote Anchor link
extend -> [vertalen] -> uitbreiden, dus ja :-)
 
Jelmer -

Jelmer -

15/03/2006 18:15:00
Quote Anchor link
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.
 
The Beeding Clown

The Beeding Clown

15/03/2006 18:38:00
Quote Anchor link
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 :)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.