API Übersicht

Konfiguration und Optionen

Die Zend_Ldap Komponente akzeptiert ein Array von Optionen die entweder im Constructor übergeben werden oder durch die setOptions() Methode. Die erlaubten Optionen sind folgende:

Tabelle 78. Zend_Ldap Optionen

Name Beschreibung
host Der Standard Hostname des LDAP Servers wenn bei connect() keiner angegeben wurde (kann auch verwendet werden wenn versucht wird Benutzernamen in bind() zu kanonisieren).
port Standard Port des LDAP Servers wenn bei connect() keiner angegeben wurde.
useStartTls Ob der LDAP Client TLS (auch als SSLv2 bekannt) verschlüsselten Transport verwenden soll oder nicht. Der Wert TRUE wird in Produktionsumgebungen stärkstens empfohlen um zu verhindern das Passwörter im Klartext übermittelt werden. Der Standardwert ist FALSE, da Server oft ein separat installiertes Zertifikat nach der Installation benötigen. Die Optionen useSsl und useStartTls sind gegenseitig exklusiv. Die Option useStartTls sollte gegenüber useSsl bevorzugt verwendet werden aber nicht alle Server unterstützen diesen neueren Mechanismus.
useSsl Ob der LDAP Client einen SSL verschlüsselten Transport verwenden soll. Die Optionen useSsl und useStartTls sind gegenseitig exklusiv.
username Der Standard Benutzername des Accounts. Einige Server erwarten Ihn in DN Form. Er muß in DN Form angegeben werden wenn der LDAP Server einen DN für das Binden benötigt und das Binden mit einem einfachen Benutzernamen möglich sein soll.
password Das Standard Passwort des Accounts (nur mit dem obigen Benutzernamen verwendet).
bindRequiresDn Ist er TRUE, dann instruiert er Zend_Ldap den DN für den Account zu empfangen der für das Binden des Benutzernamens verwendet wird wenn dieser nicht bereits in DN Form ist. Der Standardwert ist FALSE.
baseDn Der Standard Basis DN der für das Suchen (z.B. nach Accounts) verwendet wird. Diese Option wird fr die meisten Account bezogenen Operationen verwendet und sollte den DN anzeigen unter dem Accounts zu finden sind.
accountCanonicalForm Ein kleiner Integerwert der die Form anzeigt zu der Accountnamen kanonisiert werden sollen. Siehe auch das Kapitel Kanonisierung von Account Namen weiter unten.
accountDomainName Die FQDN Domain für die der LDAP Zielserver die Authorität ist (z.B., example.com).
accountDomainNameShort Die 'short' Domain für die der LDAP Zielserver die Authorität ist. Das wird normalerweise verwendet um den NetBIOS Domainnamen für Windows Netzwerke zu spezifizieren, kann aber auch von nicht-AD Servern verwendet werden.
accountFilterFormat Der Suchfilter für LDAP der für das Suchen von Accounts verwendet wird. Der String ist ein Ausdruck im Stil von sprintf() der ein '%s' enthalten muss um den Benutzernamen zu notieren. Der Standardwert ist '(&(objectClass=user)(sAMAccountName=%s))' solange bindRequiresDn nicht auf TRUE gesetzt ist. In dem Fall ist der Standardwert '(&(objectClass=posixAccount)(uid=%s))'. Benutzer eines eigenen Schemas können die Notwendigkeit haben diese Option zu ändern.
allowEmptyPassword Einige LDAP Server können konfiguriert werden um ein leeres Passwort als anonymen Bind zu akzeptieren. Dieses Verhalten ist meistens immer unerwünscht. Aus diesem Grund sind leere Passwörter explizit unerwünscht. Dieser Wert muß auf TRUE gesetzt werden um zu akzeptieren das ein leeres Passwort während des Bindens übergeben werden kann.
optReferrals Wenn Sie auf TRUE gesetzt wird zeigt diese Option an das dem LDAP Client der referiert, gefolgt werden soll. Der Standardwert ist FALSE.
tryUsernameSplit Wenn Sie auf FALSE gesetzt wird zeigt diese Option an das der angegebene Benutzername nicht mit dem ersten @ oder \ Zeichen geteilt werden soll um den Benutzernamen während der Bindungs-Prozedur von der Domain zu trennen. Das erlaubt es dem Benutzer, Benutzernamen zu verwenden die ein @ oder \ Zeichen enthalten, welche keine Domain-Information enthalten, z.B. die Verwendung von Email Adressen für das Binden. Der Standardwert ist TRUE.

API Referenz

Anmerkung

Methodennamen in italic sind statische Methoden.

Zend_Ldap

Zend_Ldap ist das Basisinterface zum LDAP Server. Es bietet Verbindungs- und Bindungsmethode sowie Methoden um auf dem LDAP Baum zu arbeiten.

Tabelle 79. Zend_Ldap API

Methode Beschreibung
string filterEscape(string $str) Escapt einen Wert damit dieser in einem LDAP Filter entsprechend RFC 2254. Diese Methode ist deprecated, stattdessen sollte Zend_Ldap_Dn::checkDn() verwendet werden.
boolean explodeDn($dn, array &$keys = null, array &$vals = null) Prüft ob ein angegebener DN $dn fehlerhaft ist. Wenn $keys oder $keys und $vals angegeben werden, werden diese Arrays mit den entsprechenden DN Schlüsseln und Werten gefüllt. Diese Methode ist deprecated, stattdessen sollte Zend_Ldap_Dn::checkDn() verwendet werden.
__construct($options) Constructor. Der $options Parameter ist Optional und kann ein Array, oder eine Instanz von Zend_Config sein. Wenn keine Optionen bei der Instanzierung angegeben werden, müssen die Verbindungsparameter der Instanz übergeben werden indem man Zend_Ldap::setOptions() verwendet. Die erlaubten Optionen werden in Zend_Ldap Optionen apezifiziert.
resource getResource() Gibt die rohe Ressource der LDAP Erweiterung (ext/ldap) zurück.
integer getLastErrorCode() Gibt die LDAP Fehlernummer des letzten LDAP Kommandos zurück.
string getLastError(integer &$errorCode, array &$errorMessages) Gibt die LDAP Fehlermeldung des letzten LDAP Kommandos zurück. Der optionale $errorCode Parameter ist auf die LDAP Fehlernummer gesetzt wenn er angegeben ist. Die verschiedenen LDAP Funktionen welche Fehler zurückgeben können unterschiedliche Dinge zurückgeben, sodas Sie alle gesammelt werden wenn $errorMessages angegeben ist.
Zend_Ldap setOptions($options) Setzt die LDAP Verbindungs- und Bindungsparameter. $options kann ein Array oder eine Instanz von Zend_Config sein. Die erlauben Optionen werden in Zend_Ldap Optionen definiert.
array getOptions() Gibt die aktuellen Verbindungs- und Bindungsparameter zurück.
string getBaseDn() Gibt den Basis DN zurück auf welche diese LDAP Verbindung gebunden ist.
string getCanonicalAccountName(string $acctname, integer $form) Gibt den kanonischen Account Namen des angegebenen Account Namens $acctname zurück. $form spezifiziert das Format in das der Account Name kanonisiert wird. Siehe Kanonisierung des Account Namens für weitere Details.
Zend_Ldap disconnect() Trennt die Verbindung der Zend_Ldap Instanz vom LDAP Server.
Zend_Ldap connect(string $host, integer $port, boolean $useSsl, boolean $useStartTls) Verbindet eine Instanz von Zend_Ldap mit dem angegebenen LDAP Server. Alle Parameter sind optional, und werden von den LDAP Verbindungs- und Bindungsparametern genommen welche der Instanz über den Constructor oder über Zend_Ldap::setOptions() angegeben wurden, wenn NULL angegeben wurde.
Zend_Ldap bind(string $username, string $password) Authentifiziert $username mit $password beim LDAP Server. Wenn beide Parameter nicht angegeben werden, dann wird die Verbindung mit den Anmeldeinformationen durchgeführt welche in den Verbindungs- und Bindungsparametern angegeben wurden, und ein anonymes Binden wird ausgeführt. Es ist zu beachten dass hierbei anonymes Binden vom LDAP Server erlaubt sein muss. Ein leerer String '' kann als $password zusammen mit einem Benutzernamen übergeben werden wenn, und nur wenn, allowEmptyPassword in den Verdinguns- und Bindungsparametern auf TRUE gesetzt ist.
Zend_Ldap_Collection search(string|Zend_Ldap_Filter_Abstract $filter, string|Zend_Ldap_Dn $basedn, integer $scope, array $attributes, string $sort, string $collectionClass) Durchsucht den LDAP Baum mit dem angegebenen $filter und den angegebenen Such Parametern.
string|Zend_Ldap_Filter_Abstract $filter

