function Select::extend

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

Enhance this object by wrapping it in an extender object.

Parameters

$extender_name: The fully-qualified name of the extender class, without the leading '\' (for example, Drupal\my_module\myExtenderClass). The extender name will be checked against the current database connection to allow driver-specific subclasses as well, using the same logic as the query objects themselves.

Return value

\Drupal\Core\Database\Query\ExtendableInterface The extender object, which now contains a reference to this object.

Overrides ExtendableInterface::extend

File

core/lib/Drupal/Core/Database/Query/Select.php, line 320

Class

Select
Query builder for SELECT statements.

Namespace

Drupal\Core\Database\Query

Code

public function extend($extender_name) {
    $override_class = $extender_name . '_' . $this->connection
        ->driver();
    if (class_exists($override_class)) {
        $extender_name = $override_class;
    }
    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.