public function SelectExtender::extend in Drupal 10
Same name and namespace in other branches
- 8 core/lib/Drupal/Core/Database/Query/SelectExtender.php \Drupal\Core\Database\Query\SelectExtender::extend()
- 9 core/lib/Drupal/Core/Database/Query/SelectExtender.php \Drupal\Core\Database\Query\SelectExtender::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/ SelectExtender.php, line 220
Class
- SelectExtender
- The base extender class for Select queries.
Namespace
Drupal\Core\Database\QueryCode
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);
}