Autoload
Intro
Laten we maar beginnen met het makkelijkste, he?
Veel php-ers moesten voor php 5 steeds voor iedere class een include te doen. Dat was onhandig af en toe, want sommigen hadden echt een stuk of tien regels met alleen maar include stuff.
In PHP 5 mogen we daar geen last meer van hebben. De mensen die PHP 5 ontwikkeld hebben, hebben nagedacht en ze zijn tot de conclusie gekomen dat je nu een __autoload() functie aan de top van je script mag defineren.
De lange lijst met includes is voorbij, nu krijgen we de lange lijst van $obj = new my_class; ;)
Praktijk
Aangezien de meeste meestal beter leren van voorbeelden, dan van text, ziehier:
Deze code:
2
3
4
5
6
7
8
function __autoload($class_name) {
require_once $class_name . '.php';
}
$obj = new MijnClass1();
$obj2 = new MijnClass2();
?>
Is praktisch gezien hetzelfde als deze code:
2
3
4
5
6
7
require_once 'MijnClass1.php';
require_once 'MijnClass2.php';
$obj = new MijnClass1();
$obj2 = new MijnClass2();
?>
Dat betekent eigenlijk dat je van alles kan aanpassen aan __autoload();
Je zou bijvoorbeeld een switch loop erin kunnen zetten, die met de inkomende $class_name aan de gang gaat.
Of nog mooier, zoiets:
2
3
4
5
6
7
8
9
10
11
12
13
function __autoload($class_name) {
$keuzes = array('FUNC' => 'functions',
'session' => 'functions',
'board' => 'sources/board',
);
if (!isset($keuzes[ $class_name ])) {
die();
}
require_once "./".$keuzes[ $class_name ].".php";
}
?>
Gebruik het, als het kan, doe er wat mee als je het nuttig vindt. Doe ermee wat je zelf wilt!
Inhoudsopgave
- Inleiding
- Autoload
- Con- & Destructors
- Scope (::)
- Static
- Constants
- Type Hinting
- Final
- Object iteration
- Exceptions
- Abstract
- Conclusie/Einde