Inleiding tot namespaces in OOP in PHP
Als bij het uitvoeren van een PHP-script twee klassen met dezelfde naam voorkomen, zullen ze in conflict komen, wat tot een fatale fout leidt. Dit is eigenlijk niet erg handig, omdat je constant moet letten op de uniekheid van namen.
Laten we de volgende situatie als voorbeeld bekijken:
je hebt een website met gebruikers
en een beheerder. In de map users worden
klassen voor gebruikers opgeslagen, en in de map admin
- klassen voor de beheerder.
Stel dat zowel voor gebruikers als voor de beheerder een zekere
klasse Page nodig is, die verantwoordelijk is voor sommige
pagina's van de site. Voor gebruikers is er
een eigen klasse, en voor de beheerder - een eigen. In een dergelijk
geval loeren we op een naamconflict.
De eenvoudigste manier om dit conflict op te lossen
- is om de klassen verschillende namen te geven, bijvoorbeeld,
UsersPage en AdminPage. Dit
pad leidt echter geleidelijk tot het verschijnen
van zeer lange klassennamen.
In PHP bestaat er een andere manier om het probleem op te lossen - namespaces. De essentie is als volgt: elke klasse kan tot een bepaalde namespace behoren en daarbij moet de uniekheid van klassennamen alleen binnen deze namespace worden nageleefd.
Dat wil zeggen, om ons probleem op te lossen kunnen we
het volgende doen: de ene klasse Page toewijzen
aan een naamruimte, bijvoorbeeld,
Users, en de tweede klasse Page
toewijzen aan een andere naamruimte, bijvoorbeeld,
Admin.