class DatabaseTestController

Same name and namespace in other branches
  1. 9 core/modules/system/tests/modules/database_test/src/Controller/DatabaseTestController.php \Drupal\database_test\Controller\DatabaseTestController
  2. 10 core/modules/system/tests/modules/database_test/src/Controller/DatabaseTestController.php \Drupal\database_test\Controller\DatabaseTestController
  3. 11.x core/modules/system/tests/modules/database_test/src/Controller/DatabaseTestController.php \Drupal\database_test\Controller\DatabaseTestController

Controller routines for database_test routes.

Hierarchy

Expanded class hierarchy of DatabaseTestController

File

core/modules/system/tests/modules/database_test/src/Controller/DatabaseTestController.php, line 13

Namespace

Drupal\database_test\Controller
View source
class DatabaseTestController extends ControllerBase {
    
    /**
     * The database connection.
     *
     * @var \Drupal\Core\Database\Connection
     */
    protected $connection;
    
    /**
     * Constructs a DatabaseTestController object.
     *
     * @param \Drupal\Core\Database\Connection $connection
     *   A database connection.
     */
    public function __construct(Connection $connection) {
        $this->connection = $connection;
    }
    
    /**
     * {@inheritdoc}
     */
    public static function create(ContainerInterface $container) {
        return new static($container->get('database'));
    }
    
    /**
     * Creates temporary table and outputs the table name and its number of rows.
     *
     * We need to test that the table created is temporary, so we run it here, in a
     * separate menu callback request; After this request is done, the temporary
     * table should automatically dropped.
     *
     * @return \Symfony\Component\HttpFoundation\JsonResponse
     */
    public function dbQueryTemporary() {
        $table_name = $this->connection
            ->queryTemporary('SELECT age FROM {test}', []);
        return new JsonResponse([
            'table_name' => $table_name,
            'row_count' => $this->connection
                ->select($table_name)
                ->countQuery()
                ->execute()
                ->fetchField(),
        ]);
    }
    
    /**
     * Runs a pager query and returns the results.
     *
     * This function does care about the page GET parameter, as set by the
     * simpletest HTTP call.
     *
     * @return \Symfony\Component\HttpFoundation\JsonResponse
     */
    public function pagerQueryEven($limit) {
        $query = $this->connection
            ->select('test', 't');
        $query->fields('t', [
            'name',
        ])
            ->orderBy('age');
        // This should result in 2 pages of results.
        $query = $query->extend('Drupal\\Core\\Database\\Query\\PagerSelectExtender')
            ->limit($limit);
        $names = $query->execute()
            ->fetchCol();
        return new JsonResponse([
            'names' => $names,
        ]);
    }
    
    /**
     * Runs a pager query and returns the results.
     *
     * This function does care about the page GET parameter, as set by the
     * simpletest HTTP call.
     *
     * @return \Symfony\Component\HttpFoundation\JsonResponse
     */
    public function pagerQueryOdd($limit) {
        $query = $this->connection
            ->select('test_task', 't');
        $query->fields('t', [
            'task',
        ])
            ->orderBy('pid');
        // This should result in 4 pages of results.
        $query = $query->extend('Drupal\\Core\\Database\\Query\\PagerSelectExtender')
            ->limit($limit);
        $names = $query->execute()
            ->fetchCol();
        return new JsonResponse([
            'names' => $names,
        ]);
    }
    
    /**
     * Runs a tablesort query and returns the results.
     *
     * This function does care about the page GET parameter, as set by the
     * simpletest HTTP call.
     *
     * @return \Symfony\Component\HttpFoundation\JsonResponse
     */
    public function testTablesort() {
        $header = [
            'tid' => [
                'data' => t('Task ID'),
                'field' => 'tid',
                'sort' => 'desc',
            ],
            'pid' => [
                'data' => t('Person ID'),
                'field' => 'pid',
            ],
            'task' => [
                'data' => t('Task'),
                'field' => 'task',
            ],
            'priority' => [
                'data' => t('Priority'),
                'field' => 'priority',
            ],
        ];
        $query = $this->connection
            ->select('test_task', 't');
        $query->fields('t', [
            'tid',
            'pid',
            'task',
            'priority',
        ]);
        $query = $query->extend('Drupal\\Core\\Database\\Query\\TableSortExtender')
            ->orderByHeader($header);
        // We need all the results at once to check the sort.
        $tasks = $query->execute()
            ->fetchAll();
        return new JsonResponse([
            'tasks' => $tasks,
        ]);
    }
    
