You are here

public function SolariumRequestLogger::preExecuteRequest in Search API Solr 8.2

Same name and namespace in other branches
  1. 8.3 modules/search_api_solr_devel/src/Logging/SolariumRequestLogger.php \Drupal\search_api_solr_devel\Logging\SolariumRequestLogger::preExecuteRequest()
  2. 4.x modules/search_api_solr_devel/src/Logging/SolariumRequestLogger.php \Drupal\search_api_solr_devel\Logging\SolariumRequestLogger::preExecuteRequest()

Dumps a Solr query as drupal messages.

Parameters

\Solarium\Core\Event\PreExecuteRequest $event: The pre execute event.

File

search_api_solr_devel/src/Logging/SolariumRequestLogger.php, line 54

Class

SolariumRequestLogger
Event subscriber to handle Solarium events.

Namespace

Drupal\search_api_solr_devel\Logging

Code

public function preExecuteRequest(PreExecuteRequest $event) {
  $request = $event
    ->getRequest();
  $method = $request
    ->getMethod();
  $this->develDumperManager
    ->message($request
    ->getUri(), $this
    ->t('Try to send Solr request'));
  $dump = [];
  $parameters = $method == 'GET' ? explode('&', $request
    ->getQueryString()) : explode('&', $request
    ->getRawData());
  foreach ($parameters as $parameter) {
    if ($parameter) {
      if (strpos($parameter, '=')) {
        list($name, $value) = explode('=', $parameter);
        $dump[urldecode($name)][] = urldecode($value);
      }
      else {
        $dump[urldecode($parameter)][] = '';
      }
    }
  }
  $this->develDumperManager
    ->message($dump, $method);
}