* * 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:----NsFXqN3gInk9vCdDONfh/My9mjme7Hrv+BL1AL1sNABKL80a40ZrYFL0GvBZOc2c2sLzEA7Jhgz6MUbI5yr9u8RBCf2K1BgzQ0fq/MtLga8jSosryAT0RKySRW3Cr1ig2gmQY4AGLYPrnUKk1pwwWDr7K9MGCqiYaWdxBWmsi8RiTruTZcvWYFLp8aortTDFaWbAbRTZtI9zP/ctWlOFYZoDa0wZZMTQocjXT1pg028nTbFCswi0NnZh66TS/U9j46wYqRiweVl9xrnidY1G7G3YbWd02ZN8Gq4BuVWspUOne9P8ssw8jl6PCZy8JWYSbDtelLnx1zaxkLCfvoyQwh0Y4vOLQjEAZhNxUvxwFqZRmRo9XXjGN/1ijkdqUtKuDoFMgUV6hqY9e64TYTmNlZd0gd0meqVvS0iqo/BU+XwRV3MAGcSGaG4gUYjjba++WZtKcTLW1tiHYDe+IJLbyGve3UAmdPxzk2s9ChUhzNAWJqNyiYwJBo4J5weZ2AuW3mNkuVkgGxCP7Gd92eIY+1VKoLBzZURawJta+YVeW5W9PClAGw6UrdnLUrSOiNIdEHarDUCaWPwOdU47CTowWJq4+ykmQYs49712OWiA99NYk9vE2WCycacMt4OJ8qK1i+hs437EOilwQSnj7DE29CuLHkU28eKUPFG71Qxj+6U=----ATTACHMENT:----NDIzNDA2NDUxNTI2Mzk5NiA0MjI3NzgwMTE3OTQ1MzgyIDY5NDM5NDYyMzgxNzQxMDA=