Nimiavaruuksien käyttöönotto OOP:ssa PHP:ssä
Jos PHP-skriptiä suoritettaessa on kaksi luokkaa samalla nimellä, ne aiheuttavat konfliktin, mikä johtaa vakavaan virheeseen. Tämä ei ole kovin kätevää, koska nimien yksilöllisyyttä on jatkuvasti seurattava.
Esimerkkinä harkitse seuraavaa tilannetta:
sivustollasi on käyttäjiä
ja ylläpitäjiä. Samalla kansiossa users tallennetaan
käyttäjien luokat, ja kansiossa admin
- ylläpitäjien luokat.
Oletetaan, että sekä käyttäjille että ylläpitäjille tarvitaan tietty
luokka Page, joka vastaa jotain
sivuston sivuista. Samalla käyttäjille on
oma luokkansa, ja ylläpitäjille - oma. Tässä
tapauksessa nimikonflikti odottaa meitä.
Yksinkertaisin tapa ratkaista tämä konflikti
- anna luokille erilaiset nimet, esimerkiksi,
UsersPage ja AdminPage. Tämä
reitti kuitenkin johtaa vähitellen hyvin
pitkien luokkanimien ilmestymiseen.
PHP:ssä on toinenkin tapa ratkaista ongelma - nimiavaruudet. Idea on seuraava: jokainen luokka voi kuulua johonkin nimiavaruuteen ja samalla luokkanimien yksilöllisyyden tulee olla voimassa vain kyseisen nimiavaruuden sisällä.
Eli ongelmamme ratkaisemiseksi voimme
tehdä seuraavaa: liittää yhden luokan Page
johonkin nimiavaruuteen, esimerkiksi,
Users, ja toisen luokan Page
liittää toiseen nimiavaruuteen, esimerkiksi,
Admin.