Der Filterstring kann in der Suche verwendet werden, z.B. (objectClass=posixAccount).

string|Zend_Ldap_Dn $basedn

Die Suchbasis für die Suche. Wenn Sie nicht, oder NULL angegeben wird, dann wird die baseDn der Verbindungs- und Bindungs Parameter verwendet.

integer $scope

Der Suchbereich. Zend_Ldap::SEARCH_SCOPE_SUB durchsucht den kompletten Unterbaum inklusive dem $baseDn Node. Zend_Ldap::SEARCH_SCOPE_ONE schränkt die Suche auf ein Level unter $baseDn ein. Zend_Ldap::SEARCH_SCOPE_BASE schränkt die Suche auf $baseDn selbst ein; das kann verwendet werden um effizient einen einzelnen Eintrag durch deinen DN zu erhalten. Der Standardwert ist Zend_Ldap::SEARCH_SCOPE_SUB.

array $attributes

Spezifiziert die Attribute welche in den zurückgegebenen Einträgen enthalten sind. Um alle möglichen Attribute zu inkludieren (ACL Restriktionen können es verhindern das bestimmte Attribute von einem angegebenen Benutzer empfangen werden) kann entweder ein leeres Array array() oder array('*') an die Methode übergeben werden. Bei einigen LDAP Servern kann man spezielle interne Attribute erhalten wenn man an die Methode array('*', '+') übergibt.

string $sort

Ob die Sammlung der Ergebnisse nach dem Attribut $sort sortiert werden soll. Ergebnisse können nur nach einem einzelnen Attribut sortiert werden, da dieser Parameter die ext/ldap Funktion ldap_sort() verwendet.

string $collectionClass

Ob das Ergebnis in ein Objekt vom Typ $collectionClass eingebettet werden soll. Standardmäßig wird ein Objekt vom Typ Zend_Ldap_Collection zurückgegeben. Die eigene Klasse muß Zend_Ldap_Collection erweitern und wird bei der Instanziierung ein Zend_Ldap_Collection_Iterator_Default übergeben.

integer count(string|Zend_Ldap_Filter_Abstract $filter, string|Zend_Ldap_Dn $basedn, integer $scope) Zählt die Elemente welche durch die angegebenen Such Parameter zurückgegeben werden. Siehe Zend_Ldap::search() für eine detailierte Beschreibung der Parameter der Methode.
integer countChildren(string|Zend_Ldap_Dn $dn) Zählt die direkten Abhängigkeiten (Kinder) des Eintrags, der durch den angegebenen $dn identifiziert wird.
boolean exists(string|Zend_Ldap_Dn $dn) Prüft ob der Eintrag, der durch den angegebenen $dn identifiziert wird, existiert.
array searchEntries(string|Zend_Ldap_Filter_Abstract $filter, string|Zend_Ldap_Dn $basedn, integer $scope, array $attributes, string $sort) Führt eine Such Operation durch und gibt als Ergebnis ein PHP Array zurück. Das ist notwendigerweise die gleiche Methode wie Zend_Ldap::search() ausser beim Rückgabe Typ. Siehe Zend_Ldap::search() für eine detailierte Beschreibung der Parameter der Methode.
array getEntry(string|Zend_Ldap_Dn $dn, array $attributes, boolean $throwOnNotFound) Gibt den LDAP Eintrag zurück der von $dn mit den in $attributes angegebenen Attributen identifiziert wird. Wenn $attributes unterdrückt wird (array()) werden alle Attribute im Ergebnis ausgegeben. $throwOnNotFound ist standardmäßig FALSE, so dass die Methode NULL zurückgibt wemm der spezifizierte Eintrag nicht gefunden wird. Wenn er auf TRUE gesetzt ist, wird statt dessen eine Zend_Ldap_Exception geworfen.
void prepareLdapEntryArray(array &$entry) Bereitet ein Array für die Verwendung in Modifikations Operationen von LDAP vor. Diese Methode muß nicht von Endbenutzern aufgerufen werden da Sie implizit bei jeder Methode die Daten verändert aufgerufen wird.
Zend_Ldap add(string|Zend_Ldap_Dn $dn, array $entry) Fügt den Eintrag der durch $dn mit seinen $entry identifiziert wird im LDAP Baum hinzu. Wirft eine Zend_Ldap_Exception wenn der Eintrag nicht hinzugefügt werden konnte.
Zend_Ldap update(string|Zend_Ldap_Dn $dn, array $entry) Aktualisiert den Eintrag der durch $dn mit seinen $entry Attributen identifiziert wird im LDAP Baum. Wirft eine Zend_Ldap_Exception wenn der Eintrag nicht geändert werden konnte.
Zend_Ldap save(string|Zend_Ldap_Dn $dn, array $entry) Speichert den Eintrag der durch $dn mit seinen $entry Attributen identifiziert wird im LDAP Baum. Wirft eine Zend_Ldap_Exception wenn der Eintrag nicht gespeichert werden konnte. Diese Methode wählt durch eine Suche im LDAP Baum ob der Eintrag hinzugefügt oder aktualisiert wird.
Zend_Ldap delete(string|Zend_Ldap_Dn $dn, boolean $recursively) Löscht den Eintrag der durch $dn identifiziert wird vom LDAP Baum. Wirft eine Zend_Ldap_Exception Exception wenn der Eintrag nicht gelöscht werden kann. $recursively ist standardmäßig FALSE. Auf TRUE gesetzt wird das Löschen rekursiv durchgeführt und löscht effektiver Weise den kompletten Unterbaum. Das Löschen wird fehlschlagen wenn $recursively FALSE ist und der $dn Eintrag kein Blatteintrag ist.
Zend_Ldap moveToSubtree(string|Zend_Ldap_Dn $from, string|Zend_Ldap_Dn $to, boolean $recursively, boolean $alwaysEmulate) Verschiebt den Eintrag der von $from identifiziert wird auf einen Ort nach $to wobei sein RDN unverändert bleibt. $recursively spezifiziert ob die Operation rekursiv ausgeführt wird (standardmäßig FALSE) so dass der Eintrag $from und alle seine Untereinträge verschoben werden. Das Verschieben wird fehlschlagen wenn $recursively FALSE ist und der Eintrag $from kein Blatteintrag ist. $alwaysEmulate kontrolliert ob die ext/ldap Funktion ldap_rename() verwendet werden soll wenn Sie vorhanden ist. Das kann nur für Blatteinträge funktionieren und für Server und für ext/ldap die diese Funktion unterstützen. Auf TRUE gesetzt wird immer eine emulierte Rename Operation verwendet.

Anmerkung

