1 <?php namespace BookStack\Services;
6 * An object-orientated thin abstraction wrapper for common PHP LDAP functions.
7 * Allows the standard LDAP functions to be mocked for testing.
8 * @package BookStack\Services
14 * Connect to a LDAP server.
15 * @param string $hostName
19 public function connect($hostName, $port)
21 return ldap_connect($hostName, $port);
25 * Set the value of a LDAP option for the given connection.
26 * @param resource $ldapConnection
31 public function setOption($ldapConnection, $option, $value)
33 return ldap_set_option($ldapConnection, $option, $value);
37 * Set the version number for the given ldap connection.
38 * @param $ldapConnection
42 public function setVersion($ldapConnection, $version)
44 return $this->setOption($ldapConnection, LDAP_OPT_PROTOCOL_VERSION, $version);
48 * Search LDAP tree using the provided filter.
49 * @param resource $ldapConnection
50 * @param string $baseDn
51 * @param string $filter
52 * @param array|null $attributes
55 public function search($ldapConnection, $baseDn, $filter, array $attributes = null)
57 return ldap_search($ldapConnection, $baseDn, $filter, $attributes);
61 * Get entries from an ldap search result.
62 * @param resource $ldapConnection
63 * @param resource $ldapSearchResult
66 public function getEntries($ldapConnection, $ldapSearchResult)
68 return ldap_get_entries($ldapConnection, $ldapSearchResult);
72 * Search and get entries immediately.
73 * @param resource $ldapConnection
74 * @param string $baseDn
75 * @param string $filter
76 * @param array|null $attributes
79 public function searchAndGetEntries($ldapConnection, $baseDn, $filter, array $attributes = null)
81 $search = $this->search($ldapConnection, $baseDn, $filter, $attributes);
82 return $this->getEntries($ldapConnection, $search);
86 * Bind to LDAP directory.
87 * @param resource $ldapConnection
88 * @param string $bindRdn
89 * @param string $bindPassword
92 public function bind($ldapConnection, $bindRdn = null, $bindPassword = null)
94 return ldap_bind($ldapConnection, $bindRdn, $bindPassword);