1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- EN-Revision: 21496 -->
4 <sect1 id="zend.ldap.usage">
5 <title>Scénarios d'utilisation</title>
7 <sect2 id="zend.ldap.usage.authentication">
8 <title>Scénarios d'authentification</title>
10 <sect3 id="zend.ldap.usage.authentication.openldap">
11 <title>OpenLDAP</title>
15 <sect3 id="zend.ldap.usage.authentication.activedirectory">
16 <title>ActiveDirectory</title>
21 <sect2 id="zend.ldap.usage.basic">
22 <title>Opérations CRUD basiques</title>
24 <sect3 id="zend.ldap.usage.basic.retrieve">
25 <title>Récupérer des données depuis LDAP</title>
27 <example id="zend.ldap.usage.basic.retrieve.dn">
28 <title>Récupérer une entrée grâce à son DN</title>
30 <programlisting language="php"><![CDATA[
31 $options = array(/* ... */);
32 $ldap = new Zend_Ldap($options);
34 $hm = $ldap->getEntry('cn=Hugo Müller,ou=People,dc=my,dc=local');
36 $hm est un tableau à la structure suivante:
38 'dn' => 'cn=Hugo Müller,ou=People,dc=my,dc=local',
39 'cn' => array('Hugo Müller'),
40 'sn' => array('Müller'),
41 'objectclass' => array('inetOrgPerson', 'top'),
48 <example id="zend.ldap.usage.basic.retrieve.exists">
49 <title>Vérifier l'existence d'un DN donné</title>
51 <programlisting language="php"><![CDATA[
52 $options = array(/* ... */);
53 $ldap = new Zend_Ldap($options);
55 $isThere = $ldap->exists('cn=Hugo Müller,ou=People,dc=my,dc=local');
59 <example id="zend.ldap.usage.basic.retrieve.counting-children">
60 <title>Compter les enfants d'un DN donné</title>
62 <programlisting language="php"><![CDATA[
63 $options = array(/* ... */);
64 $ldap = new Zend_Ldap($options);
66 $childrenCount = $ldap->countChildren(
67 'cn=Hugo Müller,ou=People,dc=my,dc=local');
71 <example id="zend.ldap.usage.basic.retrieve.search">
72 <title>Chercher dans l'arbre LDAP</title>
74 <programlisting language="php"><![CDATA[
75 $options = array(/* ... */);
76 $ldap = new Zend_Ldap($options);
78 $result = $ldap->search('(objectclass=*)',
79 'ou=People,dc=my,dc=local',
80 Zend_Ldap_Ext::SEARCH_SCOPE_ONE);
81 foreach ($result as $item) {
82 echo $item["dn"] . ': ' . $item['cn'][0] . PHP_EOL;
88 <sect3 id="zend.ldap.usage.basic.add">
89 <title>Ajouter des données à LDAP</title>
92 <title>Ajouter une nouvelle entrée à LDAP</title>
94 <programlisting language="php"><![CDATA[
95 $options = array(/* ... */);
96 $ldap = new Zend_Ldap($options);
99 Zend_Ldap_Attribute::setAttribute($entry, 'cn', 'Hans Meier');
100 Zend_Ldap_Attribute::setAttribute($entry, 'sn', 'Meier');
101 Zend_Ldap_Attribute::setAttribute($entry, 'objectClass', 'inetOrgPerson');
102 $ldap->add('cn=Hans Meier,ou=People,dc=my,dc=local', $entry);
107 <sect3 id="zend.ldap.usage.basic.delete">
108 <title>Supprimer de LDAP</title>
111 <title>Supprimer une entrée existante de LDAP</title>
113 <programlisting language="php"><![CDATA[
114 $options = array(/* ... */);
115 $ldap = new Zend_Ldap($options);
117 $ldap->delete('cn=Hans Meier,ou=People,dc=my,dc=local');
122 <sect3 id="zend.ldap.usage.basic.update">
123 <title>Mettre à jour LDAP</title>
126 <title>Mettre à jour une entrée existante dans LDAP</title>
128 <programlisting language="php"><![CDATA[
129 $options = array(/* ... */);
130 $ldap = new Zend_Ldap($options);
132 $hm = $ldap->getEntry('cn=Hugo Müller,ou=People,dc=my,dc=local');
133 Zend_Ldap_Attribute::setAttribute($hm, 'mail', 'mueller@my.local');
134 Zend_Ldap_Attribute::setPassword($hm,
136 Zend_Ldap_Attribute::PASSWORD_HASH_SHA1);
137 $ldap->update('cn=Hugo Müller,ou=People,dc=my,dc=local', $hm);
143 <sect2 id="zend.ldap.usage.extended">
144 <title>Opérations avancées</title>
146 <sect3 id="zend.ldap.usage.extended.copy-and-move">
147 <title>Copier et déplacer des entrées LDAP</title>
149 <example id="zend.ldap.usage.extended.copy-and-move.copy">
150 <title>Copier une entrée LDAP récursivement avec tous ses descendants</title>
152 <programlisting language="php"><![CDATA[
153 $options = array(/* ... */);
154 $ldap = new Zend_Ldap($options);
156 $ldap->copy('cn=Hugo Müller,ou=People,dc=my,dc=local',
157 'cn=Hans Meier,ou=People,dc=my,dc=local',
162 <example id="zend.ldap.usage.extended.copy-and-move.move-to-subtree">
164 Déplacer une entrée LDAP récursivement vers un sous-arbre différent
167 <programlisting language="php"><![CDATA[
168 $options = array(/* ... */);
169 $ldap = new Zend_Ldap($options);
171 $ldap->moveToSubtree('cn=Hugo Müller,ou=People,dc=my,dc=local',
172 'ou=Dismissed,dc=my,dc=local',