Namespace-syntax in OOP in PHP
Om een naamruimte voor een klasse in te stellen, moet je
als eerste regel van het bestand waarin deze klasse
is opgeslagen, het commando namespace schrijven,
en daarna, gescheiden door een spatie, de naam van deze
naamruimte.
Als een klasse tot een naamruimte behoort, moet je om een object van de klasse te maken niet alleen de klassenaam opgeven, maar ook zijn naamruimte, gescheiden door een backslash. Laten we naar een voorbeeld kijken.
Stel dat we een klasse Page hebben, die niet tot
een naamruimte behoort. Dan maken we een object
van deze klasse als volgt:
<?php
$page = new Page;
?>
Stel nu dat deze klasse tot de naamruimte
Admin behoort. In dit geval maken we een object van deze
klasse op deze manier:
<?php
$page = new \Admin\Page;
?>
Laten we de klassen voor gebruikers en de klassen voor beheerders over verschillende naamruimten verdelen, om de hierboven beschreven klasseconflicten te vermijden.
Voor de klasse Page uit het bestand /admin/page.php
geven we de naamruimte Admin op:
<?php
namespace Admin;
class Page
{
}
?>
En voor de klasse Page uit het bestand /users/page.php
geven we de naamruimte Users op:
<?php
namespace Users;
class Page
{
}
?>
Laten we nu in het bestand /index.php
een object van zowel de eerste als de tweede
klasse Page maken:
<?php
require_once '/admin/page.php';
require_once '/users/page.php';
$adminPage = new \Admin\Page;
$usersPage = new \Users\Page;
?>
Stel dat je een map core en een map
project hebt. In elke map zit een eigen
klasse Controller. Zorg ervoor dat
deze klassen tot verschillende naamruimten
behoren. Maak in het bestand index.php objecten
van zowel de eerste als de tweede klasse.