Zend_Ldap-API-Ldap-Dn.xml 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect3 id="zend.ldap.api.reference.zend-ldap-dn">
  5. <title>Zend_Ldap_Dn</title>
  6. <para>
  7. <classname>Zend_Ldap_Dn</classname> bietet ein objektorientiertes Interface für die
  8. Manipulation von <acronym>LDAP</acronym> Distinguished Names (DN). Der Parameter
  9. <varname>$caseFold</varname> wird in verschiedenen Methoden verwendet um festzustellen wie
  10. DN Attribute betreffend Ihres Schreibweise behandelt werden. Die erlaubten Werte für diesen
  11. Parameter sind:
  12. </para>
  13. <variablelist>
  14. <varlistentry>
  15. <term><constant>Zend_Ldap_Dn::ATTR_CASEFOLD_NONE</constant></term>
  16. <listitem><para>Es wird keine Änderung der Schreibweise durchgeführt.</para></listitem>
  17. </varlistentry>
  18. <varlistentry>
  19. <term><constant>Zend_Ldap_Dn::ATTR_CASEFOLD_UPPER</constant></term>
  20. <listitem><para>Alle Attribute werden zur Großschreibung konvertiert.</para></listitem>
  21. </varlistentry>
  22. <varlistentry>
  23. <term><constant>Zend_Ldap_Dn::ATTR_CASEFOLD_LOWER</constant></term>
  24. <listitem><para>Alle Attribute werden zur Kleinschreibung konvertiert.</para></listitem>
  25. </varlistentry>
  26. </variablelist>
  27. <para>
  28. Die Standardmäßige Schreibweise ist <constant>Zend_Ldap_Dn::ATTR_CASEFOLD_NONE</constant>
  29. und kann mit <methodname>Zend_Ldap_Dn::setDefaultCaseFold()</methodname> gesetzt werden.
  30. Jede Instanz von <classname>Zend_Ldap_Dn</classname> kann Ihre eigenen Einstellungen für die
  31. Schreibweise haben. Wenn der Parameter <varname>$caseFold</varname> beim Methodenaufruf
  32. nicht angegeben wird dann ist er standardmäßig die Einstellung der Schreibweise von der
  33. Instanz.
  34. </para>
  35. <para>
  36. Die Klasse implementiert <code>ArrayAccess</code> um den indizierten Zugriff auf die
  37. unterschiedlichen Teile der DN zu gestatten. Die <code>ArrayAccess</code> Methoden verweisen
  38. für <code>offsetGet(integer $offset)</code> auf
  39. <methodname>Zend_Ldap_Dn::get($offset, 1, null)</methodname>, für
  40. <methodname>offsetSet()</methodname> auf
  41. <methodname>Zend_Ldap_Dn::set($offset, $value)</methodname> und für
  42. <methodname>offsetUnset()</methodname> auf
  43. <methodname>Zend_Ldap_Dn::remove($offset, 1)</methodname>.
  44. <methodname>offsetExists()</methodname> prüft einfach ob der Index innerhalb der Grenzen
  45. ist.
  46. </para>
  47. <table id="zend.ldap.api.reference.zend-ldap-dn.table">
  48. <title>Zend_Ldap_Dn API</title>
  49. <tgroup cols="2">
  50. <thead>
  51. <row>
  52. <entry>Methode</entry>
  53. <entry>Beschreibung</entry>
  54. </row>
  55. </thead>
  56. <tbody>
  57. <row>
  58. <entry>
  59. <emphasis><code>Zend_Ldap_Dn factory(string|array $dn,
  60. string|null $caseFold)</code></emphasis>
  61. </entry>
  62. <entry>
  63. Erstellt eine <classname>Zend_Ldap_Dn</classname> Instanz von einem Array
  64. oder String. Das Array muß der unter
  65. <methodname>Zend_Ldap_Dn::implodeDn()</methodname> beschriebenen
  66. Arraystruktur entsprechen.
  67. </entry>
  68. </row>
  69. <row>
  70. <entry>
  71. <emphasis><code>Zend_Ldap_Dn fromString(string $dn,
  72. string|null $caseFold)</code></emphasis>
  73. </entry>
  74. <entry>
  75. Erstellt eine <classname>Zend_Ldap_Dn</classname> Instanz von einem String.
  76. </entry>
  77. </row>
  78. <row>
  79. <entry>
  80. <emphasis><code>Zend_Ldap_Dn fromArray(array $dn,
  81. string|null $caseFold)</code></emphasis>
  82. </entry>
  83. <entry>
  84. Erstellt eine <classname>Zend_Ldap_Dn</classname> Instanz von einem
  85. Array. Das Array muß der Arraystruktur entsprechen welche unter
  86. <methodname>Zend_Ldap_Dn::implodeDn()</methodname> beschrieben ist.
  87. </entry>
  88. </row>
  89. <row>
  90. <entry><code>array getRdn(string|null $caseFold)</code></entry>
  91. <entry>
  92. Gibt den <acronym>RDN</acronym> des aktuellen DN zurück. Der zurückgegebene
  93. Wert ist ein Array wobei die Namen der Attribute von <acronym>RDN</acronym>
  94. im Schlüssel gesetzt sind und die <acronym>RDN</acronym> Attribute als Wert.
  95. </entry>
  96. </row>
  97. <row>
  98. <entry><code>string getRdnString(string|null $caseFold)</code></entry>
  99. <entry>
  100. Gibt den <acronym>RDN</acronym> vom aktuellen DN zurück. Der zurückgegebene
  101. Wert ist ein String.
  102. </entry>
  103. </row>
  104. <row>
  105. <entry><code>Zend_Ldap_Dn getParentDn(integer $levelUp)</code></entry>
  106. <entry>
  107. Gibt den DN des aktuellen DN Knotens, <varname>$levelUp</varname> Levels
  108. höher, zurück. <varname>$levelUp</varname> ist standardmäßig <code>1</code>.
  109. </entry>
  110. </row>
  111. <row>
  112. <entry>
  113. <code>array get(integer $index, integer $length, string|null
  114. $caseFold)</code>
  115. </entry>
  116. <entry>
  117. Gibt einen Teil des aktuellen DN zurück der von <varname>$index</varname>
  118. und <varname>$length</varname> eingegrenzt wird. <varname>$index</varname>
  119. beginnt mit <code>0</code> und der DN Teil von links.
  120. </entry>
  121. </row>
  122. <row>
  123. <entry>
  124. <code>Zend_Ldap_Dn set(integer $index, array $value)</code>
  125. </entry>
  126. <entry>
  127. Ersetzt den DN Teil im aktuellen DN. Diese Operation manipuliert die
  128. aktuelle Instanz.
  129. </entry>
  130. </row>
  131. <row>
  132. <entry>
  133. <code>Zend_Ldap_Dn remove(integer $index, integer $length)</code>
  134. </entry>
  135. <entry>
  136. Entfernt einen DN Teil vom aktuellen DN. Diese Operation manipuliert die
  137. aktuelle Instanz. <varname>$length</varname> ist standardmäßig
  138. <code>1</code>.
  139. </entry>
  140. </row>
  141. <row>
  142. <entry><code>Zend_Ldap_Dn append(array $value)</code></entry>
  143. <entry>
  144. Fügt einen DN Teil zum aktuellen DN hinzu, Diese Operation manipuliert die
  145. aktuelle Instanz.
  146. </entry>
  147. </row>
  148. <row>
  149. <entry><code>Zend_Ldap_Dn prepend(array $value)</code></entry>
  150. <entry>
  151. Fügt einen DN Teil vor dem aktuellen DN hinzu. Diese Operation manipuliert
  152. die aktuelle Instanz.
  153. </entry>
  154. </row>
  155. <row>
  156. <entry>
  157. <code>Zend_Ldap_Dn insert(integer $index, array $value)</code>
  158. </entry>
  159. <entry>
  160. Fügt einen DN Teil nach dem Index <varname>$index</varname> in den aktuellen
  161. DN ein. Diese Operation manipuliert die aktuelle Instanz.
  162. </entry>
  163. </row>
  164. <row>
  165. <entry><code>void setCaseFold(string|null $caseFold)</code></entry>
  166. <entry>
  167. Setzt die Option für die Schreibweise auf der aktuellen DN Instanz. Wenn
  168. <varname>$caseFold</varname> <constant>NULL</constant> ist dann wird die
  169. standardmäßige Einstellung der Schreibweise (standardmäßig ist
  170. <constant>Zend_Ldap_Dn::ATTR_CASEFOLD_NONE</constant> oder über
  171. <methodname>Zend_Ldap_Dn::setDefaultCaseFold()</methodname> gesetzt)
  172. für die aktuelle Instanz gesetzt.
  173. </entry>
  174. </row>
  175. <row>
  176. <entry><code>string toString(string|null $caseFold)</code></entry>
  177. <entry>Gibt den DN als String zurück.</entry>
  178. </row>
  179. <row>
  180. <entry><code>array toArray(string|null $caseFold)</code></entry>
  181. <entry>Gibt den DN als Array zurück.</entry>
  182. </row>
  183. <row>
  184. <entry><code>string __toString()</code></entry>
  185. <entry>
  186. Gibt den DN als String zurück - verweist auf
  187. <methodname>Zend_Ldap_Dn::toString(null)</methodname>.
  188. </entry>
  189. </row>
  190. <row>
  191. <entry>
  192. <emphasis><code>void setDefaultCaseFold(string $caseFold)</code></emphasis>
  193. </entry>
  194. <entry>
  195. Setzt die standardmäßige Option für die Schreibweise welche von allen
  196. Instanzen bei der Erstellung standardmäßig verwendet wird. Bereits
  197. existierende Instanzen sind von dieser Einstellung nicht betroffen.
  198. </entry>
  199. </row>
  200. <row>
  201. <entry>
  202. <emphasis><code>array escapeValue(string|array $values)</code></emphasis>
  203. </entry>
  204. <entry>Escapt einen DN Wert entsprechend <acronym>RFC</acronym> 2253.</entry>
  205. </row>
  206. <row>
  207. <entry>
  208. <emphasis><code>array unescapeValue(string|array $values)</code></emphasis>
  209. </entry>
  210. <entry>
  211. Macht die Konvertierung von
  212. <methodname>Zend_Ldap_Dn::escapeValue()</methodname> rückgängig.
  213. </entry>
  214. </row>
  215. <row>
  216. <entry>
  217. <emphasis><code>array explodeDn(string $dn, array
  218. &amp;$keys, array &amp;$vals, string|null $caseFold)</code></emphasis>
  219. </entry>
  220. <entry>
  221. <para>
  222. Zerteilt den DN <varname>$dn</varname> in ein Array das alle Teile des
  223. angegebenen DN enthält. <varname>$keys</varname> sind optional die DN
  224. Schlüssel (z.B. CN, OU, DC, ...). <varname>$vals</varname> sind optional
  225. die DN Werte. Das zurückgegebene Array ist vom Typ
  226. </para>
  227. <programlisting language="php"><![CDATA[
  228. array(
  229. array("cn" => "name1", "uid" => "user"),
  230. array("cn" => "name2"),
  231. array("dc" => "example"),
  232. array("dc" => "org")
  233. )
  234. ]]></programlisting>
  235. <para>
  236. für einen DN von
  237. <code>cn=name1+uid=user,cn=name2,dc=example,dc=org</code>.
  238. </para>
  239. </entry>
  240. </row>
  241. <row>
  242. <entry>
  243. <emphasis><code>boolean checkDn(string $dn, array
  244. &amp;$keys, array &amp;$vals, string|null $caseFold)</code></emphasis>
  245. </entry>
  246. <entry>
  247. Prüft ob der gegebene DN <varname>$dn</varname> fehlerhaft ist. Wenn
  248. <varname>$keys</varname> oder <varname>$keys</varname> und
  249. <varname>$vals</varname> angegeben sind, werden diese Arrays mit dem
  250. betreffenden DN Schlüssel und Werten gefüllt.
  251. </entry>
  252. </row>
  253. <row>
  254. <entry>
  255. <emphasis><code>string implodeRdn(array $part, string|null
  256. $caseFold)</code></emphasis>
  257. </entry>
  258. <entry>
  259. Gibt den DN Teil in der Form <code>$attribute=$value</code> zurück.
  260. </entry>
  261. </row>
  262. <row>
  263. <entry>
  264. <emphasis><code>string implodeDn(array $dnArray,
  265. string|null $caseFold, string $separator)</code></emphasis>
  266. </entry>
  267. <entry>
  268. <para>
  269. Implodiert ein Array der Form die von
  270. <methodname>Zend_Ldap_Dn::explodeDn()</methodname> kommt in einen DN
  271. String. <varname>$separator</varname> ist standardmäßig <code>','</code>
  272. aber einige LDAP Server verstehen auch <code>';'</code>.
  273. <varname>$dnArray</varname> muß von folgendem Typ sein:
  274. </para>
  275. <programlisting language="php"><![CDATA[
  276. array(
  277. array("cn" => "name1", "uid" => "user"),
  278. array("cn" => "name2"),
  279. array("dc" => "example"),
  280. array("dc" => "org")
  281. )
  282. ]]></programlisting>
  283. </entry>
  284. </row>
  285. <row>
  286. <entry>
  287. <emphasis><code>boolean isChildOf(string|Zend_Ldap_Dn
  288. $childDn, string|Zend_Ldap_Dn $parentDn)</code></emphasis>
  289. </entry>
  290. <entry>
  291. Prüft ob der angegebene <varname>$childDn</varname> unter dem
  292. <varname>$parentDn</varname> Subbaum ist.
  293. </entry>
  294. </row>
  295. </tbody>
  296. </tgroup>
  297. </table>
  298. </sect3>