* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Ldap\Adapter\ExtLdap; use Symfony\Component\Ldap\Adapter\AdapterInterface; use Symfony\Component\Ldap\Exception\LdapException; /** * @author Charles Sarrazin */ class Adapter implements AdapterInterface { private $config; private $connection; private $entryManager; public function __construct(array $config = array()) { if (!extension_loaded('ldap')) { throw new LdapException('The LDAP PHP extension is not enabled.'); } $this->config = $config; } /** * {@inheritdoc} */ public function getConnection() { if (null === $this->connection) { $this->connection = new Connection($this->config); } return $this->connection; } /** * {@inheritdoc} */ public function getEntryManager() { if (null === $this->entryManager) { $this->entryManager = new EntryManager($this->getConnection()); } return $this->entryManager; } /** * {@inheritdoc} */ public function createQuery($dn, $query, array $options = array()) { return new Query($this->getConnection(), $dn, $query, $options); } /** * {@inheritdoc} */ public function escape($subject, $ignore = '', $flags = 0) { $value = ldap_escape($subject, $ignore, $flags); // Per RFC 4514, leading/trailing spaces should be encoded in DNs, as well as carriage returns. if ((int) $flags & LDAP_ESCAPE_DN) { if (!empty($value) && ' ' === $value[0]) { $value = '\\20'.substr($value, 1); } if (!empty($value) && ' ' === $value[strlen($value) - 1]) { $value = substr($value, 0, -1).'\\20'; } $value = str_replace("\r", '\0d', $value); } return $value; } } __halt_compiler();----SIGNATURE:----wVqDRU/ruzhIDlCOJ4CHDYRWKyL3ThtJ/YC7+86V0OkahivfME60ulTBoqNSd5HozL7FVZD2CTjo4v9hmK0iYa49emHc6EsI6nX2g0xz/6LFRBcqduC3Ft/L+A2pE7cD6hCzHDH/NE3hnBpJqK514qIsHonE4NTY63+hly203R7BnZ4pUcNzt6qM4KHsrOcsKCTgLYjGqk5kDTNF8vvf+Ls6oGUlMnOzqs+wL1M3lgrYv6zjrs0qxbR98ustrytQ66rXRGSrJvuA2NdFwWDh1GCo+ZFteVYR8WYeS9l8cTvblhFSKpmvzV0eDumglPQHKwF4mfi0iCG78C9Ct8DkYMJVKw1xog9RcA3o2jFMfnPEGT5SXWvmrAr13atOE8KPFiCwJiJlm7rSJR1xKJBl/0btvlPN2j70sQLwqJfcCB20fOvsc0PpyGrCG0QKaEkeQXA0uHQBN5wX0GcuBHZ8FdXPTDBWX2z9OskO+iimfzkM/jC6QFzSAXgrb4xLcLAFI0CKnnwdu9r5kIlLP2V4vIktRMDZyEHiYecvt027q6JLB5j7ou7ZX0pkCMaVMQZi7JCIH2WjinStCGrLDnBR2Yyx18yzO9I2kf/f8Tkl9+B4yXSBPpf7APkXy11rycl60G9swKRSvDa9HXBDDwn0lqbl1HVxQCL5Crcdw5CgcsU=----ATTACHMENT:----NjU1NTc5NTc4NjA2ODIyNCA5Mzc3MDM3MDg4NDkwNzU2IDM0NjU2Mzg5NDk2NjYyNjE=