Zend_Ldap-API-Ldap-Dn.xml 14 KB

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