2
0

Zend_Ldap-API-Ldap-Dn.xml 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 17230 -->
  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>
  99. <code>string getRdnString(string|null
  100. $caseFold)</code>
  101. </entry>
  102. <entry>
  103. Gibt den <acronym>RDN</acronym> vom aktuellen DN zurück. Der zurückgegebene
  104. Wert ist ein String.
  105. </entry>
  106. </row>
  107. <row>
  108. <entry>
  109. <code>Zend_Ldap_Dn getParentDn(integer
  110. $levelUp)</code>
  111. </entry>
  112. <entry>
  113. Gibt den DN des aktuellen DN Knotens, <varname>$levelUp</varname> Levels
  114. höher, zurück. <varname>$levelUp</varname> ist standardmäßig <code>1</code>.
  115. </entry>
  116. </row>
  117. <row>
  118. <entry>
  119. <code>array get(integer $index, integer $length, string|null
  120. $caseFold)</code>
  121. </entry>
  122. <entry>
  123. Gibt einen Teil des aktuellen DN zurück der von <varname>$index</varname>
  124. und <varname>$length</varname> eingegrenzt wird. <varname>$index</varname>
  125. beginnt mit <code>0</code> und der DN Teil von links.
  126. </entry>
  127. </row>
  128. <row>
  129. <entry>
  130. <code>Zend_Ldap_Dn set(integer $index, array
  131. $value)</code>
  132. </entry>
  133. <entry>
  134. Ersetzt den DN Teil im aktuellen DN. Diese Operation manipuliert die
  135. aktuelle Instanz.
  136. </entry>
  137. </row>
  138. <row>
  139. <entry>
  140. <code>Zend_Ldap_Dn remove(integer $index, integer
  141. $length)</code>
  142. </entry>
  143. <entry>
  144. Entfernt einen DN Teil vom aktuellen DN. Diese Operation manipuliert die
  145. aktuelle Instanz. <varname>$length</varname> ist standardmäßig
  146. <code>1</code>.
  147. </entry>
  148. </row>
  149. <row>
  150. <entry><code>Zend_Ldap_Dn append(array $value)</code></entry>
  151. <entry>
  152. Fügt einen DN Teil zum aktuellen DN hinzu, Diese Operation manipuliert die
  153. aktuelle Instanz.
  154. </entry>
  155. </row>
  156. <row>
  157. <entry><code>Zend_Ldap_Dn prepend(array $value)</code></entry>
  158. <entry>
  159. Fügt einen DN Teil vor dem aktuellen DN hinzu. Diese Operation manipuliert
  160. die aktuelle Instanz.
  161. </entry>
  162. </row>
  163. <row>
  164. <entry>
  165. <code>Zend_Ldap_Dn insert(integer $index, array
  166. $value)</code>
  167. </entry>
  168. <entry>
  169. Fügt einen DN Teil nach dem Index <varname>$index</varname> in den aktuellen
  170. DN ein. Diese Operation manipuliert die aktuelle Instanz.
  171. </entry>
  172. </row>
  173. <row>
  174. <entry><code>void setCaseFold(string|null $caseFold)</code></entry>
  175. <entry>
  176. Setzt die Option für die Schreibweise auf der aktuellen DN Instanz. Wenn
  177. <varname>$caseFold</varname> null ist dann wird die standardmäßige
  178. Einstellung der Schreibweise (standardmäßig ist
  179. <constant>Zend_Ldap_Dn::ATTR_CASEFOLD_NONE</constant> oder über
  180. <methodname>Zend_Ldap_Dn::setDefaultCaseFold()</methodname> gesetzt)
  181. für die aktuelle Instanz gesetzt.
  182. </entry>
  183. </row>
  184. <row>
  185. <entry><code>string toString(string|null $caseFold)</code></entry>
  186. <entry>Gibt den DN als String zurück.</entry>
  187. </row>
  188. <row>
  189. <entry><code>array toArray(string|null $caseFold)</code></entry>
  190. <entry>Gibt den DN als Array zurück.</entry>
  191. </row>
  192. <row>
  193. <entry><code>string __toString()</code></entry>
  194. <entry>
  195. Gibt den DN als String zurück - verweist auf
  196. <methodname>Zend_Ldap_Dn::toString(null)</methodname>.
  197. </entry>
  198. </row>
  199. <row>
  200. <entry>
  201. <emphasis><code>void setDefaultCaseFold(string
  202. $caseFold)</code> </emphasis>
  203. </entry>
  204. <entry>
  205. Setzt die standardmäßige Option für die Schreibweise welche von allen
  206. Instanzen bei der Erstellung standardmäßig verwendet wird. Bereits
  207. existierende Instanzen sind von dieser Einstellung nicht betroffen.
  208. </entry>
  209. </row>
  210. <row>
  211. <entry>
  212. <emphasis><code>array escapeValue(string|array
  213. $values)</code> </emphasis>
  214. </entry>
  215. <entry>Escapt einen DN Wert entsprechend <acronym>RFC</acronym> 2253.</entry>
  216. </row>
  217. <row>
  218. <entry>
  219. <emphasis><code>array unescapeValue(string|array
  220. $values)</code> </emphasis>
  221. </entry>
  222. <entry>
  223. Macht die Konvertierung von
  224. <methodname>Zend_Ldap_Dn::escapeValue()</methodname> rückgängig.
  225. </entry>
  226. </row>
  227. <row>
  228. <entry>
  229. <emphasis><code>array explodeDn(string $dn, array
  230. &amp;$keys, array &amp;$vals, string|null $caseFold)</code>
  231. </emphasis>
  232. </entry>
  233. <entry>
  234. Zerteilt den DN <varname>$dn</varname> in ein Array das alle Teile des
  235. angegebenen DN enthält. <varname>$keys</varname> sind optional die DN
  236. Schlüssel (z.B. CN, OU, DC, ...). <varname>$vals</varname> sind optional die
  237. DN Werte. Das zurückgegebene Array ist vom Typ
  238. <programlisting language="php"><![CDATA[
  239. array(
  240. array("cn" => "name1", "uid" => "user"),
  241. array("cn" => "name2"),
  242. array("dc" => "example"),
  243. array("dc" => "org")
  244. )
  245. ]]></programlisting> für einen DN von <code>cn=name1+uid=user,cn=name2,dc=example,dc=org</code>.
  246. </entry>
  247. </row>
  248. <row>
  249. <entry>
  250. <emphasis><code>boolean checkDn(string $dn, array
  251. &amp;$keys, array &amp;$vals, string|null $caseFold)</code>
  252. </emphasis>
  253. </entry>
  254. <entry>
  255. Prüft ob der gegebene DN <varname>$dn</varname> fehlerhaft ist. Wenn
  256. <varname>$keys</varname> oder <varname>$keys</varname> und
  257. <varname>$vals</varname> angegeben sind, werden diese Arrays mit dem
  258. betreffenden DN Schlüssel und Werten gefüllt.
  259. </entry>
  260. </row>
  261. <row>
  262. <entry>
  263. <emphasis><code>string implodeRdn(array $part, string|null
  264. $caseFold)</code> </emphasis>
  265. </entry>
  266. <entry>
  267. Gibt den DN Teil in der Form <code>$attribute=$value</code> zurück.
  268. </entry>
  269. </row>
  270. <row>
  271. <entry>
  272. <emphasis><code>string implodeDn(array $dnArray,
  273. string|null $caseFold, string $separator)</code>
  274. </emphasis>
  275. </entry>
  276. <entry>
  277. Implodiert ein Array der Form die von
  278. <methodname>Zend_Ldap_Dn::explodeDn()</methodname> kommt in einen DN
  279. String. <varname>$separator</varname> ist standardmäßig <code>','</code>
  280. aber einige LDAP Server verstehen auch <code>';'</code>.
  281. <varname>$dnArray</varname> muß von folgendem Typ sein:
  282. <programlisting language="php"><![CDATA[
  283. array(
  284. array("cn" => "name1", "uid" => "user"),
  285. array("cn" => "name2"),
  286. array("dc" => "example"),
  287. array("dc" => "org")
  288. )
  289. ]]></programlisting>
  290. </entry>
  291. </row>
  292. <row>
  293. <entry>
  294. <emphasis><code>boolean isChildOf(string|Zend_Ldap_Dn
  295. $childDn, string|Zend_Ldap_Dn $parentDn)</code> </emphasis>
  296. </entry>
  297. <entry>
  298. Prüft ob der angegebene <varname>$childDn</varname> unter dem
  299. <varname>$parentDn</varname> Subbaum ist.
  300. </entry>
  301. </row>
  302. </tbody>
  303. </tgroup>
  304. </table>
  305. </sect3>