Alter a view at the very beginning of Views processing.
Output can be added to the view by setting $view->attachment_before and $view->attachment_after.
\Drupal\views\ViewExecutable $view: The view object about to be processed.
string $display_id: The machine name of the active display.
array $args: An array of arguments passed into the view.
Note: this list is generated by pattern matching, so it may include some functions that are not actually implementations of this hook.
function hook_views_pre_view(ViewExecutable &$view, &$display_id, array &$args) {
// Change the display if the acting user has 'administer site configuration'
// permission, to display something radically different.
// @todo Note that this is not necessarily the best way to solve that task.
// Add a better example.
if ($view->name == 'my_special_view' && user_access('administer site configuration') && $display_id == 'public_display') {
$display_id = 'private_display';
}
}