Alle Verschiebe-Operationen werden ausgeführt indem die betreffenden Einträge im LDAP Baum kopiert und anschließend gelöscht werden. Diese Operationen sind nicht atomar so dass Fehler während der Operation zu einem inkonsistenten Status am LDAP Server führen. Das selbe gilt auch für alle rekursiven Operationen. Auch diese sind in keiner Weise atomar. Man sollte das immer beachten.

Zend_Ldap move(string|Zend_Ldap_Dn $from, string|Zend_Ldap_Dn $to, boolean $recursively, boolean $alwaysEmulate) Das ist ein Alias für Zend_Ldap::rename().
Zend_Ldap rename(string|Zend_Ldap_Dn $from, string|Zend_Ldap_Dn $to, boolean $recursively, boolean $alwaysEmulate) Benennt den Eintrag der von $from bis $to identifiziert wird um. $recursively spezifiziert ob die Operation rekursiv durchgeführt werden soll (standardmäßig FALSE) so das der Eintrag $from und alle seine Abhängigkeiten verschoben werden. Das Umbenennen wird fehlschlagen wenn $recursively FALSE ist und der Eintrag $from kein Blatteintrag ist. $alwaysEmulate kontrolliert ob die ext/ldap Funktion ldap_rename() verwendet werden soll wenn Sie vorhanden ist. Das kann nur für Blatteinträge und für Server funktionieren und für ext/ldap welches diese Funktion unterstützt. Wird es auf TRUE gesetzt wird immer die emulierte rename Operation verwendet.
Zend_Ldap copyToSubtree(string|Zend_Ldap_Dn $from, string|Zend_Ldap_Dn $to, boolean $recursively) Kopiert den Eintrag der von $from bis zu einem Ort unterhalb von $to identifiziert wird und lässt dessen RDN unverändert. $recursively spezifiziert ob die Operation rekursiv durchgeführt werden soll (standardmäßig FALSE) so das der Eintrag $from und alle seine Abhängigkeiten kopiert werden. Das Kopieren wird fehlschlagen wenn $recursively FALSE ist und der Eintrag $from kein Blatteintrag ist.
Zend_Ldap copy(string|Zend_Ldap_Dn $from, string|Zend_Ldap_Dn $to, boolean $recursively) Kopiert den Eintrag der von $from bis $to identifiziert wird. $recursively spezifiziert ob die Operation rekursiv durchgeführt werden soll (standardmäßig FALSE) so das der Eintrag $from und alle seine Abhängigkeiten kopiert werden. Das Kopieren wird fehlschlagen wenn $recursively FALSE ist und der Eintrag $from kein Blatteintrag ist.
Zend_Ldap_Node getNode(string|Zend_Ldap_Dn $dn) Gibt den $dn Eintrag zurück der in einem Zend_Ldap_Node gewrappt ist.
Zend_Ldap_Node getBaseNode() Gibt den Eintrag für den Basis DN $baseDn zurück der in einer Zend_Ldap_Node gewrappt ist.
Zend_Ldap_Node_RootDse getRootDse() Gibt den RootDSE für den aktuellen Server zurück.
Zend_Ldap_Node_Schema getSchema() Gibt das LDAP Schema für den aktuellen Server zurück.

Zend_Ldap_Collection

Zend_Ldap_Collection implementiert Iterator um das Durchlaufen von Einträgen zu erlauben indem foreach() und Countable verwendet werden welche in der Lage sind auf count() zu Antworten. Mit seiner geschützten _createEntry() Methode bietet es einen einfachen Punkt der Erweiterung für Entwickler welche die Notwendigkeit für eigene Ergebnisobjekte haben.

Tabelle 80. API für Zend_Ldap_Collection

Methode Beschreibung
__construct(Zend_Ldap_Collection_Iterator_Interface $iterator) Constructor. Der Constructor muß von einem Zend_Ldap_Collection_Iterator_Interface angeboten werden welches die echte Iteration der Resultate durchführt. Zend_Ldap_Collection_Iterator_Default ist die standardmäßige Implementation für die Interation durch ext/ldap Ergebnisse.
boolean close() Schließt den internen Iterator. Wird auch im Destructor aufgerufen.
array toArray() Gibt alle Einträge als Array zurück.
array getFirst() Gibt den ersten Eintrag der Collection zurück, oder NULL wenn die Collection leer ist.

Zend_Ldap_Attribute

Zend_Ldap_Attribute ist eine Helfer Klasse die nur Statische Methoden anbietet für die Manipulation von Arrays die zur Struktur passen welche in den Zend_Ldap Data Änderungs Methoden verwendet werden und zum Datenformat das vom Zend_Ldap Server benötigt wird. PHP Datentypen werden wie folgt konvertiert:

string

Es wird keine Konvertierung durchgeführt.

integer und float

Der Wert wird zu einem String konvertiert.

boolean

TRUE wird zu 'TRUE' konvertiert und FALSE zu 'FALSE'

object und array

Diese Werte werden zu einem String konvertiert indem serialize() verwendet wird.

resource

Wenn eine stream Ressource angegeben wurde, werden die Daten durch den Aufruf von stream_get_contents() geholt.

others

Alle anderen Datentypen (speziell nicht-Stream Ressourcen) werden verweigert.

Beim Lesen von Attributwerten werden die folgenden Konvertierungen durchgeführt:

'TRUE'

Wird zu TRUE konvertiert.

'FALSE'

Wird zu FALSE konvertiert.

others

Alle anderen Strings werden nicht automatisch konvertiert und so wie Sie sind übergeben.

Tabelle 81. Zend_Ldap_Attribute API

