Lekker zelf programmeren :P
Ok, na deze korte en bondige inleiding in OOP zal ik ff wat codevoorbeeld geven. We gaan een klasse schrijven om een verbinding te maken met een MySQL database.
Je begint in OOP met het definieren van een klasse. Dat doe je als volgt
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
class connect_db
{
// hier komen later variabelen en functies...
} //sluiten van de klasse
?>
class connect_db
{
// hier komen later variabelen en functies...
} //sluiten van de klasse
?>
Zoals je ziet, is het maken van een klasse erg makkelijk.
Wat je vervolgens moet doen, is variabelen declareren/initialiseren en functies maken, anders heb je vrij weinig aan je klasse.
In ons simpele voorbeeld voor de verbinding met MySQL hebben we bijvoorbeeld variabelen nodig voor de host, username, password en databasenaam.
Variabelen worden op de volgende wijze gedeclareerd in klassen:
Als het goed is, heb je tot nu toe het volgende geschreven:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
class connect_db
{
var $host; // je host
var $user; // je gebruikersnaam
var $pwd; // je password
var $db; // naam van de database
// hier komen zometeen de functies
}
?>
class connect_db
{
var $host; // je host
var $user; // je gebruikersnaam
var $pwd; // je password
var $db; // naam van de database
// hier komen zometeen de functies
}
?>
Je hebt nu de noodzakelijke variabelen gedeclareerd. De variabelen worden later - binnen de klasse - aangeroepen in de speciale vorm $this->host of $this->pwd.
Nu gaan we de functie schrijven. Allereerst moet er verbinding gemaakt worden met de database:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
function connect()
{
$connection = mysql_connect($this->host, $this->user, $this->pwd) or die ("Error: kon geen verbinding maken met de database!");
/* als er vervolgens verbinding is gemaakt, kan PHP de database selecteren. */
if($connection) //als er verbinding gemaakt is, de database selecteren
{
$select_db = mysql_select_db($this->db) or die ("Error: kon de database niet selecteren!");
}
} //sluit de functie af
?>
function connect()
{
$connection = mysql_connect($this->host, $this->user, $this->pwd) or die ("Error: kon geen verbinding maken met de database!");
/* als er vervolgens verbinding is gemaakt, kan PHP de database selecteren. */
if($connection) //als er verbinding gemaakt is, de database selecteren
{
$select_db = mysql_select_db($this->db) or die ("Error: kon de database niet selecteren!");
}
} //sluit de functie af
?>
Nu heb je dus een uiterst simpele functie geschreven om binnen de klasse verbinding te maken met een database. Je kan in plaats van $connection ook schrijven $this->connection, maar dan moet je hem wel eerst declareren bovenaan bij de andere variabelen.
De functie moet je nog wel binnen de klasse plaatsen. Let erop, dat je ook al waarden kan meegeven aan de variabelen. Dat is vrij logisch eigenlijk. Je hebt nu het volgende.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
class connect_db
{
var $host = "localhost"; // je host
var $user = "db_user"; // je gebruikersnaam
var $pwd = "db_pass"; // je password
var $db = "OOP"; // naam van de database
function connect()
{
$connection = mysql_connect($this->host, $this->user, $this->pwd) or die ("Error: kon geen verbinding maken met de database!");
/* als er vervolgens verbinding is gemaakt, kan PHP de database selecteren. */
if($connection) //als er verbinding gemaakt is, de database selecteren
{
$select_db = mysql_select_db($this->db) or die ("Error: kon de database niet selecteren!");
}
} // sluit de functie af
} // sluit de klasse
?>
class connect_db
{
var $host = "localhost"; // je host
var $user = "db_user"; // je gebruikersnaam
var $pwd = "db_pass"; // je password
var $db = "OOP"; // naam van de database
function connect()
{
$connection = mysql_connect($this->host, $this->user, $this->pwd) or die ("Error: kon geen verbinding maken met de database!");
/* als er vervolgens verbinding is gemaakt, kan PHP de database selecteren. */
if($connection) //als er verbinding gemaakt is, de database selecteren
{
$select_db = mysql_select_db($this->db) or die ("Error: kon de database niet selecteren!");
}
} // sluit de functie af
} // sluit de klasse
?>
Je klasse is nu klaar. Sla hem op als test.php of test.inc.php (als je hem wilt includen in een ander bestand).
Als je hem nu opent in je server, zie je dat er nog vrij weinig gebeurt. Een lege pagina...
Dit komt omdat we alleen maar een klasse geschreven hebben, er zijn nog geen objecten gemaakt. Om een object te maken schrijf je na de klasse, of nadat je het bestand hebt geinclude:
Je maakt dus gewoon een nieuwe variabele, en die wijs je meteen toe met "new" en dan de naam van de klasse die je wil gebruiken.
Je kan controleren of er een object is gemaakt door de ingebouwde functie is_object te gebruiken:
Code (php)
Als alles goed is gegaan, heb je dus een object. Vervolgens kun je de in de klasse geschreven functies aanroepen op dezelfde manier zoals je variabelen aanroept binnen de klasse:
Eventueel kun je de functie zo herschrijven dat je hem hier waarden meegeeft ;)
En nu heb je een database verbinding. Testen door een query uit te voeren op je database, en natuurlijk mysql_fetch_object gebruiken he ;)
« vorige pagina | volgende pagina »