PHP Класс Horde_Ldap_Filter, horde

The purpose of this class is to easily build LDAP filters without having to worry about correct escaping etc. A filter is built using several independent filter objects which are combined afterwards. This object works in two modes, depending how the object is created. If the object is created using the {@link create()} method, then this is a leaf-object. If the object is created using the {@link combine()} method, then this is a container object. LDAP filters are defined in RFC 2254.
См. также: http://www.ietf.org/rfc/rfc2254.txt A short example: $filter0 = Horde_Ldap_Filter::create('stars', 'equals', '***'); $filter_not0 = Horde_Ldap_Filter::combine('not', $filter0); $filter1 = Horde_Ldap_Filter::create('gn', 'begins', 'bar'); $filter2 = Horde_Ldap_Filter::create('gn', 'ends', 'baz'); $filter_comp = Horde_Ldap_Filter::combine('or', array($filter_not0, $filter1, $filter2)); echo (string)$filter_comp; // This will output: (|(!(stars=\0x5c0x2a\0x5c0x2a\0x5c0x2a))(gn=bar*)(gn=*baz)) // The stars in $filter0 are treaten as real stars unless you disable escaping. Copyright 2009 Benedikt Hallinger Copyright 2010-2016 Horde LLC (http://www.horde.org/)
Автор: Benedikt Hallinger ([email protected])
Автор: Jan Schneider ([email protected])
Показать файл Открыть проект Примеры использования класса

Защищенные свойства (Protected)

Свойство Тип Описание
$_filter string If this is a leaf filter, the filter representation is store here.
$_filters array This variable holds a array of filter objects that should be combined by this filter object.
$_operator string Operator for sub-filters.

Открытые методы

Метод Описание
__toString ( ) : string Returns the string representation of this filter.
build ( array $params, string $operator = 'and' ) : Horde_Ldap_Filter Builds a filter (commonly for objectClass attributes) from different configuration options.
combine ( string $operator, array | Horde_Ldap_Filter | string $filters ) : Horde_Ldap_Filter Combines two or more filter objects using a logical operator.
create ( string $attribute, string $match, string $value = '', boolean $escape = true ) : Horde_Ldap_Filter Creates a new part of an LDAP filter.
parse ( string $filter ) : Horde_Ldap_Filter Parses a string into a Horde_Ldap_Filter object.

Защищенные методы

Метод Описание
__construct ( array $params ) Constructor.
_parseCombination ( string $filter ) : Horde_Ldap_Filter Parses combined subfilter strings.
_parseLeaf ( string $filter ) : Horde_Ldap_Filter Parses a single leaf component.

Описание методов

__construct() защищенный Метод

Construction of Horde_Ldap_Filter objects should happen through either {@link create()} or {@link combine()} which give you more control. However, you may use the constructor if you already have generated filters.
protected __construct ( array $params )
$params array List of object parameters

__toString() публичный Метод

This method runs through all filter objects and creates the string representation of the filter.
public __toString ( ) : string
Результат string

_parseCombination() защищенный статический Метод

Passes subfilters to parse() and combines the objects using the logical operator detected. Each subfilter could be an arbitary complex subfilter.
protected static _parseCombination ( string $filter ) : Horde_Ldap_Filter
$filter string An LDAP filter string.
Результат Horde_Ldap_Filter

_parseLeaf() защищенный статический Метод

Parses a single leaf component.
protected static _parseLeaf ( string $filter ) : Horde_Ldap_Filter
$filter string An LDAP filter string.
Результат Horde_Ldap_Filter

build() публичный статический Метод

Builds a filter (commonly for objectClass attributes) from different configuration options.
public static build ( array $params, string $operator = 'and' ) : Horde_Ldap_Filter
$params array Hash with configuration options that build the search filter. Possible hash keys: - 'filter': An LDAP filter string. - 'objectclass' (string): An objectClass name. - 'objectclass' (array): A list of objectClass names.
$operator string How to combine mutliple 'objectclass' entries. 'and' or 'or'.
Результат Horde_Ldap_Filter A filter matching the specified criteria.

combine() публичный статический Метод

Example: $filter = Horde_Ldap_Filter::combine('or', array($filter1, $filter2)); If the array contains filter strings instead of filter objects, they will be parsed.
public static combine ( string $operator, array | Horde_Ldap_Filter | string $filters ) : Horde_Ldap_Filter
$operator string The logical operator, either "and", "or", "not" or the logical equivalents "&", "|", "!".
$filters array | Horde_Ldap_Filter | string Array with Horde_Ldap_Filter objects and/or strings or a single filter when using the "not" operator.
Результат Horde_Ldap_Filter

create() публичный статический Метод

The following matching rules exists: - equals: One of the attributes values is exactly $value. Please note that case sensitiviness depends on the attributes syntax configured in the server. - begins: One of the attributes values must begin with $value. - ends: One of the attributes values must end with $value. - contains: One of the attributes values must contain $value. - present | any: The attribute can contain any value but must exist. - greater: The attributes value is greater than $value. - less: The attributes value is less than $value. - greaterOrEqual: The attributes value is greater or equal than $value. - lessOrEqual: The attributes value is less or equal than $value. - approx: One of the attributes values is similar to $value. If $escape is set to true then $value will be escaped. If set to false then $value will be treaten as a raw filter value string. You should then escape it yourself using {@link Horde_Ldap_Util::escapeFilterValue()}. Examples: This will find entries that contain an attribute "sn" that ends with "foobar": $filter = Horde_Ldap_Filter::create('sn', 'ends', 'foobar'); This will find entries that contain an attribute "sn" that has any value set: $filter = Horde_Ldap_Filter::create('sn', 'any');
public static create ( string $attribute, string $match, string $value = '', boolean $escape = true ) : Horde_Ldap_Filter
$attribute string Name of the attribute the filter should apply to.
$match string Matching rule (equals, begins, ends, contains, greater, less, greaterOrEqual, lessOrEqual, approx, any).
$value string If given, then this is used as a filter value.
$escape boolean Should $value be escaped?
Результат Horde_Ldap_Filter

parse() публичный статический Метод

Parses a string into a Horde_Ldap_Filter object.
public static parse ( string $filter ) : Horde_Ldap_Filter
$filter string An LDAP filter string.
Результат Horde_Ldap_Filter

Описание свойств

$_filter защищенное свойство

If this is a leaf filter, the filter representation is store here.
protected string $_filter
Результат string

$_filters защищенное свойство

This variable holds a array of filter objects that should be combined by this filter object.
protected array $_filters
Результат array

$_operator защищенное свойство

Operator for sub-filters.
protected string $_operator
Результат string