Methode Beschreibung
void setAttribute(array &$data, string $attribName, mixed $value, boolean $append) Setzt die Attribute $attribName in $data auf den Wert $value. Wenn $append TRUE ist (standardmäßig FALSE) wird $value an das Attribut angehängt. $value kann ein skalarer Wert oder ein Array von skalaren Werten sein. Eine Konvertierung wird durchgeführt.
array|mixed getAttribute(array $data, string $attribName, integer|null $index) Gibt das Attribut $attribName von $data zurück. Wenn $index NULL ist (Standardwert) wird ein Array zurückgegeben welches alle Werte für das angegebene Attribut enthält. Ein leeres Array wird zurückgegeben wenn das Attribut im angegebenen Array nicht existiert. Wenn ein Integer für den Index spezifiziert wird, dann wird der korrespondierende Wert mit dem gegebenen Index zurückgegeben. Wenn der Index ausserhalb der Grenzen ist wird NULL zurückgegeben. Eine Konvertierung wird durchgeführt.
boolean attributeHasValue(array &$data, string $attribName, mixed|array $value) Prüft ob das Attribut $attribName in $data den Wert oder die Werte welche in $value angegeben wurden hat. Die Methode gibt nur dann TRUE zurück wenn alle Werte von $value im Attribut enthalten sind. Der Vergleich wird strikt durchgeführt (der Datentyp wird respektiert).
void removeDuplicatesFromAttribute(array &$data, string $attribName) Entfernt alle Duplikate vom Attribut $attribName in $data.
void removeFromAttribute(array &$data, string $attribName, mixed|array $value) Entfernt den Wert oder die Werte vom Attribut $attribName die in $value angegeben werden von $data.
string|null convertToLdapValue(mixed $value) Konvertiert einen PHP Datentyp in seine LDAP Repräsentation. Siehe die Einleitung für Details.
mixed convertFromLdapValue(string $value) Konvertiert einen LDAP Wert in seinen PHP Datentyp. Siehe die Einleitung für Details.
string|null convertToLdapDateTimeValue(integer $value, boolean $utc) Konvertiert einen Zeitpunkt in seine LDAP Datum und Zeit Repräsentation. Wenn $utc TRUE ist (standardmäßig ist es FALSE) dann wird der resultierende LDAP Datum und Zeit String in UTC sein, andernfalls wird ein lokaler Datum und Zeit String zurückgegeben.
integer|null convertFromLdapDateTimeValue(string $value) Konvertiert eine Datum und Zeit Repräsentation für LDAP in einen Zeitpunkt. Die Methode gibt NULL zurück wenn $value nicht in einen PHP Zeitpunkt zurückkonvertiert werden kann.
void setPassword(array &$data, string $password, string $hashType, string $attribName) Setzt ein LDAP Passwort für das Attribut $attribName in $data zurück. $attribName ist standardmäßig 'userPassword' welches das standardmäßige Attribut für Passwörter ist. Der Hash für das Passwort kann mit $hashType spezifiziert werden. Der Standardwert ist Zend_Ldap_Attribute::PASSWORD_HASH_MD5 wobei Zend_Ldap_Attribute::PASSWORD_HASH_SHA die andere Möglichkeit ist.
string createPassword(string $password, string $hashType) Erstellt ein LDAP Passwort. Der Hash für das Passwort kann mit $hashType spezifiziert werden. Der Standardwert ist Zend_Ldap_Attribute::PASSWORD_HASH_MD5 wobei Zend_Ldap_Attribute::PASSWORD_HASH_SHA die andere Möglichkeit ist.
void setDateTimeAttribute(array &$data, string $attribName, integer|array $value, boolean $utc, boolean $append) Setzt das Attribut $attribName in $data auf den Datum und Zeitwert $value. Wenn $append TRUE ist (standardmäßig ist er FALSE) dann wird $value an das Attribut angehängt. $value kann ein Integerwert oder ein Array von Integerwerten sein. Die Konvertierung von Datum und Zeit wird entsprechend zu Zend_Ldap_Attribute::convertToLdapDateTimeValue() durchgeführt.
array|integer getDateTimeAttribute(array $data, string $attribName, integer|null $index) Gibt das Datum und Zeit Attribut $attribName von $data zurück. Wenn $index NULL ist (das ist der Standardwert) dann wird ein Array zurückgegeben welches alle Datum und Zeitwerte für das angegebene Attribut enthält. Ein leeres Array wird zurückgegeben wenn das Attribut im angegebenen Array nicht existiert. Wenn ein Integer Index spezifiziert wird, dann wird der korrespondierende Datum und Zeitwert vom angegebenen Index zurückgegeben. Wenn der Index ausserhalb der Grenzen ist dann wird NULL zurückgegeben. Die Konvertierung von Datum und Zeit wird entsprechend zu Zend_Ldap_Attribute::convertFromLdapDateTimeValue() durchgeführt.

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.

Tabelle 82. 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

