PHP 클래스 Horde_Ldap_Entry, horde

Copyright 2003-2007 Tarjej Huse, Jan Wagner, Benedikt Hallinger Copyright 2009-2016 Horde LLC (http://www.horde.org/)
저자: Jan Wagner ([email protected])
저자: Tarjej Huse ([email protected])
저자: Benedikt Hallinger ([email protected])
저자: Ben Klang ([email protected])
저자: Jan Schneider ([email protected])
파일 보기 프로젝트 열기: horde/horde 1 사용 예제들

보호된 프로퍼티들

프로퍼티 타입 설명
$_attributes array Attributes.
$_changes array Map with changes to the entry.
$_delete boolean Shall the entry be deleted?
$_dn string Distinguished name of the entry.
$_entry resource Entry resource identifier.
$_ldap Horde_Ldap This object will be used for updating and schema checking.
$_link resource LDAP resource identifier.
$_map array Map of attribute names.
$_new boolean Is this a new entry?
$_newdn string New distinguished name.
$_original array Original attributes before any modification.

공개 메소드들

메소드 설명
add ( array $attr = [] ) Adds new attributes or a new values to existing attributes.
attributes ( ) : array Returns an array of attributes names.
createConnected ( Horde_Ldap $ldap, resource $entry ) : Horde_Ldap_Entry Creates an entry object out of an LDAP entry resource.
createExisting ( string $dn, array $attrs = [] ) : Horde_Ldap_Entry Creates an entry object that is considered to exist already.
createFresh ( string $dn, array $attrs = [] ) : Horde_Ldap_Entry Creates a fresh entry that may be added to the directory later.
currentDN ( ) : string Returns always the original DN.
delete ( string | array $attr = null ) Deletes an attribute, a value or the whole entry.
dn ( string $dn = null ) : string Returns or sets the distinguished name of the entry.
exists ( string $attr ) : boolean Returns whether an attribute exists or not.
getChanges ( ) : array Returns the attribute changes to be carried out once update() is called.
getLDAP ( ) : Horde_Ldap Returns a reference to the LDAP-Object of this entry.
getValue ( string $attr, string $option = null ) : string | array Returns the value of a specific attribute.
getValues ( ) : array Returns the values of all attributes in a hash.
isNew ( ) : boolean Returns whether the entry is considered new (not present in the server).
markAsNew ( boolean $mark = true ) Marks the entry as new or existing.
pregMatch ( string $regex, string $attr_name, array &$matches = [] ) : boolean Applies a regular expression onto a single- or multi-valued attribute (like preg_match()).
replace ( array $attr = [], boolean $force = false ) Replaces attributes or their values.
setLDAP ( Horde_Ldap $ldap ) Sets a reference to the LDAP object of this entry.
update ( ) Updates the entry on the directory server.
willBeDeleted ( ) : boolean Is this entry going to be deleted once update() is called?
willBeMoved ( ) : boolean Is this entry going to be moved once update() is called?

보호된 메소드들

메소드 설명
__construct ( Horde_Ldap | resource | array $ldap, string | resource $entry = null ) Constructor.
_getAttrName ( string $attr ) : string Returns the right attribute name.
_loadAttributes ( array $attributes = null ) Sets the internal attributes array.

메소드 상세

__construct() 보호된 메소드

Sets up the distinguished name and the entries attributes. Use {@link Horde_Ldap_Entry::createFresh()} or {@link Horde_Ldap_Entry::createConnected()} to create Horde_Ldap_Entry objects.
protected __construct ( Horde_Ldap | resource | array $ldap, string | resource $entry = null )
$ldap Horde_Ldap | resource | array Horde_Ldap object, LDAP connection resource or array of attributes.
$entry string | resource Either a DN or a LDAP entry resource.

_getAttrName() 보호된 메소드

Returns the right attribute name.
protected _getAttrName ( string $attr ) : string
$attr string Name of attribute.
리턴 string The right name of the attribute

_loadAttributes() 보호된 메소드

This method fetches the values for the attributes from the server. The attribute syntax will be checked so binary attributes will be returned as binary values. Attributes may be passed directly via the $attributes parameter to setup this entry manually. This overrides attribute fetching from the server.
protected _loadAttributes ( array $attributes = null )
$attributes array Attributes to set for this entry.

add() 공개 메소드

The paramter has to be an array of the form: array('attributename' => 'single value', 'attributename' => array('value1', 'value2')) When the attribute already exists the values will be added, otherwise the attribute will be created. These changes are local to the entry and do not affect the entry on the server until update() is called. You can add values of attributes that you haven't originally selected, but if you do so, {@link getValue()} and {@link getValues()} will only return the values you added, *NOT* all values present on the server. To avoid this, just refetch the entry after calling {@link update()} or select the attribute.
public add ( array $attr = [] )
$attr array Attributes to add.

attributes() 공개 메소드

Returns an array of attributes names.
public attributes ( ) : array
리턴 array Array of attribute names.

createConnected() 공개 정적인 메소드

Use this method, if you want to initialize an entry object that is already present in some directory and that you have read manually.
public static createConnected ( Horde_Ldap $ldap, resource $entry ) : Horde_Ldap_Entry
$ldap Horde_Ldap Horde_Ldap object.
$entry resource PHP LDAP entry resource.
리턴 Horde_Ldap_Entry

createExisting() 공개 정적인 메소드

Use this method, if you want to modify an already existing entry without fetching it first. In most cases however, it is better to fetch the entry via Horde_Ldap::getEntry(). You should take care if you construct entries manually with this because you may get weird synchronisation problems. The attributes and values as well as the entry itself are considered existent which may produce errors if you try to modify an entry which doesn't really exist or if you try to overwrite some attribute with an value already present. The attributes parameter is as following: $attrs = array('attribute1' => array('value1', 'value2'), 'attribute2' => 'single value');
public static createExisting ( string $dn, array $attrs = [] ) : Horde_Ldap_Entry
$dn string DN of the entry.
$attrs array Attributes of the entry.
리턴 Horde_Ldap_Entry

createFresh() 공개 정적인 메소드

You should put a 'objectClass' attribute into the $attrs so the directory server knows which object you want to create. However, you may omit this in case you don't want to add this entry to a directory server. The attributes parameter is as following: $attrs = array('attribute1' => array('value1', 'value2'), 'attribute2' => 'single value');
public static createFresh ( string $dn, array $attrs = [] ) : Horde_Ldap_Entry
$dn string DN of the entry.
$attrs array Attributes of the entry.
리턴 Horde_Ldap_Entry

currentDN() 공개 메소드

If an entry will be moved but {@link update()} was not called, {@link dn()} will return the new DN. This method however, returns always the current active DN.
public currentDN ( ) : string
리턴 string The current DN

delete() 공개 메소드

The parameter can be one of the following: - 'attributename': the attribute as a whole will be deleted. - array('attributename1', 'attributename2'): all specified attributes will be deleted. - array('attributename' => 'value'): the specified attribute value will be deleted. - array('attributename' => array('value1', 'value2'): The specified attribute values will be deleted. - null: the whole entry will be deleted. These changes are local to the entry and do not affect the entry on the server until {@link update()} is called. You must select the attribute (at $ldap->search() for example) to be able to delete values of it, Otherwise {@link update()} will silently fail and remove nothing.
public delete ( string | array $attr = null )
$attr string | array Attributes to delete.

dn() 공개 메소드

If called without an argument the current (or the new DN if set) DN gets returned. If you provide an DN, this entry is moved to the new location specified if a DN existed. If the DN was not set, the DN gets initialized. Call {@link update()} to actually create the new entry in the directory. To fetch the current active DN after setting a new DN but before an update(), you can use {@link currentDN()} to retrieve the DN that is currently active.
public dn ( string $dn = null ) : string
$dn string New distinguished name.
리턴 string Distinguished name.

exists() 공개 메소드

Returns whether an attribute exists or not.
public exists ( string $attr ) : boolean
$attr string Attribute name.
리턴 boolean True if the attribute exists.

getChanges() 공개 메소드

Returns the attribute changes to be carried out once update() is called.
public getChanges ( ) : array
리턴 array The due changes.

getLDAP() 공개 메소드

Returns a reference to the LDAP-Object of this entry.
public getLDAP ( ) : Horde_Ldap
리턴 Horde_Ldap Reference to the Horde_Ldap object (the connection).

getValue() 공개 메소드

The first parameter is the name of the attribute. The second parameter influences the way the value is returned: - 'single': only the first value is returned as string. - 'all': all values are returned in an array. In all other cases an attribute value with a single value is returned as string, if it has multiple values it is returned as an array.
public getValue ( string $attr, string $option = null ) : string | array
$attr string Attribute name.
$option string Option.
리턴 string | array Attribute value(s).

getValues() 공개 메소드

The returned hash has the form array('attributename' => 'single value', 'attributename' => array('value1', value2', value3'))
public getValues ( ) : array
리턴 array Hash of all attributes with their values.

isNew() 공개 메소드

This method doesn't tell you if the entry is really not present on the server. Use {@link Horde_Ldap::exists()} to see if an entry is already there.
public isNew ( ) : boolean
리턴 boolean True if this is considered a new entry.

markAsNew() 공개 메소드

If an entry is marked as new, it will be added to the directory when calling {@link update()}. If the entry is marked as old ($mark = false), then the entry is assumed to be present in the directory server wich results in modification when calling {@link update()}.
public markAsNew ( boolean $mark = true )
$mark boolean Whether to mark the entry as new.

pregMatch() 공개 메소드

This method behaves like PHP's preg_match() but with some exception. Since it is possible to have multi valued attributes the $matches array will have a additionally numerical dimension (one for each value): $matches = array( 0 => array (usual preg_match() returned array), 1 => array (usual preg_match() returned array) ) $matches will always be initialized to an empty array inside. Usage example: try { if ($entry->pregMatch('/089(\d+)/', 'telephoneNumber', $matches)) { Match of value 1, content of first bracket echo 'First match: ' . $matches[0][1]; } else { echo 'No match found.'; } } catch (Horde_Ldap_Exception $e) { echo 'Error: ' . $e->getMessage(); }
public pregMatch ( string $regex, string $attr_name, array &$matches = [] ) : boolean
$regex string The regular expression.
$attr_name string The attribute to search in.
$matches array Array to store matches in.
리턴 boolean True if we had a match in one of the values.

replace() 공개 메소드

The parameter has to an array of the following form: array('attributename' => 'single value', 'attribute2name' => array('value1', 'value2'), 'deleteme1' => null, 'deleteme2' => '') If the attribute does not yet exist it will be added instead (see also $force). If the attribue value is null, the attribute will de deleted. These changes are local to the entry and do not affect the entry on the server until {@link update()} is called. In some cases you are not allowed to read the attributes value (for example the ActiveDirectory attribute unicodePwd) but are allowed to replace the value. In this case replace() would assume that the attribute is not in the directory yet and tries to add it which will result in an LDAP_TYPE_OR_VALUE_EXISTS error. To force replace mode instead of add, you can set $force to true.
public replace ( array $attr = [], boolean $force = false )
$attr array Attributes to replace.
$force boolean Force replacing mode in case we can't read the attribute value but are allowed to replace it.

setLDAP() 공개 메소드

After setting a Horde_Ldap object, calling update() will use that object for updating directory contents. Use this to dynamicly switch directories.
public setLDAP ( Horde_Ldap $ldap )
$ldap Horde_Ldap Horde_Ldap object that this entry should be connected to.

update() 공개 메소드

This will evaluate all changes made so far and send them to the directory server. If you make changes to objectclasses wich have mandatory attributes set, update() will currently fail. Remove the entry from the server and readd it as new in such cases. This also will deal with problems with setting structural object classes.
public update ( )

willBeDeleted() 공개 메소드

Is this entry going to be deleted once update() is called?
public willBeDeleted ( ) : boolean
리턴 boolean True if this entry is going to be deleted.

willBeMoved() 공개 메소드

Is this entry going to be moved once update() is called?
public willBeMoved ( ) : boolean
리턴 boolean True if this entry is going to be move.

프로퍼티 상세

$_attributes 보호되어 있는 프로퍼티

Attributes.
protected array $_attributes
리턴 array

$_changes 보호되어 있는 프로퍼티

Map with changes to the entry.
protected array $_changes
리턴 array

$_delete 보호되어 있는 프로퍼티

Shall the entry be deleted?
protected bool $_delete
리턴 boolean

$_dn 보호되어 있는 프로퍼티

Distinguished name of the entry.
protected string $_dn
리턴 string

$_entry 보호되어 있는 프로퍼티

Entry resource identifier.
protected resource $_entry
리턴 resource

$_ldap 보호되어 있는 프로퍼티

This object will be used for updating and schema checking.
protected Horde_Ldap $_ldap
리턴 Horde_Ldap

$_map 보호되어 있는 프로퍼티

Map of attribute names.
protected array $_map
리턴 array

$_new 보호되어 있는 프로퍼티

Is this a new entry?
protected bool $_new
리턴 boolean

$_newdn 보호되어 있는 프로퍼티

New distinguished name.
protected string $_newdn
리턴 string

$_original 보호되어 있는 프로퍼티

Original attributes before any modification.
protected array $_original
리턴 array