# 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.

## 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.