array(
array("cn" => "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:

array(
array("cn" => "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.

Zend_Ldap_Filter

Tabelle 83. Zend_Ldap_Filter API

Methode Beschreibung
Zend_Ldap_Filter equals(string $attr, string $value) Erstellt einen 'gleich' Filter: (attr=value).
Zend_Ldap_Filter begins(string $attr, string $value) Erstellt einen 'beginnt mit' Filter: (attr=value*).
Zend_Ldap_Filter ends(string $attr, string $value) Erstellt einen 'endet mit' Filter: (attr=*value).
Zend_Ldap_Filter contains(string $attr, string $value) Erstellt einen 'enthält' Filter: (attr=*value*).
Zend_Ldap_Filter greater(string $attr, string $value) Erstellt einen 'größer' Filter: (attr>value).
Zend_Ldap_Filter greaterOrEqual(string $attr, string $value) Erstellt einen 'größer oder gleich' Filter: (attr>=value).
Zend_Ldap_Filter less(string $attr, string $value) Erstellt einen 'kleiner' Filter: (attr<value).
Zend_Ldap_Filter lessOrEqual(string $attr, string $value) Erstellt einen 'kleiner oder gleich' Filter: (attr<=value).
Zend_Ldap_Filter approx(string $attr, string $value) Erstellt einen 'ungefähr' Filter: (attr~=value).
Zend_Ldap_Filter any(string $attr) Erstellt einen 'jeden' Filter: (attr=*).
Zend_Ldap_Filter string(string $filter) Erstellt einen einfachen eigenen String Filter. Der Benutzer ist dafür verantwortlich das alle Werte kommentiert sind da der Filter so wie er ist verwendet wird.
Zend_Ldap_Filter mask(string $mask, string $value,...) Erstellt einen Filter von einer String Maske. Alle $value Parameter werden kommentiert und in $mask umgewandelt indem sprintf() verwendet wird.
Zend_Ldap_Filter andFilter(Zend_Ldap_Filter_Abstract $filter,...) Erstellt einen 'und' Filter von allen angegebenen Attributen.
Zend_Ldap_Filter orFilter(Zend_Ldap_Filter_Abstract $filter,...) Erstellt einen 'oder' Filter von allen angegebenen Attributen.
__construct(string $attr, string $value, string $filtertype, string|null $prepend, string|null $append) Constructor. Erstellt einen eigenen Filter entsprechend den angegebenen Parametern. Der resultierende Filter ist eine Verknüpfung von $attr . $filtertype . $prepend . $value . $append. Normalerweise wird dieser Constructor nicht benötigt da alle Filter durch Verwendung der entsprechenden Factory Methoden erstellt werden können.
string toString() Gibt eine String Repräsentation des Filters zurück.
string __toString() Gibt eine String Repräsentation des Filters zurück. Verweist auf Zend_Ldap_Filter::toString().
Zend_Ldap_Filter_Abstract negate() Invertiert den aktuellen Filter.
Zend_Ldap_Filter_Abstract addAnd(Zend_Ldap_Filter_Abstract $filter,...) Erstellt einen 'und' Filter vom aktuellen Filter und allen als Argument übergegebenen Filtern.
Zend_Ldap_Filter_Abstract addOr(Zend_Ldap_Filter_Abstract $filter,...) Erstellt einen 'oder' Filter vom aktuellen Filter und allen als Argument übergebenen Filtern.
string|array escapeValue(string|array $values) Kommentiert die angegenen $values entsprechend RFC 2254 so das Sie sicher in LDAP Filtern verwendet werden können. Wenn ein einzelner String angegeben wird, wird ein String zurückgegeben - andernfalls wird ein Array zurückgegeben. Jedes Control Zeichen wie der ASCII Code < 32 sowie die Zeichen mit spezieller Bedeutung in LDAP Filtern "*", "(", ")", und "\" (der Schrägstrich) werden in die Repräsentation Schrägstrich gefolgt von zwei hexadezimalen Ziffern konvertiert das den Hexadezimalen Wert des Zeichens repräsentiert.
string|array unescapeValue(string|array $values) Entfernt die Konvertierung die von Zend_Ldap_Filter::escapeValue() durchgeführt wurde. Konvertiert jede Sequenz eines Schrägstriches gefolgt von zwei hexadezimalen Ziffern in die korrespondierenden Zeichen.

Zend_Ldap_Node

Zend_Ldap_Node enthält die magischen Zugriffsmethoden __set(), __get(), __unset() und __isset() um auf die Attribute mit Ihrem Namen zugreifen zu können. Sie verweisen auf Zend_Ldap_Node::setAttribute(), Zend_Ldap_Node::getAttribute(), Zend_Ldap_Node::deleteAttribute() und Zend_Ldap_Node::existsAttribute(). Weiters implementiert die Klasse ArrayAccess für einen Array-artigen Zugriff auf die Attribute. Zend_Ldap_Node implementiert auch Iterator und RecursiveIterator um rekursive Suchen im Baum zu erlauben.

Tabelle 84. Zend_Ldap_Node API

Methode Beschreibung
Zend_Ldap getLdap() Gibt die aktuelle LDAP Verbindung zurück. Wirft eine Zend_Ldap_Exception wenn der aktuelle Node im abgehängten Modus ist (nicht mit einer Zend_Ldap Instanz verbunden).
Zend_Ldap_Node attachLdap(Zend_Ldap$ldap) Hängt den aktuellen Node an die Zend_Ldap Instanz $ldap an. Wirft eine Zend_Ldap_Exception wenn $ldap für den aktuellen Node nicht verantwortlich ist (wenn der Node kein Kind der Basis DN von $ldap ist).
Zend_Ldap_Node detachLdap() Hängt den Node von der LDAP Verbindung ab.
boolean isAttached() Prüft ob der aktuelle Node an eine LDAP Verbindung angehängt ist.
Zend_Ldap_Node create(string|array|Zend_Ldap_Dn $dn, array $objectClass) Factory Methode um einen neuen abgehängten Zend_Ldap_Node für einen angegebenen DN zu erstellen. Erstellt einen neuen Zend_Ldap_Node mit dem DN $dn und der Objektklasse $objectClass.
Zend_Ldap_Node fromLdap(string|array|Zend_Ldap_Dn $dn, Zend_Ldap $ldap) Factory Methode um einen angehängten Zend_Ldap_Node für einen angegebenen DN zu erstellen. Lädt einen existierenden Zend_Ldap_Node mit dem DN $dn von der LDAP Verbindung $ldap.
Zend_Ldap_Node fromArray((array $data, boolean $fromDataSource) Factory Methode um einen abgehängten Zend_Ldap_Node aus den Array Daten $data zu erstellen. Wenn $fromDataSource TRUE ist (der Standardwert ist FALSE), werden die Daten als, in einem LDAP Baum vorhanden, betrachtet.
boolean isNew() Sagt ob der Node als Neu betrachtet wird (nicht auf dem Server vorhanden). Es ist zu beachten dass das nicht sagt ob der Node wirklich auf dem Server vorhanden ist. Man muss Zend_Ldap_Node::exists() verwenden um zu sehen ob der Node dort bereits existiert.
boolean willBeDeleted() Sagt ob dieser Node gelöscht wird sobald Zend_Ldap_Node::update() aufgerufen wird. Tells if this node is going to be deleted once Zend_Ldap_Node::update() is called.
Zend_Ldap_Node delete() Markiert den Node als gelöscht. Nodes werden beim Aufruf von Zend_Ldap_Node::update() gelöscht, wenn Zend_Ldap_Node::willBeDeleted() TRUE ist.
boolean willBeMoved() Sagt ob dieser Node verschoben wird sobald Zend_Ldap_Node::update() aufgerufen wird.
Zend_Ldap_Node update(Zend_Ldap $ldap) Sendet alle wartenden Änderungen an den LDAP Server. Wenn $ldap unterdrückt wird, dann wird die aktuelle LDAP Verbindung verwendet. Wenn der aktuelle Node von einer LDAP Verbindung getrennt ist, wird eine Zend_Ldap_Exception geworfen. Wenn $ldap angegeben wird, dann wird der aktuelle Node an die angegebene LDAP Verbindung angehängt.
Zend_Ldap_Dn getCurrentDn() Gibt den aktuellen DN des aktuellen Nodes als Zend_Ldap_Dn zurück. Das reflektiert mögliche rename-Operationen.
Zend_Ldap_Dn getDn() Gibt den originalen DN des aktuellen Nodes als Zend_Ldap_Dn zurück. Das reflektiert mögliche rename-Operationen.
string getDnString(string $caseFold) Gibt den originalen DN des aktuellen Nodes als String zurück. Das reflektiert mögliche rename-Operationen.
array getDnArray(string $caseFold) Gibt den originalen DN des aktuellen Nodes als Array zurück. Das reflektiert mögliche rename-Operationen.
string getRdnString(string $caseFold) Gibt den RDN des aktuellen Nodes als String zurück. Das reflektiert mögliche rename-Operationen.
array getRdnArray(string $caseFold) Gibt den RDN des aktuellen Nodes als Array zurück. Das reflektiert mögliche rename-Operationen.
Zend_Ldap_Node setDn(Zend_Ldap_Dn|string|array $newDn) Setzt den neuen DB für diesen Node und verschiebt diesen Node effektiv sobald Zend_Ldap_Node::update() aufgerufen wird.
Zend_Ldap_Node move(Zend_Ldap_Dn|string|array $newDn) Das ist ein Alias für Zend_Ldap_Node::setDn().
Zend_Ldap_Node rename(Zend_Ldap_Dn|string|array $newDn) Das ist ein Alias für Zend_Ldap_Node::setDn().
array getObjectClass() Gibt objectClass des Nodes zurück.
Zend_Ldap_Node setObjectClass(array|string $value) Setzt das objectClass Attribut.
Zend_Ldap_Node appendObjectClass(array|string $value) Stellt dem objectClass Attribut voran.
string toLdif(array $options) Gibt eine LDIF Repräsentation des aktuellen Nodes zurück. $options wird an Zend_Ldap_Ldif_Encoder übergeben.
array getChangedData() Gibt geänderte Node Daten zurück. Das Array enthält alle geänderten Attribute. Dieses format kann in Zend_Ldap::add() und Zend_Ldap::update() verwendet werden.
array getChanges() Gibt alle gemachten Änderungen zurück.
string toString() Gibt den DN des aktuellen Nodes zurück - leitet auf Zend_Ldap_Dn::getDnString() weiter.
string __toString() Castet auf eine String Repräsentation - leitet auf Zend_Ldap_Dn::toString() weiter.
array toArray(boolean $includeSystemAttributes) Gibt eine Array Repräsentation des aktuellen Nodes zurück. Wenn $includeSystemAttributes FALSE ist (der Standardwert ist TRUE), werden Systemspezifische Attribute vom Array entfernt. Anders als Zend_Ldap_Node::getAttributes() enthält das resultierende Array den DN mit dem Schlüssel 'dn'.
string toJson(boolean $includeSystemAttributes) Gibt eine JSON Repräsentation des aktuellen Nodes zurück wobei Zend_Ldap_Node::toArray() verwendet wird.
array getData(boolean $includeSystemAttributes) Gibt die Attribute des Nodes zurück. Das Array enthält alle Attribute in Ihrem internen Format (keine Konvertierung).
boolean existsAttribute(string $name, boolean $emptyExists) Prüft ob ein angegebenes Attribut existiert. Wenn $emptyExists FALSE ist werden leere Attrbute (welche nur array() enthalten) als nicht-existent betrachtet und es wird FALSE zurückgegeben. Wenn $emptyExists TRUE ist werden leere Attribute als existent betrachtet und es wird TRUE zurückgegeben. In diesem Fall gibt die Methode nur dann FALSE zurck wenn der Name des Attributs in der Sammlung der Schlüssel fehlt.
boolean attributeHasValue(string $name, mixed|array $value) Prüft ob die angegebenen Werte im Attribut existieren. Die Methode gibt nur dann TRUE zurück wenn alle Werte von $value im Attribut vorhanden sind. Der Vergleich wird strikt durchgeführt (er respektiert den Datentyp).
integer count() Gibt die Anzahl der Attribute im Node zurück. Implementiert Countable.
mixed getAttribute(string $name, integer|null $index) Holt ein LDAP Attribut. Die Datenkonvertierung wird angewendet durch Verwendung von Zend_Ldap_Attribute::getAttribute().
array getAttributes(boolean $includeSystemAttributes) Holt alle Attribute des Nodes. Wenn $includeSystemAttributes FALSE ist (der Standardwert ist TRUE) dann werden die System spezifischen Attribute vom Array entfernt.
Zend_Ldap_Node setAttribute(string $name, mixed $value) Setzt ein LDAP Attribut. Die Datenkonvertierung wird angewendet durch Verwendung von Zend_Ldap_Attribute::setAttribute().
Zend_Ldap_Node appendToAttribute(string $name, mixed $value) Hängt etwas an ein LDAP Attribut an. Die Datenkonvertierung wird angewendet durch Verwendung von Zend_Ldap_Attribute::setAttribute().
array|integer getDateTimeAttribute(string $name, integer|null $index) Holt ein LDAP Date/Time Attribut. Die Datenkonvertierung wird angewendet durch Verwendung von Zend_Ldap_Attribute::setDateTimeAttribute().
Zend_Ldap_Node setDateTimeAttribute(string $name, integer|array $value, boolean $utc) Setzt ein LDAP Date/Time Attribut. Die Datenkonvertierung wird angewendet durch Verwendung von Zend_Ldap_Attribute::setDateTimeAttribute().
Zend_Ldap_Node appendToDateTimeAttribute(string $name, integer|array $value, boolean $utc) Hängt etwas an ein LDAP Date/Time Attribut an. Die Datenkonvertierung wird angewendet durch Verwendung von Zend_Ldap_Attribute::setDateTimeAttribute().
Zend_Ldap_Node setPasswordAttribute(string $password, string $hashType, string $attribName) Setzt ein LDAP Passwort bei $attribName (der Standardwert ist 'userPassword') auf $password mit dem Hashtyp $hashType (der Standardwert ist Zend_Ldap_Attribute::PASSWORD_HASH_MD5).
Zend_Ldap_Node deleteAttribute(string $name) Löscht ein LDAP Attribut.
void removeDuplicatesFromAttribute(string $name) Entfernt doppelte Werte von einem LDAP Attribut.
void removeFromAttribute(string $attribName, mixed|array $value) Entfernt die angegebenen Werte von einem LDAP Attribut.
boolean exists(Zend_Ldap $ldap) Prüft ob der aktuelle Node im angegebenen LDAP Server existiert (der aktuelle Server wird verwendet wenn NULL übergeben wird).
Zend_Ldap_Node reload(Zend_Ldap $ldap) Lädt die Attribute des aktuellen Nodes nochmalig vom angegebenen LDAP Server (der aktuelle Server wird verwendet wenn NULL übergeben wird).
Zend_Ldap_Node_Collection searchSubtree(string|Zend_Ldap_Filter_Abstract $filter, integer $scope, string $sort) Sucht den Unterbaum des Nodes mit dem angegebenen $filter und den angegebenen Suchparametern ab. Siehe Zend_Ldap::search() für Details über die Parameter $scope und $sort.
integer countSubtree(string|Zend_Ldap_Filter_Abstract $filter, integer $scope) Zählt die Elemente des Unterbaums vom Node welche dem angegebenen $filter entsprechen und dem angegebenen Suchbereich. Siehe Zend_Ldap::search() für Details über den $scope Parameter.
integer countChildren() Zählt die Kinder des Nodes.
Zend_Ldap_Node_Collection searchChildren(string|Zend_Ldap_Filter_Abstract $filter, string $sort) Sucht nach Kindern des Nodes die dem angegebenen $filter entsprechen. Siehe Zend_Ldap::search() für Details über den $sort Parameter.
boolean hasChildren() Gibt zurück ob der aktuelle Node Kinder hat.
Zend_Ldap_Node_ChildrenIterator getChildren() Gibt alle Kinder des aktuellen Nodes zurück.
Zend_Ldap_Node getParent(Zend_Ldap $ldap) Gibt den Elternteil des aktuellen Nodes zurück wobei die LDAP Verbindung $ldap verwendet wird (verwendet die aktuelle LDAP Verbindung wenn diese nicht angegeben wird).

Zend_Ldap_Node_RootDse

Die folgenden Methoden sind in allen Hersteller-Spezifischen Unterklassen vorhanden.

Zend_Ldap_Node_RootDse enthält die magischen Zugriffsmethoden __get() und __isset() um auf die Attribute durch Ihren Namen zugreifen zu können. Sie verweisen auf Zend_Ldap_Node_RootDse::getAttribute() und auf Zend_Ldap_Node_RootDse::existsAttribute(). __set() und __get() sind auch implementiert, werfen aber eine BadMethodCallException da Änderungen auf RootDSE Nodes nicht erlaubt sind. Weiters implementiert die Klasse ArrayAccess für Array-Artigen Zugriff auf die Attribute. offsetSet() und offsetUnset() werfen auch eine BadMethodCallException aus den bekannten Gründen.

Tabelle 85. Zend_Ldap_Node_RootDse API

Methode Beschreibung
Zend_Ldap_Dn getDn() Gibt den DN des aktuellen Nodes als Zend_Ldap_Dn zurück.
string getDnString(string $caseFold) Gibt den DN des aktuellen Nodes als String zurück.
array getDnArray(string $caseFold) Gibt den DN des aktuellen Nodes als Array zurück.
string getRdnString(string $caseFold) Gibt den RDN des aktuellen Nodes als String zurück.
array getRdnArray(string $caseFold) Gibt den RDN des aktuellen Nodes als Array zurück.
array getObjectClass() Gibt die objectClass des Nodes zurück.
string toString() Gibt den DN des aktuellen Nodes zurück - verweist auf Zend_Ldap_Dn::getDnString().
string __toString() Castet auf eine String Darstellung - verweist auf Zend_Ldap_Dn::toString().
array toArray(boolean $includeSystemAttributes) Gibt eine Array Darstellung des aktuellen Nodes zurück. Wenn $includeSystemAttributes FALSE ist (der Standardwert ist TRUE) werden die System spezifischen Attribute vom Array entfernt. Anders als Zend_Ldap_Node_RootDse::getAttributes() enthält das produzierte Array den DN mit dem Schlüssel 'dn'.
string toJson(boolean $includeSystemAttributes) Gibt eine JSON Darstellung des aktuellen Nodes zurück indem Zend_Ldap_Node_RootDse::toArray() verwendet wird.
array getData(boolean $includeSystemAttributes) Gibt die Attribute der Nodes zurück. Das Array enthält alle Attribute in Ihrem internen Format (keine Konvertierung).
boolean existsAttribute(string $name, boolean $emptyExists) Prüft ob ein angegebenes Attribut existiert. Wenn $emptyExists FALSE ist werden leere Attribute (welche nur array() enthalten) als nicht existierend betrachtet und geben FALSE zurück. Wenn $emptyExists TRUE ist werden leere Attribute als existent betrachtet und geben $emptyExists zurück. In diesem Fall gibt die Methode nur dann FALSE zurück wenn der Name des Attributs in der Sammlung der Schlüssel fehlt.
boolean attributeHasValue(string $name, mixed|array $value) Prüft ob die gegebenen Werte im Attribut existieren. Die Methode gibt nur dann TRUE zurück wenn alle Werte in $value im Attribut vorhanden sind. Der Vergleich wird strikt durchgeführt (und respektiert den Datentyp).
integer count() Gibt die Anzahl der Attribute im Node zurück. Implementiert Countable.
mixed getAttribute(string $name, integer|null $index) Gibt ein LDAP Attribut zurück. Die Daten Konvertierung wird angewendet indem Zend_Ldap_Attribute::getAttribute() verwendet wird.
array getAttributes(boolean $includeSystemAttributes) Gibt alle Attribute des Nodes zurück. Wenn $includeSystemAttributes FALSE ist (der Standardwert ist TRUE), werden die System spezifischen Attribute vom Array entfernt.
array|integer getDateTimeAttribute(string $name, integer|null $index) Gibt ein LDAP Datum/Zeit Attribut zurück. Die Datenkonvertierung wird angewendet indem Zend_Ldap_Attribute::getDateTimeAttribute() verwendet wird.
Zend_Ldap_Node_RootDse reload(Zend_Ldap $ldap) Lädt die Attribute des aktuellen Nodes nochmalig vom angegebenen LDAP Server.
Zend_Ldap_Node_RootDse create(Zend_Ldap $ldap) Eine Factory Methode um den RootDSE zu erstellen.
array getNamingContexts() Holt die namingContexts.
string|null getSubschemaSubentry() Holt den subschemaSubentry.
boolean supportsVersion(string|int|array $versions) Erkennt ob die LDAP Version unterstützt wird.
boolean supportsSaslMechanism(string|array $mechlist) Erkennt ob der sasl Mechanismus unterstützt wird.
integer getServerType() Gibt den Server Typ zurück. Retourniert wird
Zend_Ldap_Node_RootDse::SERVER_TYPE_GENERIC

für unbekannte LDAP Server

Zend_Ldap_Node_RootDse::SERVER_TYPE_OPENLDAP

für OpenLDAP Server

Zend_Ldap_Node_RootDse::SERVER_TYPE_ACTIVEDIRECTORY

für Microsoft ActiveDirectory Server

Zend_Ldap_Node_RootDse::SERVER_TYPE_EDIRECTORY

für Novell eDirectory Server

Zend_Ldap_Dn getSchemaDn() Gibt das DN Schema zurück.

OpenLDAP

Zusätzlich können die üblichen Methoden von oben auch auf Instanzen von Zend_Ldap_Node_RootDse_OpenLdap angewendet werden.

Anmerkung

Sehen Sie unter LDAP Operational Attributes and Objects für Informationen über Attribute von OpenLDAP RootDSE.

Tabelle 86. Zend_Ldap_Node_RootDse_OpenLdap API

Methode Beschreibung
integer getServerType() Holt den Servertyp. Gibt Zend_Ldap_Node_RootDse::SERVER_TYPE_OPENLDAP zurück.
string|null getConfigContext() Holt den configContext.
string|null getMonitorContext() Holt den monitorContext.
boolean supportsControl(string|array $oids) Erkennt ob control unterstützt wird.
boolean supportsExtension(string|array $oids) Erkennt ob extension unterstützt wird.
boolean supportsFeature(string|array $oids) Erkennt ob feature unterstützt wird.

ActiveDirectory

Zusätzlich können die üblichen Methoden von oben auch auf Instanzen von Zend_Ldap_Node_RootDse_ActiveDirectory angewendet werden.

Anmerkung

Sehen Sie unter RootDSE für Informationen über Attribute von Microsoft ActiveDirectory RootDSE.

Tabelle 87. Zend_Ldap_Node_RootDse_ActiveDirectory API

Methode Beschreibung
integer getServerType() Holt den Server Typ. Gibt Zend_Ldap_Node_RootDse::SERVER_TYPE_ACTIVEDIRECTORY zurück.
string|null getConfigurationNamingContext() Holt configurationNamingContext.
string|null getCurrentTime() Holt currentTime.
string|null getDefaultNamingContext() Holt defaultNamingContext.
string|null getDnsHostName() Holt dnsHostName.
string|null getDomainControllerFunctionality() Holt domainControllerFunctionality.
string|null getDomainFunctionality() Holt domainFunctionality.
string|null getDsServiceName() Holt dsServiceName.
string|null getForestFunctionality() Holt forestFunctionality.
string|null getHighestCommittedUSN() Holt highestCommittedUSN.
string|null getIsGlobalCatalogReady() Holt isGlobalCatalogReady.
string|null getIsSynchronized() Holt isSynchronized.
string|null getLdapServiceName() Holt ldapServiceName.
string|null getRootDomainNamingContext() Holt rootDomainNamingContext.
string|null getSchemaNamingContext() Holt schemaNamingContext.
string|null getServerName() Holt serverName.
boolean supportsCapability(string|array $oids) Erkennt ob capability unterstützt wird.
boolean supportsControl(string|array $oids) Erkennt ob control unterstützt wird.
boolean supportsPolicy(string|array $policies) Erkennt ob version unterstützt wird.

eDirectory

Zusätzlich können die üblichen Methoden von oben auch auf Instanzen von Zend_Ldap_Node_RootDse_eDirectory angewendet werden.

Anmerkung

Sehen Sie auf Getting Information about the LDAP Server für Informationen über Attribute von Novell eDirectory RootDSE.

Tabelle 88. Zend_Ldap_Node_RootDse_eDirectory API

Methode Beschreibung
integer getServerType() Holt den Server Typ. Gibt Zend_Ldap_Node_RootDse::SERVER_TYPE_EDIRECTORY zurück.
boolean supportsExtension(string|array $oids) Erkennt ob extension unterstützt wird.
string|null getVendorName() Holt vendorName.
string|null getVendorVersion() Holt vendorVersion.
string|null getDsaName() Holt dsaName.
string|null getStatisticsErrors() Holt die Server Statistik "errors".
string|null getStatisticsSecurityErrors() Holt die Server Statistik "securityErrors".
string|null getStatisticsChainings() Holt die Server Statistik "chainings".
string|null getStatisticsReferralsReturned() Holt die Server Statistik "referralsReturned".
string|null getStatisticsExtendedOps() Holt die Server Statistik "extendedOps".
string|null getStatisticsAbandonOps() Holt die Server Statistik "abandonOps".
string|null getStatisticsWholeSubtreeSearchOps() Holt die Server Statistik "wholeSubtreeSearchOps".

Zend_Ldap_Node_Schema

Die folgenden Methoden sind für alle Hersteller-spezifischen Unterklassen vorhanden.

Zend_Ldap_Node_Schema enthält die magischen Methoden __get() und __isset() um auf die Attribute durch Ihren Namen zugreifen zu können. Die verweisen auf Zend_Ldap_Node_Schema::getAttribute() und Zend_Ldap_Node_Schema::existsAttribute(). __set() und __unset() sind auch implementiert, werfen aber eine BadMethodCallException da Änderungen auf RootDSE Nodes nicht erlaubt sind. Weiters implementiert die Klasse ArrayAccess für Array-Artigen Zugriff und wirft eine BadMethodCallException aus den bekannten Gründen.

Tabelle 89. Zend_Ldap_Node_Schema API

Methode Beschreibung
Zend_Ldap_Dn getDn() Holt den DN des aktuellen Nodes als Zend_Ldap_Dn.
string getDnString(string $caseFold) Holt den DN des aktuellen Nodes als String.
array getDnArray(string $caseFold) Holt den DN des aktuellen Nodes als Array.
string getRdnString(string $caseFold) Holt den RDN des aktuellen Nodes als String.
array getRdnArray(string $caseFold) Holt den RDN des aktuellen Nodes als Array.
array getObjectClass() Gibt die objectClass des aktuellen Nodes zurück.
string toString() Gibt den DN des aktuellen Nodes zurück - verweist auf Zend_Ldap_Dn::getDnString().
string __toString() Castet auf eine String Darstellung - leitet auf Zend_Ldap_Dn::toString() weiter.
array toArray(boolean $includeSystemAttributes) Gibt eine Array Darstellung des aktuellen Nodes zurück. Wenn $includeSystemAttributes FALSE ist (Standardmäßig ist es TRUE) werden die System spezifischen Attribute vom Array entfernt. Anders als Zend_Ldap_Node_Schema::getAttributes() enthält das resultierende Array den DN mit dem Schlüssel 'dn'.
string toJson(boolean $includeSystemAttributes) Gibt eine JSON Darstellung des aktuellen Nodes zurück indem Zend_Ldap_Node_Schema::toArray() verwendet wird.
array getData(boolean $includeSystemAttributes) Gibt die Attribute des Nodes zurück. Das Array enthält alle Attribute in Ihrem internen Format (keine Konvertierung).
boolean existsAttribute(string $name, boolean $emptyExists) Prüft ob ein angegebenes Attribut existiert. Wenn $emptyExists FALSE ist werden leere Attribute (welche nur array() enthalten) als nicht existierend betrachtet und geben FALSE zurück. Wenn $emptyExists TRUE ist werden leere Attribute als existent betrachtet und geben TRUE zurück. In diesem Fall gibt die Methode nur dann FALSE zurück wenn der Name des Attributs in der Sammlung der Schlüssel fehlt.
boolean attributeHasValue(string $name, mixed|array $value) Prüft ob angegebene Werte im Attribut existieren. Die Methode gibt nur dann FALSE zurück wenn alle Werte in $value auch im Attribut enthalten sind. Der Vergleich wird strikt durchgeführt (er respektiert den Datentyp).
integer count() Gibt die Anzahl der Attribute im Node zurück. Implementiert Countable.
mixed getAttribute(string $name, integer|null $index) Holt ein LDAP Attribut. Datenkonvertierung wird angewendet indem Zend_Ldap_Attribute::getAttribute() verwendet wird.
array getAttributes(boolean $includeSystemAttributes) Holt alle Attribute des Nodes. Wenn $includeSystemAttributes FALSE ist (der Standardwert ist TRUE) werden systemspezifische Attribute vom Array entfernt.
array|integer getDateTimeAttribute(string $name, integer|null $index) Holt ein LDAP date/time Attribut. Datenkonvertierung wird angewendet indem Zend_Ldap_Attribute::getDateTimeAttribute() verwendet wird.
Zend_Ldap_Node_Schema reload(Zend_Ldap $ldap) Lädt die Attribute des aktuellen Nodes neu vom angegebenen LDAP Server.
Zend_Ldap_Node_Schema create(Zend_Ldap $ldap) Factory Methode um den Schema Node zu erstellen.
array getAttributeTypes() Holt den Typ des Attributs als Array von .
array getObjectClasses() Holt das Klassenobjekt als Array von Zend_Ldap_Node_Schema_ObjectClass_Interface.

Tabelle 90. Zend_Ldap_Node_Schema_AttributeType_Interface API

Methode Beschreibung
string getName() Holt den Namen des Attributs.
string getOid() Holt die OID des Attributs.
string getSyntax() Holt die Syntax des Attributs.
int|null getMaxLength() Holt die maximale Länge des Attributs.
boolean isSingleValued() Gibt zurück ob das Attribut ein einzelner Wert ist.
string getDescription() holt die Beschreibung des Attributs

Tabelle 91. Zend_Ldap_Node_Schema_ObjectClass_Interface API

Methode Beschreibung
string getName() Gibt den Namen von objectClass zurück.
string getOid() Gibt das OID von objectClass zurück.
array getMustContain() Gibt die Attribute zurück welche diese objectClass enthalten muß.
array getMayContain() Gibt die Attribute zurück welche diese objectClass enthalten kann.
string getDescription() Gibt die Beschreibung des Attributs zurück
integer getType() Gibt den Typ von objectClass zurück. Diese Methode gibt einen der folgenden Werte zurück:
Zend_Ldap_Node_Schema::OBJECTCLASS_TYPE_UNKNOWN

für unbekannte Klassentypen

Zend_Ldap_Node_Schema::OBJECTCLASS_TYPE_STRUCTURAL

für strukturelle Klassen

Zend_Ldap_Node_Schema::OBJECTCLASS_TYPE_ABSTRACT

für abstrakte Klassen

Zend_Ldap_Node_Schema::OBJECTCLASS_TYPE_AUXILIARY

für Hilfsklassen

array getParentClasses() Gibt die elterliche objectClass dieser Klasse zurück. Diese enthalten strukturelle, abstrakte und Hilfsklassen.

Klassen welche Attributtypen repräsentieren und auch Objektklassen erweitern Zend_Ldap_Node_Schema_Item welche einige Kernmethoden bietet um auf eigene Attribute im darunterliegenden LDAP Node zugreifen zu können. Zend_Ldap_Node_Schema_Item enthält die magischen Methoden __get() und __isset() um auf die Attribute mit Ihrem Namen zugreifen zu können. Weiters implementiert die Klasse ArrayAccess für einen Array-artigen Zugriff auf die Attribute. offsetSet() und offsetUnset() werfen eine BadMethodCallException da Änderungen in Schema Informations Nodes nicht erlaubt sind.

Tabelle 92. Zend_Ldap_Node_Schema_Item API

Methode Beschreibung
array getData() Holt die darunterliegenden Daten vom Schema Informations Node.
integer count() Gibt die Anzahl der Attribute für diesen Schema Informations Node zurück. Implementiert Countable.

OpenLDAP

Zusätzlich können die üblichen Methoden von oben auf Instanzen von Zend_Ldap_Node_Schema_OpenLDAP angewendet werden.

Tabelle 93. Zend_Ldap_Node_Schema_OpenLDAP API

Methode Beschreibung
array getLdapSyntaxes() Holt die LDAP Syntaxe.
array getMatchingRules() Holt die passenden Regeln.
array getMatchingRuleUse() Holt die verwendete passende Regel.

Tabelle 94. Zend_Ldap_Node_Schema_AttributeType_OpenLDAP API

Methode Beschreibung
Zend_Ldap_Node_Schema_AttributeType_OpenLdap|null getParent() Gibt den Type des Elternattributs vom geerbten Baum wenn einer existiert.

Tabelle 95. Zend_Ldap_Node_Schema_ObjectClass_OpenLDAP API

Methode Beschreibung
array getParents() Gibt die elterlichen Objektklassen im vererbten Baum zurück wenn einer existiert. Das zurückgegebene Array ist ein Array von Zend_Ldap_Node_Schema_ObjectClass_OpenLdap.

ActiveDirectory

Browsen im Schema von ActiveDirectory Servern

Durch eine Einschränkung in Microsoft ActiveDirectory Servern betreffend der Anzahl an einträgen die bei generellen Such Routinen zurückgegeben werden, und wegen der Struktur des ActiveDirectory Schema Repositories, ist das Schema Browsen aktuell nicht für Microsoft ActiveDirectory Server vorhanden.

Zend_Ldap_Node_Schema_ActiveDirectory bietet keine zusätzlichen Methoden an.

Tabelle 96. Zend_Ldap_Node_Schema_AttributeType_ActiveDirectory API

Zend_Ldap_Node_Schema_AttributeType_ActiveDirectory bietet keine zusätzlichen Methoden an.

Tabelle 97. Zend_Ldap_Node_Schema_ObjectClass_ActiveDirectory API

Zend_Ldap_Node_Schema_ObjectClass_ActiveDirectory bietet keine zusätzlichen Methoden an.

Zend_Ldif_Encoder

Tabelle 98. API für Zend_Ldif_Encoder

Methode Beschreibung
array decode(string $string) Dekodiert den String $string in ein Array von LDIF Elementen.
string encode(scalar|array|Zend_Ldap_Node $value, array $options) Kodiert $value in eine LDIF Repräsentation. $options ist ein Array welches die folgenden Schlüssel enthalten kann:
'sort'

Sortiert die gegebenen Attribute nach dn gefolgt von objectClass und dann gefolgt von allen anderen Attributen alphabetisch sortiert. Standardmäßig ist er TRUE.

'version'

Die Version des LDIF Formats. Standardmäßig ist er 1.

'wrap'

Die Zeilenlänge. Standardmäßig ist er 78 um der LDIF Spezifikation zu entsprechen.