Zend_Ldap_Dn
Zend_Ldap_Dn bietet ein objektorientiertes Interface für die
Manipulation von LDAP Distinguished Names (DN). Der Parameter
$caseFold wird in verschiedenen Methoden verwendet um festzustellen wie
DN Attribute betreffend Ihres Schreibweise behandelt werden. Die erlaubten Werte für diesen
Parameter sind:
Zend_Ldap_Dn::ATTR_CASEFOLD_NONE
Es wird keine Änderung der Schreibweise durchgeführt.
Zend_Ldap_Dn::ATTR_CASEFOLD_UPPER
Alle Attribute werden zur Großschreibung konvertiert.
Zend_Ldap_Dn::ATTR_CASEFOLD_LOWER
Alle Attribute werden zur Kleinschreibung konvertiert.
Die Standardmäßige Schreibweise ist Zend_Ldap_Dn::ATTR_CASEFOLD_NONE
und kann mit Zend_Ldap_Dn::setDefaultCaseFold() gesetzt werden.
Jede Instanz von Zend_Ldap_Dn kann Ihre eigenen Einstellungen für die
Schreibweise haben. Wenn der Parameter $caseFold beim Methodenaufruf
nicht angegeben wird dann ist er standardmäßig die Einstellung der Schreibweise von der
Instanz.
Die Klasse implementiert ArrayAccess um den indizierten Zugriff auf die
unterschiedlichen Teile der DN zu gestatten. Die ArrayAccess Methoden verweisen
für offsetGet(integer $offset) auf
Zend_Ldap_Dn::get($offset, 1, null), für
offsetSet() auf
Zend_Ldap_Dn::set($offset, $value) und für
offsetUnset() auf
Zend_Ldap_Dn::remove($offset, 1).
offsetExists() prüft einfach ob der Index innerhalb der Grenzen
ist.
Zend_Ldap_Dn API
Methode
Beschreibung
Zend_Ldap_Dn factory(string|array $dn,
string|null $caseFold)
Erstellt eine Zend_Ldap_Dn Instanz von einem Array
oder String. Das Array muß der unter
Zend_Ldap_Dn::implodeDn() beschriebenen
Arraystruktur entsprechen.
Zend_Ldap_Dn fromString(string $dn,
string|null $caseFold)
Erstellt eine Zend_Ldap_Dn Instanz von einem String.
Zend_Ldap_Dn fromArray(array $dn,
string|null $caseFold)
Erstellt eine Zend_Ldap_Dn Instanz von einem
Array. Das Array muß der Arraystruktur entsprechen welche unter
Zend_Ldap_Dn::implodeDn() beschrieben ist.
array getRdn(string|null $caseFold)
Gibt den RDN des aktuellen DN zurück. Der zurückgegebene
Wert ist ein Array wobei die Namen der Attribute von RDN
im Schlüssel gesetzt sind und die RDN Attribute als Wert.
string getRdnString(string|null $caseFold)
Gibt den RDN vom aktuellen DN zurück. Der zurückgegebene
Wert ist ein String.
Zend_Ldap_Dn getParentDn(integer $levelUp)
Gibt den DN des aktuellen DN Knotens, $levelUp Levels
höher, zurück. $levelUp ist standardmäßig 1.
array get(integer $index, integer $length, string|null
$caseFold)
Gibt einen Teil des aktuellen DN zurück der von $index
und $length eingegrenzt wird. $index
beginnt mit 0 und der DN Teil von links.
Zend_Ldap_Dn set(integer $index, array $value)
Ersetzt den DN Teil im aktuellen DN. Diese Operation manipuliert die
aktuelle Instanz.
Zend_Ldap_Dn remove(integer $index, integer $length)
Entfernt einen DN Teil vom aktuellen DN. Diese Operation manipuliert die
aktuelle Instanz. $length ist standardmäßig
1.
Zend_Ldap_Dn append(array $value)
Fügt einen DN Teil zum aktuellen DN hinzu, Diese Operation manipuliert die
aktuelle Instanz.
Zend_Ldap_Dn prepend(array $value)
Fügt einen DN Teil vor dem aktuellen DN hinzu. Diese Operation manipuliert
die aktuelle Instanz.
Zend_Ldap_Dn insert(integer $index, array $value)
Fügt einen DN Teil nach dem Index $index in den aktuellen
DN ein. Diese Operation manipuliert die aktuelle Instanz.
void setCaseFold(string|null $caseFold)
Setzt die Option für die Schreibweise auf der aktuellen DN Instanz. Wenn
$caseFold NULL ist dann wird die
standardmäßige Einstellung der Schreibweise (standardmäßig ist
Zend_Ldap_Dn::ATTR_CASEFOLD_NONE oder über
Zend_Ldap_Dn::setDefaultCaseFold() gesetzt)
für die aktuelle Instanz gesetzt.
string toString(string|null $caseFold)
Gibt den DN als String zurück.
array toArray(string|null $caseFold)
Gibt den DN als Array zurück.
string __toString()
Gibt den DN als String zurück - verweist auf
Zend_Ldap_Dn::toString(null).
void setDefaultCaseFold(string $caseFold)
Setzt die standardmäßige Option für die Schreibweise welche von allen
Instanzen bei der Erstellung standardmäßig verwendet wird. Bereits
existierende Instanzen sind von dieser Einstellung nicht betroffen.
array escapeValue(string|array $values)
Escapt einen DN Wert entsprechend RFC 2253.
array unescapeValue(string|array $values)
Macht die Konvertierung von
Zend_Ldap_Dn::escapeValue() rückgängig.
array explodeDn(string $dn, array
&$keys, array &$vals, string|null $caseFold)
Zerteilt den DN $dn in ein Array das alle Teile des
angegebenen DN enthält. $keys sind optional die DN
Schlüssel (z.B. CN, OU, DC, ...). $vals sind optional
die DN Werte. Das zurückgegebene Array ist vom Typ
"name1", "uid" => "user"),
array("cn" => "name2"),
array("dc" => "example"),
array("dc" => "org")
)
]]>
für einen DN von
cn=name1+uid=user,cn=name2,dc=example,dc=org.
boolean checkDn(string $dn, array
&$keys, array &$vals, string|null $caseFold)
Prüft ob der gegebene DN $dn fehlerhaft ist. Wenn
$keys oder $keys und
$vals angegeben sind, werden diese Arrays mit dem
betreffenden DN Schlüssel und Werten gefüllt.
string implodeRdn(array $part, string|null
$caseFold)
Gibt den DN Teil in der Form $attribute=$value zurück.
string implodeDn(array $dnArray,
string|null $caseFold, string $separator)
Implodiert ein Array der Form die von
Zend_Ldap_Dn::explodeDn() kommt in einen DN
String. $separator ist standardmäßig ','
aber einige LDAP Server verstehen auch ';'.
$dnArray muß von folgendem Typ sein:
"name1", "uid" => "user"),
array("cn" => "name2"),
array("dc" => "example"),
array("dc" => "org")
)
]]>
boolean isChildOf(string|Zend_Ldap_Dn
$childDn, string|Zend_Ldap_Dn $parentDn)
Prüft ob der angegebene $childDn unter dem
$parentDn Subbaum ist.