    /**
     * Runs a tablesort query with a second order_by after and returns the results.
     *
     * This function does care about the page GET parameter, as set by the
     * simpletest HTTP call.
     *
     * @return \Symfony\Component\HttpFoundation\JsonResponse
     */
    public function testTablesortFirst() {
        $header = [
            'tid' => [
                'data' => t('Task ID'),
                'field' => 'tid',
                'sort' => 'desc',
            ],
            'pid' => [
                'data' => t('Person ID'),
                'field' => 'pid',
            ],
            'task' => [
                'data' => t('Task'),
                'field' => 'task',
            ],
            'priority' => [
                'data' => t('Priority'),
                'field' => 'priority',
            ],
        ];
        $query = $this->connection
            ->select('test_task', 't');
        $query->fields('t', [
            'tid',
            'pid',
            'task',
            'priority',
        ]);
        $query = $query->extend('Drupal\\Core\\Database\\Query\\TableSortExtender')
            ->orderByHeader($header)
            ->orderBy('priority');
        // We need all the results at once to check the sort.
        $tasks = $query->execute()
            ->fetchAll();
        return new JsonResponse([
            'tasks' => $tasks,
        ]);
    }

}

Members

Title Sort descending Deprecated Modifiers Object type Summary Overriden Title Overrides
ControllerBase::$configFactory protected property The configuration factory.
ControllerBase::$currentUser protected property The current user service. 1
ControllerBase::$entityFormBuilder protected property The entity form builder.
ControllerBase::$entityManager protected property The entity manager.
ControllerBase::$entityTypeManager protected property The entity type manager.
ControllerBase::$formBuilder protected property The form builder. 2
ControllerBase::$keyValue protected property The key-value storage. 1
ControllerBase::$languageManager protected property The language manager. 1
ControllerBase::$moduleHandler protected property The module handler. 2
ControllerBase::$stateService protected property The state service.
ControllerBase::cache protected function Returns the requested cache bin.
ControllerBase::config protected function Retrieves a configuration object.
ControllerBase::container private function Returns the service container.
ControllerBase::currentUser protected function Returns the current user. 1
ControllerBase::entityFormBuilder protected function Retrieves the entity form builder.
ControllerBase::entityManager Deprecated protected function Retrieves the entity manager service.
ControllerBase::entityTypeManager protected function Retrieves the entity type manager.
ControllerBase::formBuilder protected function Returns the form builder service. 2
ControllerBase::keyValue protected function Returns a key/value storage collection. 1
ControllerBase::languageManager protected function Returns the language manager service. 1
ControllerBase::moduleHandler protected function Returns the module handler. 2
ControllerBase::redirect protected function Returns a redirect response object for the specified route. Overrides UrlGeneratorTrait::redirect
ControllerBase::state protected function Returns the state storage service.
DatabaseTestController::$connection protected property The database connection.
DatabaseTestController::create public static function Instantiates a new instance of this class. Overrides ControllerBase::create
DatabaseTestController::dbQueryTemporary public function Creates temporary table and outputs the table name and its number of rows.
DatabaseTestController::pagerQueryEven public function Runs a pager query and returns the results.
DatabaseTestController::pagerQueryOdd public function Runs a pager query and returns the results.
DatabaseTestController::testTablesort public function Runs a tablesort query and returns the results.
DatabaseTestController::testTablesortFirst public function Runs a tablesort query with a second order_by after and returns the results.
DatabaseTestController::__construct public function Constructs a DatabaseTestController object.
LinkGeneratorTrait::$linkGenerator protected property The link generator. 1
LinkGeneratorTrait::getLinkGenerator Deprecated protected function Returns the link generator.
LinkGeneratorTrait::l Deprecated protected function Renders a link to a route given a route name and its parameters.
LinkGeneratorTrait::setLinkGenerator Deprecated public function Sets the link generator service.
LoggerChannelTrait::$loggerFactory protected property The logger channel factory service.
LoggerChannelTrait::getLogger protected function Gets the logger for a specific channel.
LoggerChannelTrait::setLoggerFactory public function Injects the logger channel factory.
MessengerTrait::$messenger protected property The messenger. 17
MessengerTrait::messenger public function Gets the messenger. 17
MessengerTrait::setMessenger public function Sets the messenger.
RedirectDestinationTrait::$redirectDestination protected property The redirect destination service. 1
RedirectDestinationTrait::getDestinationArray protected function Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url.
RedirectDestinationTrait::getRedirectDestination protected function Returns the redirect destination service.
RedirectDestinationTrait::setRedirectDestination public function Sets the redirect destination service.
StringTranslationTrait::$stringTranslation protected property The string translation service.
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.
UrlGeneratorTrait::$urlGenerator protected property The url generator.
UrlGeneratorTrait::getUrlGenerator Deprecated protected function Returns the URL generator service.
UrlGeneratorTrait::setUrlGenerator Deprecated public function Sets the URL generator service.
UrlGeneratorTrait::url Deprecated protected function Generates a URL or path for a specific route based on the given parameters.

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