Introduktion til namespaces i OOP i PHP
Hvis der ved kørsel af et PHP-script er to klasser med de samme navne, vil de komme i konflikt, hvilket vil føre til en fatal fejl. Dette er faktisk ikke særlig praktisk, da man konstant skal holde øje med unikke navne.
Lad os som eksempel overveje følgende situation:
du har et websted, hvor der er brugere
og administratorer. Samtidig er der i mappen users
klasser for brugere, og i mappen admin
- klasser for administratorer.
Antag, at der for både brugere og administratorer er brug for en
bestemt klasse Page, der er ansvarlig for nogle
sider på webstedet. Samtidig vil der for brugere være
deres egen klasse, og for administratorer - deres egen. I et sådant
tilfælde støder vi netop på navnekonflikten.
Den enkleste måde at løse denne konflikt på
- er at give klasserne forskellige navne, for eksempel,
UsersPage og AdminPage. Denne
tilgang fører imidlertid gradvist til udseendet af
meget lange klassernavne.
I PHP findes der en anden måde at løse problemet på - namespaces. Meningen er følgende: hver klasse kan tilhøre et bestemt namespace og samtidig skal unikke klassernavne overholdes kun inden for dette namespace.
Det vil sige, for at løse vores problem kan vi
gøre følgende: tildele en klasse Page
til et bestemt namespace, for eksempel,
Users, og den anden klasse Page
tildele til et andet namespace, for eksempel,
Admin.