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.