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.
Het aanmaken van een class is zeer simpel. Je maakt een nieuw bestand aan met daarin de attributes en de methods:
<?php
class mysql_actions {
var $host;
var $db;
var $username;
var $password;
function connect(){
/*
Binnen deze functie de connectie naar de database.
*/
}
}
?>
We hebben nu een class met 4 attributes en 1 method. Sla het bestandje op als mysql_class.php voor later gebruik.
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.
<?php
/*
Include het bestand en maak een nieuwe instance aan.
*/
include ("path/mysql_class.php");
$db = new mysql_actions;
?>
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:
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:
<?php
include ("path/class.php");
$db = new mysql_actions;
$db->host = "localhost";
$db->db = "test";
$db->username = "guppie";
$db->password = "ikke";
?>
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:
<?php
include ("path/class.php");
$db = new mysql_actions;
..............
$host_value_db_instance = $db->host;
?>
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:
<?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, al weer geen connectie mogelijk");
}
}
?>
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:
<?php
include ("path/class.php");
$db = new mysql_actions;
$db->host = "localhost";
$db->db = "test";
$db->username = "guppie";
$db->password = "ikke";
$db->connect();
?>