minor #32253 [Ldap] [5.0] add type-hint to interface and implementation (Simperfit)
This PR was merged into the 5.0-dev branch.
Discussion
----------
[Ldap] [5.0] add type-hint to interface and implementation
| Q | A
| ------------- | ---
| Branch? | 5.0
| Bug fix? | no
| New feature? | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks? | no <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass? | yes <!-- please add some, will be required by reviewers -->
| Fixed tickets | Contribute to #32179 <!-- #-prefixed issue number(s), if any -->
| License | MIT
| Doc PR | <!-- required for new features -->
<!--
Replace this notice by a short README for your feature/bugfix. This will help people
understand your PR and can be used as a start for the documentation.
Additionally (see https://symfony.com/roadmap):
- Bug fixes must be submitted against the lowest maintained branch where they apply
(lowest branches are regularly merged to upper ones so they get the fixes too).
- Features and deprecations must be submitted against branch 4.4.
- Legacy code removals go to the master branch.
-->
This adds the type-hint to the Ldap interfaces and implementation
Commits
-------
03f2e90b70
[Ldap] [5.0] add type-hint to interface and implementation
This commit is contained in:
commit
a6677ca2b6
|
@ -26,13 +26,9 @@ interface AdapterInterface
|
||||||
/**
|
/**
|
||||||
* Creates a new Query.
|
* Creates a new Query.
|
||||||
*
|
*
|
||||||
* @param string $dn
|
|
||||||
* @param string $query
|
|
||||||
* @param array $options
|
|
||||||
*
|
|
||||||
* @return QueryInterface
|
* @return QueryInterface
|
||||||
*/
|
*/
|
||||||
public function createQuery($dn, $query, array $options = []);
|
public function createQuery(string $dn, string $query, array $options = []);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fetches the entry manager instance.
|
* Fetches the entry manager instance.
|
||||||
|
@ -44,11 +40,7 @@ interface AdapterInterface
|
||||||
/**
|
/**
|
||||||
* Escape a string for use in an LDAP filter or DN.
|
* Escape a string for use in an LDAP filter or DN.
|
||||||
*
|
*
|
||||||
* @param string $subject
|
|
||||||
* @param string $ignore
|
|
||||||
* @param int $flags
|
|
||||||
*
|
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function escape($subject, $ignore = '', $flags = 0);
|
public function escape(string $subject, string $ignore = '', int $flags = 0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,10 +24,7 @@ interface ConnectionInterface
|
||||||
public function isBound();
|
public function isBound();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Binds the connection against a DN and password.
|
* Binds the connection against a user's DN and password.
|
||||||
*
|
|
||||||
* @param string $dn The user's DN
|
|
||||||
* @param string $password The associated password
|
|
||||||
*/
|
*/
|
||||||
public function bind($dn = null, $password = null);
|
public function bind(string $dn = null, string $password = null);
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,7 +59,7 @@ class Adapter implements AdapterInterface
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function createQuery($dn, $query, array $options = [])
|
public function createQuery(string $dn, string $query, array $options = [])
|
||||||
{
|
{
|
||||||
return new Query($this->getConnection(), $dn, $query, $options);
|
return new Query($this->getConnection(), $dn, $query, $options);
|
||||||
}
|
}
|
||||||
|
@ -67,7 +67,7 @@ class Adapter implements AdapterInterface
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function escape($subject, $ignore = '', $flags = 0)
|
public function escape(string $subject, string $ignore = '', int $flags = 0)
|
||||||
{
|
{
|
||||||
$value = ldap_escape($subject, $ignore, $flags);
|
$value = ldap_escape($subject, $ignore, $flags);
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,7 @@ class Connection extends AbstractConnection
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function bind($dn = null, $password = null)
|
public function bind(string $dn = null, string $password = null)
|
||||||
{
|
{
|
||||||
if (!$this->connection) {
|
if (!$this->connection) {
|
||||||
$this->connect();
|
$this->connect();
|
||||||
|
@ -85,14 +85,14 @@ class Connection extends AbstractConnection
|
||||||
return $this->connection;
|
return $this->connection;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setOption($name, $value)
|
public function setOption(string $name, $value)
|
||||||
{
|
{
|
||||||
if (!@ldap_set_option($this->connection, ConnectionOptions::getOption($name), $value)) {
|
if (!@ldap_set_option($this->connection, ConnectionOptions::getOption($name), $value)) {
|
||||||
throw new LdapException(sprintf('Could not set value "%s" for option "%s".', $value, $name));
|
throw new LdapException(sprintf('Could not set value "%s" for option "%s".', $value, $name));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getOption($name)
|
public function getOption(string $name)
|
||||||
{
|
{
|
||||||
if (!@ldap_get_option($this->connection, ConnectionOptions::getOption($name), $ret)) {
|
if (!@ldap_get_option($this->connection, ConnectionOptions::getOption($name), $ret)) {
|
||||||
throw new LdapException(sprintf('Could not retrieve value for option "%s".', $name));
|
throw new LdapException(sprintf('Could not retrieve value for option "%s".', $name));
|
||||||
|
|
|
@ -45,7 +45,7 @@ final class ConnectionOptions
|
||||||
const X_SASL_AUTHCID = 0x6102;
|
const X_SASL_AUTHCID = 0x6102;
|
||||||
const X_SASL_AUTHZID = 0x6103;
|
const X_SASL_AUTHZID = 0x6103;
|
||||||
|
|
||||||
public static function getOptionName($name): string
|
public static function getOptionName(string $name): string
|
||||||
{
|
{
|
||||||
return sprintf('%s::%s', self::class, strtoupper($name));
|
return sprintf('%s::%s', self::class, strtoupper($name));
|
||||||
}
|
}
|
||||||
|
@ -58,7 +58,7 @@ final class ConnectionOptions
|
||||||
*
|
*
|
||||||
* @throws LdapException
|
* @throws LdapException
|
||||||
*/
|
*/
|
||||||
public static function getOption($name): int
|
public static function getOption(string $name): int
|
||||||
{
|
{
|
||||||
// Convert
|
// Convert
|
||||||
$constantName = self::getOptionName($name);
|
$constantName = self::getOptionName($name);
|
||||||
|
@ -70,7 +70,7 @@ final class ConnectionOptions
|
||||||
return \constant($constantName);
|
return \constant($constantName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function isOption($name): bool
|
public static function isOption(string $name): bool
|
||||||
{
|
{
|
||||||
return \defined(self::getOptionName($name));
|
return \defined(self::getOptionName($name));
|
||||||
}
|
}
|
||||||
|
|
|
@ -101,7 +101,7 @@ class EntryManager implements EntryManagerInterface
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function rename(Entry $entry, $newRdn, $removeOldRdn = true)
|
public function rename(Entry $entry, string $newRdn, bool $removeOldRdn = true)
|
||||||
{
|
{
|
||||||
$con = $this->getConnectionResource();
|
$con = $this->getConnectionResource();
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ class Entry
|
||||||
*
|
*
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function hasAttribute($name)
|
public function hasAttribute(string $name)
|
||||||
{
|
{
|
||||||
return isset($this->attributes[$name]);
|
return isset($this->attributes[$name]);
|
||||||
}
|
}
|
||||||
|
@ -57,7 +57,7 @@ class Entry
|
||||||
*
|
*
|
||||||
* @return array|null
|
* @return array|null
|
||||||
*/
|
*/
|
||||||
public function getAttribute($name)
|
public function getAttribute(string $name)
|
||||||
{
|
{
|
||||||
return isset($this->attributes[$name]) ? $this->attributes[$name] : null;
|
return isset($this->attributes[$name]) ? $this->attributes[$name] : null;
|
||||||
}
|
}
|
||||||
|
@ -78,7 +78,7 @@ class Entry
|
||||||
* @param string $name
|
* @param string $name
|
||||||
* @param array $value
|
* @param array $value
|
||||||
*/
|
*/
|
||||||
public function setAttribute($name, array $value)
|
public function setAttribute(string $name, array $value)
|
||||||
{
|
{
|
||||||
$this->attributes[$name] = $value;
|
$this->attributes[$name] = $value;
|
||||||
}
|
}
|
||||||
|
@ -88,7 +88,7 @@ class Entry
|
||||||
*
|
*
|
||||||
* @param string $name
|
* @param string $name
|
||||||
*/
|
*/
|
||||||
public function removeAttribute($name)
|
public function removeAttribute(string $name)
|
||||||
{
|
{
|
||||||
unset($this->attributes[$name]);
|
unset($this->attributes[$name]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,7 +35,7 @@ final class Ldap implements LdapInterface
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function bind($dn = null, $password = null)
|
public function bind(string $dn = null, string $password = null)
|
||||||
{
|
{
|
||||||
$this->adapter->getConnection()->bind($dn, $password);
|
$this->adapter->getConnection()->bind($dn, $password);
|
||||||
}
|
}
|
||||||
|
@ -43,7 +43,7 @@ final class Ldap implements LdapInterface
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function query($dn, $query, array $options = []): ?QueryInterface
|
public function query(string $dn, string $query, array $options = []): ?QueryInterface
|
||||||
{
|
{
|
||||||
return $this->adapter->createQuery($dn, $query, $options);
|
return $this->adapter->createQuery($dn, $query, $options);
|
||||||
}
|
}
|
||||||
|
@ -59,7 +59,7 @@ final class Ldap implements LdapInterface
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function escape($subject, $ignore = '', $flags = 0): ?string
|
public function escape(string $subject, string $ignore = '', int $flags = 0): ?string
|
||||||
{
|
{
|
||||||
return $this->adapter->escape($subject, $ignore, $flags);
|
return $this->adapter->escape($subject, $ignore, $flags);
|
||||||
}
|
}
|
||||||
|
@ -72,7 +72,7 @@ final class Ldap implements LdapInterface
|
||||||
*
|
*
|
||||||
* @return static
|
* @return static
|
||||||
*/
|
*/
|
||||||
public static function create($adapter, array $config = []): self
|
public static function create(string $adapter, array $config = []): self
|
||||||
{
|
{
|
||||||
if (!isset(self::$adapterMap[$adapter])) {
|
if (!isset(self::$adapterMap[$adapter])) {
|
||||||
throw new DriverNotFoundException(sprintf(
|
throw new DriverNotFoundException(sprintf(
|
||||||
|
|
|
@ -28,23 +28,16 @@ interface LdapInterface
|
||||||
/**
|
/**
|
||||||
* Return a connection bound to the ldap.
|
* Return a connection bound to the ldap.
|
||||||
*
|
*
|
||||||
* @param string $dn A LDAP dn
|
|
||||||
* @param string $password A password
|
|
||||||
*
|
|
||||||
* @throws ConnectionException if dn / password could not be bound
|
* @throws ConnectionException if dn / password could not be bound
|
||||||
*/
|
*/
|
||||||
public function bind($dn = null, $password = null);
|
public function bind(string $dn = null, string $password = null);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Queries a ldap server for entries matching the given criteria.
|
* Queries a ldap server for entries matching the given criteria.
|
||||||
*
|
*
|
||||||
* @param string $dn
|
|
||||||
* @param string $query
|
|
||||||
* @param array $options
|
|
||||||
*
|
|
||||||
* @return QueryInterface
|
* @return QueryInterface
|
||||||
*/
|
*/
|
||||||
public function query($dn, $query, array $options = []);
|
public function query(string $dn, string $query, array $options = []);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return EntryManagerInterface
|
* @return EntryManagerInterface
|
||||||
|
@ -54,11 +47,7 @@ interface LdapInterface
|
||||||
/**
|
/**
|
||||||
* Escape a string for use in an LDAP filter or DN.
|
* Escape a string for use in an LDAP filter or DN.
|
||||||
*
|
*
|
||||||
* @param string $subject
|
|
||||||
* @param string $ignore
|
|
||||||
* @param int $flags
|
|
||||||
*
|
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function escape($subject, $ignore = '', $flags = 0);
|
public function escape(string $subject, string $ignore = '', int $flags = 0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,7 +34,7 @@ class AdapterTest extends LdapTestCase
|
||||||
{
|
{
|
||||||
$ldap = new Adapter();
|
$ldap = new Adapter();
|
||||||
|
|
||||||
$this->assertEquals('\20foo\3dbar\0d(baz)*\20', $ldap->escape(" foo=bar\r(baz)* ", null, LdapInterface::ESCAPE_DN));
|
$this->assertEquals('\20foo\3dbar\0d(baz)*\20', $ldap->escape(" foo=bar\r(baz)* ", '', LdapInterface::ESCAPE_DN));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -52,9 +52,9 @@ class LdapTest extends TestCase
|
||||||
$this->adapter
|
$this->adapter
|
||||||
->expects($this->once())
|
->expects($this->once())
|
||||||
->method('escape')
|
->method('escape')
|
||||||
->with('foo', 'bar', 'baz')
|
->with('foo', 'bar', 0)
|
||||||
;
|
;
|
||||||
$this->ldap->escape('foo', 'bar', 'baz');
|
$this->ldap->escape('foo', 'bar', 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testLdapQuery()
|
public function testLdapQuery()
|
||||||
|
|
Reference in New Issue