PHP Namespaces er understøtet i PHP fra og med version 5.3. Det er et værktøj, der også findes i bl.a. C++ og C#. Namespaces gør det muligt at bruge klasse-navne, der allerede er brugt, så man hermed kan inkapsulere kode. Det er f.eks. nyttigt, hvis man laver en udvidelse til et system eller lignende; Man kan måske undersøge om et klassenavn allerede er brugt i et system, men man kan ikke være sikker på, at andre ikke vil bruge samme klassenavn i f.eks. andre moduler, plugins eller extensions til det system man arbejder på. Det kan være omstændigt at skulle prefixe alle klasser, så i stedet kan man sætte dem i et namespace.
Herunder et eksempel på en klasse med namespace Snippets:
<?php
namespace Snippets;
class MyClass {
public $message;
$this->message = "This Class is in a namespace";
}
For at instansiere et objekt ud fra klassen MyClass skal man også bruge det satte namespace
$MyObject = new Snippets\MyClass
Man kan også bruge flere namespaces
namespace Snippets\Code\Example
Så skal man bruge alle namespaces for at bruge klassen
$MyObject = new Snippets\Code\Example\MyClass
Laver man f.eks. et tema eller et plugin til WordPress giver det særlig god mening at bruge namespaces. Her kan det anbefales at bruge et namespace, der er i tråd med pluginnet eller temaets navn. Man kan aldrig være sikker på, at samme klassenavn ikke er brugt i et andet plugin eller tema, så for at undgå at ens plugin eller tema kommer i konflikt med et andet tema eller plugin giver det særlig god mening at bruge PHP namespaces.
- klasser
- properties
- methods
- objekter
- namespaces
- construct
- construct i sub-classes
- inheritance
- access modifiers
- abstrakte klasser
Læs mere om namespaces: