class QueryTest in Drupal 9
Same name in this branch
- 9 core/tests/Drupal/KernelTests/Core/Database/QueryTest.php \Drupal\KernelTests\Core\Database\QueryTest
- 9 core/modules/views_ui/tests/src/Functional/QueryTest.php \Drupal\Tests\views_ui\Functional\QueryTest
- 9 core/modules/views/tests/src/Kernel/Plugin/QueryTest.php \Drupal\Tests\views\Kernel\Plugin\QueryTest
- 9 core/tests/Drupal/Tests/Core/Entity/Query/Sql/QueryTest.php \Drupal\Tests\Core\Entity\Query\Sql\QueryTest
- 9 core/modules/views/tests/modules/views_test_data/src/Plugin/views/query/QueryTest.php \Drupal\views_test_data\Plugin\views\query\QueryTest
Same name and namespace in other branches
- 8 core/modules/views/tests/modules/views_test_data/src/Plugin/views/query/QueryTest.php \Drupal\views_test_data\Plugin\views\query\QueryTest
Defines a query test plugin.
Plugin annotation
@ViewsQuery(
  id = "query_test",
  title = @Translation("Query test"),
  help = @Translation("Defines a query test plugin.")
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait- class \Drupal\views\Plugin\views\PluginBase implements DependentPluginInterface, ContainerFactoryPluginInterface, TrustedCallbackInterface, ViewsPluginInterface- class \Drupal\views\Plugin\views\query\QueryPluginBase implements CacheableDependencyInterface- class \Drupal\views_test_data\Plugin\views\query\QueryTest
 
 
- class \Drupal\views\Plugin\views\query\QueryPluginBase implements CacheableDependencyInterface
 
- class \Drupal\views\Plugin\views\PluginBase implements DependentPluginInterface, ContainerFactoryPluginInterface, TrustedCallbackInterface, ViewsPluginInterface
 
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of QueryTest
1 file declares its use of QueryTest
- QueryTest.php in core/modules/ views/ tests/ src/ Kernel/ Plugin/ QueryTest.php 
1 string reference to 'QueryTest'
- QueryTest::calculateDependencies in core/modules/ views/ tests/ modules/ views_test_data/ src/ Plugin/ views/ query/ QueryTest.php 
- Calculates dependencies for the configured plugin.
File
- core/modules/ views/ tests/ modules/ views_test_data/ src/ Plugin/ views/ query/ QueryTest.php, line 20 
Namespace
Drupal\views_test_data\Plugin\views\queryView source
class QueryTest extends QueryPluginBase {
  protected $conditions = [];
  protected $fields = [];
  protected $allItems = [];
  protected $orderBy = [];
  /**
   * {@inheritdoc}
   */
  protected function defineOptions() {
    $options = parent::defineOptions();
    $options['test_setting'] = [
      'default' => '',
    ];
    return $options;
  }
  /**
   * {@inheritdoc}
   */
  public function buildOptionsForm(&$form, FormStateInterface $form_state) {
    parent::buildOptionsForm($form, $form_state);
    $form['test_setting'] = [
      '#title' => $this
        ->t('Test setting'),
      '#type' => 'textfield',
      '#default_value' => $this->options['test_setting'],
    ];
  }
  /**
   * Sets the allItems property.
   *
   * @param array $allItems
   *   An array of stdClasses.
   */
  public function setAllItems($allItems) {
    $this->allItems = $allItems;
  }
  public function addWhere($group, $field, $value = NULL, $operator = NULL) {
    $this->conditions[] = [
      'field' => $field,
      'value' => $value,
      'operator' => $operator,
    ];
  }
  public function addField($table, $field, $alias = '', $params = []) {
    $this->fields[$field] = $field;
    return $field;
  }
  public function addOrderBy($table, $field = NULL, $order = 'ASC', $alias = '', $params = []) {
    $this->orderBy = [
      'field' => $field,
      'order' => $order,
    ];
  }
  public function ensureTable($table, $relationship = NULL, JoinPluginBase $join = NULL) {
    // There is no concept of joins.
  }
  /**
   * Implements Drupal\views\Plugin\views\query\QueryPluginBase::build().
   *
   * @param \Drupal\views\ViewExecutable $view
   */
  public function build(ViewExecutable $view) {
    $this->view = $view;
    // @todo Support pagers for know, a php based one would probably match.
    // @todo You could add a string representation of the query.
    $this->view->build_info['query'] = "";
    $this->view->build_info['count_query'] = "";
  }
  /**
   * {@inheritdoc}
   */
  public function execute(ViewExecutable $view) {
    $result = [];
    foreach ($this->allItems as $element) {
      // Run all conditions on the element, and add it to the result if they
      // match.
      $match = TRUE;
      foreach ($this->conditions as $condition) {
        $match &= $this
          ->match($element, $condition);
      }
      if ($match) {
        // If the query explicit defines fields to use, filter all others out.
        // Filter out fields
        if ($this->fields) {
          $element = array_intersect_key($element, $this->fields);
        }
        $result[] = new ResultRow($element);
      }
    }
    $this->view->result = $result;
  }
  /**
   * Check a single condition for a single element.
   *
   * @param array $element
   *   The element which should be checked.
   * @param array $condition
   *   An associative array containing:
   *   - field: The field to by, for example id.
   *   - value: The expected value of the element.
   *   - operator: The operator to compare the element value with the expected
   *     value.
   *
   * @return bool
   *   Returns whether the condition matches with the element.
   */
  public function match($element, $condition) {
    $value = $element[$condition['field']];
    switch ($condition['operator']) {
      case '=':
        return $value == $condition['value'];
      case 'IN':
        return in_array($value, $condition['value']);
    }
    return FALSE;
  }
  /**
   * {@inheritdoc}
   */
  public function calculateDependencies() {
    return parent::calculateDependencies() + [
      'content' => [
        'QueryTest',
      ],
    ];
  }
  /**
   * {@inheritdoc}
   */
  public function setFieldTimezoneOffset(&$field, $offset) {
  }
}Members
| Name   | Modifiers | Type | Description | Overrides | 
|---|---|---|---|---|
| DependencySerializationTrait:: | protected | property | ||
| DependencySerializationTrait:: | protected | property | ||
| DependencySerializationTrait:: | public | function | 2 | |
| DependencySerializationTrait:: | public | function | 2 | |
| MessengerTrait:: | protected | property | The messenger. | 27 | 
| MessengerTrait:: | public | function | Gets the messenger. | 27 | 
| MessengerTrait:: | public | function | Sets the messenger. | |
| PluginBase:: | protected | property | Configuration information passed into the plugin. | 1 | 
| PluginBase:: | public | property | Plugins's definition. | |
| PluginBase:: | public | property | The display object this plugin is for. | |
| PluginBase:: | public | property | Options for this plugin will be held here. | |
| PluginBase:: | protected | property | The plugin implementation definition. | 1 | 
| PluginBase:: | protected | property | The plugin_id. | |
| PluginBase:: | protected | property | Stores the render API renderer. | 3 | 
| PluginBase:: | protected | property | Denotes whether the plugin has an additional options form. | 8 | 
| PluginBase:: | public | property | The top object of a view. | 1 | 
| PluginBase:: | public static | function | Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface:: | 63 | 
| PluginBase:: | constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
| PluginBase:: | public | function | Clears a plugin. Overrides ViewsPluginInterface:: | 2 | 
| PluginBase:: | protected | function | Do the work to filter out stored options depending on the defined options. | |
| PluginBase:: | public | function | Filter out stored options depending on the defined options. Overrides ViewsPluginInterface:: | |
| PluginBase:: | public | function | Returns an array of available token replacements. Overrides ViewsPluginInterface:: | |
| PluginBase:: | public | function | Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: | |
| PluginBase:: | public | function | Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: | |
| PluginBase:: | public | function | Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: | 2 | 
| PluginBase:: | public | function | Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: | |
| PluginBase:: | public | function | Returns the plugin provider. Overrides ViewsPluginInterface:: | |
| PluginBase:: | protected | function | Returns the render API renderer. | 1 | 
| PluginBase:: | public | function | Adds elements for available core tokens to a form. Overrides ViewsPluginInterface:: | |
| PluginBase:: | public | function | Returns a string with any core tokens replaced. Overrides ViewsPluginInterface:: | |
| PluginBase:: | constant | Include entity row languages when listing languages. | ||
| PluginBase:: | constant | Include negotiated languages when listing languages. | ||
| PluginBase:: | public | function | Initialize the plugin. Overrides ViewsPluginInterface:: | 6 | 
| PluginBase:: | public | function | Determines if the plugin is configurable. | |
| PluginBase:: | protected | function | Makes an array of languages, optionally including special languages. | |
| PluginBase:: | public | function | Return the human readable name of the display. Overrides ViewsPluginInterface:: | |
| PluginBase:: | public static | function | Moves form elements into fieldsets for presentation purposes. Overrides ViewsPluginInterface:: | |
| PluginBase:: | public static | function | Flattens the structure of form elements. Overrides ViewsPluginInterface:: | |
| PluginBase:: | public static | function | Returns substitutions for Views queries for languages. | |
| PluginBase:: | protected | function | Fills up the options of the plugin with defaults. | |
| PluginBase:: | public | function | Provide a full list of possible theme templates used by this style. Overrides ViewsPluginInterface:: | 1 | 
| PluginBase:: | public static | function | Lists the trusted callbacks provided by the implementing class. Overrides TrustedCallbackInterface:: | 6 | 
| PluginBase:: | public | function | Unpack options over our existing defaults, drilling down into arrays
so that defaults don't get totally blown away. Overrides ViewsPluginInterface:: | |
| PluginBase:: | public | function | Returns the usesOptions property. Overrides ViewsPluginInterface:: | 8 | 
| PluginBase:: | public | function | Validate that the plugin is correct and can be saved. Overrides ViewsPluginInterface:: | 6 | 
| PluginBase:: | protected | function | Replaces Views' tokens in a given string. The resulting string will be sanitized with Xss::filterAdmin. | 1 | 
| PluginBase:: | constant | Query string to indicate the site default language. | ||
| PluginBase:: | public | function | Constructs a PluginBase object. Overrides PluginBase:: | |
| QueryPluginBase:: | protected | property | Stores the limit of items that should be requested in the query. | |
| QueryPluginBase:: | public | property | A pager plugin that should be provided by the display. | |
| QueryPluginBase:: | public | function | Add a signature to the query, if such a thing is feasible. | 1 | 
| QueryPluginBase:: | public | function | Let modules modify the query just prior to finalizing it. | 1 | 
| QueryPluginBase:: | public | function | Get aggregation info for group by queries. | 1 | 
| QueryPluginBase:: | public | function | The cache contexts associated with this object. Overrides CacheableDependencyInterface:: | |
| QueryPluginBase:: | public | function | The maximum age for which this object may be cached. Overrides CacheableDependencyInterface:: | 1 | 
| QueryPluginBase:: | public | function | The cache tags associated with this object. Overrides CacheableDependencyInterface:: | 1 | 
| QueryPluginBase:: | public | function | Returns a Unix timestamp to database native timestamp expression. | 1 | 
| QueryPluginBase:: | public | function | Creates cross-database date formatting. | 1 | 
| QueryPluginBase:: | public | function | Returns an array of all tables from the query that map to an entity type. | |
| QueryPluginBase:: | public | function | Returns the limit of the query. | |
| QueryPluginBase:: | public | function | Get the timezone offset in seconds. | |
| QueryPluginBase:: | public | function | Loads all entities contained in the passed-in $results. | 1 | 
| QueryPluginBase:: | public | function | Generate a query and a countquery from all of the information supplied
to the object. Overrides PluginBase:: | 1 | 
| QueryPluginBase:: | public | function | Control how all WHERE and HAVING groups are put together. | |
| QueryPluginBase:: | public | function | Set a LIMIT on the query, specifying a maximum number of results. | |
| QueryPluginBase:: | public | function | Set an OFFSET on the query, specifying a number of results to skip. | |
| QueryPluginBase:: | public | function | Set the database to the current user timezone. | 1 | 
| QueryPluginBase:: | public | function | Create a new grouping for the WHERE or HAVING clause. | |
| QueryPluginBase:: | public | function | Handle any special handling on the validate form. Overrides PluginBase:: | 1 | 
| QueryPluginBase:: | public | function | Returns the summary of the settings in the display. Overrides PluginBase:: | |
| QueryPluginBase:: | public | function | Validate the options form. Overrides PluginBase:: | |
| QueryTest:: | protected | property | ||
| QueryTest:: | protected | property | ||
| QueryTest:: | protected | property | ||
| QueryTest:: | protected | property | ||
| QueryTest:: | public | function | ||
| QueryTest:: | public | function | ||
| QueryTest:: | public | function | ||
| QueryTest:: | public | function | Implements Drupal\views\Plugin\views\query\QueryPluginBase::build(). Overrides QueryPluginBase:: | |
| QueryTest:: | public | function | Provide a form to edit options for this plugin. Overrides PluginBase:: | |
| QueryTest:: | public | function | Calculates dependencies for the configured plugin. Overrides QueryPluginBase:: | |
| QueryTest:: | protected | function | Information about options for all kinds of purposes will be held here. Overrides PluginBase:: | |
| QueryTest:: | public | function | ||
| QueryTest:: | public | function | Executes the query and fills the associated view object with according
values. Overrides QueryPluginBase:: | |
| QueryTest:: | public | function | Check a single condition for a single element. | |
| QueryTest:: | public | function | Sets the allItems property. | |
| QueryTest:: | public | function | Applies a timezone offset to the given field. Overrides QueryPluginBase:: | |
| StringTranslationTrait:: | protected | property | The string translation service. | 4 | 
| StringTranslationTrait:: | protected | function | Formats a string containing a count of items. | |
| StringTranslationTrait:: | protected | function | Returns the number of plurals supported by a given language. | |
| StringTranslationTrait:: | protected | function | Gets the string translation service. | |
| StringTranslationTrait:: | public | function | Sets the string translation service to use. | 2 | 
| StringTranslationTrait:: | protected | function | Translates a string to the current language or to a given language. | |
| TrustedCallbackInterface:: | constant | Untrusted callbacks throw exceptions. | ||
| TrustedCallbackInterface:: | constant | Untrusted callbacks trigger silenced E_USER_DEPRECATION errors. | ||
| TrustedCallbackInterface:: | constant | Untrusted callbacks trigger E_USER_WARNING errors. | 
