1 select.inc | public SelectQueryExtender::extend($extender_name) |
Enhance this object by wrapping it in an extender object.
The core implementations of QueryExtendableInterface include:
- TableSort: Extend a query to sort based on query strings.
- PagerDefault: Extend a query to limit results based on query strings.
- SearchQuery: Extend a query to join on the search index tables.
Other implementations may be added by other modules, but for the sake of code validation, these core extenders are specified as possible return values of this interface.
Parameters
string $extender_name: The base name of the extending class. The base 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. For example, PagerDefault_mysql is the MySQL-specific override for PagerDefault.
Return value
QueryExtendableInterface|SelectQueryInterface|TableSort|PagerDefault|SearchQuery: The extender object, which now contains a reference to this object.
Overrides QueryExtendableInterface::extend
File
- core/
includes/ database/ select.inc, line 758 - Contains classes and interfaces for Select queries.
Class
- SelectQueryExtender
- The base extender class for Select queries.
Code
public function extend($extender_name) {
// The extender can be anywhere so this needs to go to the registry, which
// is surely loaded by now.
$class = $this->connection->getDriverClass($extender_name, array(), TRUE);
return new $class($this, $this->connection);
}