Вы можете сделать
protected function _initLdap()
{
$ldap = new Zend_Ldap(/*... your configuration ...*/);
return $ldap;
}
Но такого понятия, как по умолчанию LDAP-соединение, не существует, поэтому вам нужно извлечь объект LDAP-соединения из ресурсов вашего загрузчика. Какой-то вспомогательный класс может, ну, в общем, помочь.
Кстати, ваша модель не должна расширяться Zend_Ldap
- по крайней мере, не по той причине, по которой вы хотите это сделать. Вы могли бы, например, extends Zend_Ldap_Node
, представляющий одну запись LDAP, тогда как Zend_Ldap
- представление соединения LDAP и сервера LDAP, с которым вы разговариваете.
EDIT:
class Application_Ldap
{
public static function getLdap()
{
/* return LDAP connection from bootstrap */
}
public static function newEntry($name)
{
$dn = $name; // build DN from given entity name
$node = Zend_Ldap_Node::create($dn);
$node->attachLdap(self::getLdap());
return $node;
}
public static function loadEntry($name)
{
$dn = $name; // build DN from given entity name
$node = Zend_Ldap_Node::fromLdap($dn, self::getLdap());
return $node
}
}
Имейте в виду: это на самом деле не современная модель, а просто простое решение вашей проблемы (если я правильно понял). Это позволяет вам делать следующее в логике вашего приложения:
$newOne = Application_Ldap::newEntry('new-one');
$newOne->email = "xyz@abc.xom";
$newOne->update();
$oldOne = Application_Ldap::loadEntry('old-one');
$oldOne->email = "abc@abc.xom";
$oldOne->update();