エントリの管理 -- エントリの追加/名前の変更/移動/削除
ディレクトリへの (新規、あるいは既存) エントリの追加
新しいエントリの追加は、二段階の手順を踏んで行います。
まずは新しい Net_LDAP_Entry
オブジェクトを作成する必要があります。その後、
Net_LDAP の add()
メソッドを使って次のようにエントリを追加していきます。
例 54-1新規エントリの追加 // 新規エントリを作成します
$dn = 'cn=new-admin,o=example,dc=org';
$attributes = array(
'cn' => 'new-admin',
'mail' => array('new-admin@exaple.org', 'n.admin@example.de'),
'telephoneNumber' => '1234567890'
);
$entry = Net_LDAP_Entry::createFresh($dn, $attributes);
// そのエントリをディレクトリに追加します
$ldap->add($entry); |
|
エントリの名前の変更や移動
エントリの名前の変更や移動は、そのエントリの DN に対する操作となります。
エントリを移動するとは、その DN を新たな名前に変更し、
新たなベース DN にするということです。エントリの名前を変更したり移動したりするには、
そのエントリの dn() メソッドをコールします。
一方、Net_LDAP の
move() メソッドを使用することもできます。
これは DN のみを処理します。実際に名前の変更や移動の作業を完了するには、
エントリの update()
メソッドをコールする必要があることを覚えておきましょう。
Net_LDAP の move()
は、その場でエントリを移動します。
entryobject を Net_LDAP の
move() で使用すると、
ディレクトリをまたがる移動もできるようになります。
例 54-2Net_LDAP_Entry によるエントリの移動 // 取得したい DN を定義します
$dn = 'cn=admin,o=example,dc=org';
$newdn = 'cn=admin,o=new-example,dc=org';
$entry = $ldap->getEntry($dn);
$entry->dn($newdn); |
|
例 54-4Net_LDAP と DN によるエントリの移動 // 取得したい DN を定義します
$dn = 'cn=admin,o=example,dc=org';
$newdn = 'cn=admin2,o=new-example,dc=org';
$ldap->move($dn, $newdn); |
|
例 54-5ディレクトリをまたがる移動 // $ldap_src が移動元、そして $ldap_tgt が移動先です
$dn = 'cn=admin,o=example,dc=org';
$newdn = 'cn=admin,o=new-example,dc=org';
$entry = $ldap_src->getEntry($dn);
$ldap_src->move($entry, $newdn, $ldap_tgt); |
|
エントリの削除
エントリを削除するには、Net_LDAP
の delete() メソッドを使用します。
このメソッドに、Net_LDAP_Entry
オブジェクトかあるいは削除したいエントリの DN を渡します。
DN がサブエントリを含む場合は、delete()
の 2 番目のパラメータに TRUE
を渡すと再帰的な削除を行います。
もうひとつの方法としては、削除したい
Net_LDAP_Entry オブジェクトの
delete() メソッドを単純にコールするというものがあります。
この場合、実際に削除処理を完了するには update()
をコールする必要があることに注意しましょう。
例 54-6エントリの削除 $dn = 'cn=new-admin,o=example,dc=org';
$ldap->delete($dn); |
|