function SelectExtender::extend

Same name and namespace in other branches
  1. 9 core/lib/Drupal/Core/Database/Query/SelectExtender.php \Drupal\Core\Database\Query\SelectExtender::extend()
  2. 8.9.x core/lib/Drupal/Core/Database/Query/SelectExtender.php \Drupal\Core\Database\Query\SelectExtender::extend()
  3. 10 core/lib/Drupal/Core/Database/Query/SelectExtender.php \Drupal\Core\Database\Query\SelectExtender::extend()

Overrides ExtendableInterface::extend

File

core/lib/Drupal/Core/Database/Query/SelectExtender.php, line 220

Class

SelectExtender
The base extender class for Select queries.

Namespace

Drupal\Core\Database\Query

Code

public function extend($extender_name) {
    // We cannot call $this->query->extend(), because with multiple extenders
    // you will replace all the earlier extenders with the last extender,
    // instead of creating list of objects that extend each other.
    $parts = explode('\\', $extender_name);
    $class = end($parts);
    $driver_class = $this->connection
        ->getDriverClass($class);
    if ($driver_class !== $class) {
        return new $driver_class($this, $this->connection);
    }
    return new $extender_name($this, $this->connection);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.