Weblessen.nl - Voor iedereen die wat wil leren..


9. Classes.

9.1 Wat is een class en wat zijn de voordelen van het gebruik van classes.

Een class is een verzameling van variabelen (attributes) en functies(methods). Samen vormen ze een de omschrijving en het functioneren van een object.

Het grootste voordeel van het werken met classes is dat je de code overzichtelijk bij elkaar kan houden. Zeer zeker als je code voor diverse projecten wilt gebruiken kan je veel tijd besparen door goed gedefineerde classes. Je zou bijvoorbeeld een set classes kunnen maken waarbij je wrappers voor het bewerken van een database schrijft. Als je dit goed aanpakt kan je die classes in ieder nieuw project hergebruiken.

9.2 Hoe defineer je een class.

Het aanmaken van een class is zeer simpel. Je maakt een nieuw bestand aan met daarin de attributes en de methods:

<code>

<?php
class mysql_actions {

        var $host;
        var $db;
        var $username;
        var $password;
        
        function connect(){
        
                /*
                Binnen deze functie de connectie naar de database.
                */              

        }       

}
?>

</code>

We hebben nu een class met 4 attributes en 1 method. Sla het bestandje op als mysql_class.php voor later gebruik.

9.3 Hoe roep je een class en zijn attributes en/of methods aan?

Classes zet je bij goed gebruik altijd in aparte bestanden. We moeten ze dus eerst via require includen in het bestand waarin we de class willen gebruiken. Daarna moeten we een nieuwe instance maken.

<code>

<?php
        /*
        Include het bestand en maak een nieuwe instance aan. 
        */
        include ("path/mysql_class.php");
        $db =  new mysql_actions;
?>

</code>

Op zich hebben we nu niets anders gedaan dan het aan maken van een nieuw object dat de beschikking heeft over 4 attributes en 1 method, te weten:

  • $host voor de server waar de database op staat.
  • $db voor de database die we willen gebruiken.
  • $username voor de inlognaam.
  • $password voor het wachtwoord.
  • connect() als method voor het eigenlijke connecten naar de database.

Binnen een pagina kan je natuurlijk ook meerdere instances aanmaken waarbij je bijvoorbeeld een connectie maakt naar diverse databases.

Als je de attributes wil aanroepen die je dit door de instance naam te gebruiken en een verwijzing te maken naar het attribute. Daarbij moet je niet het dollarteken gebruiken:

<code>

<?php
        include ("path/class.php");
        $db =  new mysql_actions;
        
        $db->host = "localhost";
        $db->db = "test";
        $db->username = "guppie";
        $db->password = "ikke";
?>

</code>

We hebben nu de diverse waardes in de attributes van de class gezet. Je kan ook de waardes van de attributes uitlezen. Dat gaat als volgt:

<code>

<?php
        include ("path/class.php");
        $db =  new mysql_actions;
        
        ..............
        
        $host_value_db_instance = $db->host;
?>

</code>

De $host_value_db_instance bevat dan de waarde van de hostname die bij de instance db in gebruik is.

Als je echt zinnig gebruik wilt maken van de class moet je natuurlijk de method aanpassen. Dat doe je door binnen de method de attributes uit te lezen en daarmee de connectie tot stand te brengen. Attributes binnen een class roep je aan met $this:

<code>

<?php
class mysql_actions {

        var $host;
        var $db;
        var $username;
        var $password;
        
        function connect(){
        
                $ip = $this->host;
                $db = $this->db;
                $user = $this->username;
                $pass = $this->password;
                
                mysql_connect( $ip, $user, $pass );
                mysql_select_db( $db ) or die ("Tjee, geen connectie mogelijk");
        }       

}
?>

</code>

Als laatste hoeven we dan alleen de method connect aan te roepen vanuit het bestand waar we de instance van de class hebben aangemaakt. Het zal er dan als volgt uit zien:

<code>

<?php
        include ("path/class.php");
        $db =  new mysql_actions;
        
        $db->host = "localhost";
        $db->db = "test";
        $db->username = "guppie";
        $db->password = "ikke";
        
        $db->connect();
?>

</code>

Een mooi voorbeeld voor een class is de mysql_to_rdf class die je kan vinden op: mysql_to_rdf.phps Het gaat hierbij om een class die een rdf bestand (Netscape channel file) kan aanmaken. Het plukt een X tal items uit een database die het kan wegschrijven in dat rdf bestand.

9.4 Attributes van een class uitlezen.

Met de nieuwe class functies zijn er nog meer mogelijkheden. Zo is er sinds kort (PHP 4.0.0 stable) de get_class_vars functie. Als je die loslaat op een class krijg je een array met alle attributes van een class:

<code>

<?php
        $vars = get_class_vars(classname);

        while (list($key, $val) = each($vars)) {
         echo $key . "<br>\n";
        }
?>

</code>

9.5 Methods van een class uitlezen.

Net zoals je de attributes kan uitlezen kan je ook de methods van een class te weten komen:

<code>

<?php
        $vars = get_class_methods(classname);

        while (list($key, $val) = each($vars)) {
         echo $val . "<br>\n";
        }
?>

</code>

9.6 Kijken welke classes er aanwezig zijn.

Nu zal je in de meeste gevallen gewoon in de classfile kunnen kijken om daar de attributes te bestuderen maar nog dit jaar zal Zend met een compiler op de markt komen waardoor al snel de eerste gecompileerde classes zullen verschijnen. In zo'n geval is het handig om de attributes op te vragen. Nadeel is wel dat attributes in php classes altijd public zijn. Talen zoals Java hebben binnen een class zowel private als public attributes.

Om de classes op te vragen waarvan een instance is aangemaakt gebruik je de functie get_declared_classes:

<code>

<?php
        $vars = get_declared_classes();

        while (list($key, $val) = each($vars)) {
         echo $val . "<br>\n";
        }
?>

</code>



Webdesign

Maak van Weblessen.nl uw startpagina!
Plaats Weblessen.nl bij uw favorieten. Neem contact met me op.
Heb je een Hosting?
Geef hier jouw mening over jouw web hosting

Webadres.info: Goede domeinnaam kiezen

Gesponsorde links:
Budget Webhosting
Web2host.nl
10eurohost.nl
Denit Hosting Solutions
YourHosting.nl
Starthosting.nl
Eduvision.nl
Educruitment.nl
Webadres.info


De link top 5:
Gratis Computercursussen
WebmasterStartpagina
MijnStartpagina.nu
Bluebird Animatie
Anouksweb
Link aanmelden
Alle Partners

Webmasterwoordenboek
A | B | C | D | E | F
G
| H | I | J | K | L | M
N
| O | P | Q | R | S | T
U | V | W | X | Y | Z

Films vanavond op Tv:

De klok:

(advertentie)

HTML leren
PHP cursus
XML lessen
XHTML les
CSS leer
leer C
REXX online
Red Hat Linux cursus