Вход Регистрация
Файл: vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Renderer/Listener.php
Строк: 130
<?php

namespace IlluminateFoundationExceptionsRenderer;

use 
IlluminateContractsEventsDispatcher;
use 
IlluminateDatabaseEventsQueryExecuted;
use 
IlluminateQueueEventsJobProcessed;
use 
IlluminateQueueEventsJobProcessing;
use 
LaravelOctaneEventsRequestReceived;
use 
LaravelOctaneEventsRequestTerminated;
use 
LaravelOctaneEventsTaskReceived;
use 
LaravelOctaneEventsTickReceived;

class 
Listener
{
    
/**
     * The queries that have been executed.
     *
     * @var array<int, array{connectionName: string, time: float, sql: string, bindings: array}>
     */
    
protected $queries = [];

    
/**
     * Register the appropriate listeners on the given event dispatcher.
     *
     * @param  IlluminateContractsEventsDispatcher  $events
     * @return void
     */
    
public function registerListeners(Dispatcher $events)
    {
        
$events->listen(QueryExecuted::class, $this->onQueryExecuted(...));

        
$events->listen([JobProcessing::class, JobProcessed::class], function () {
            
$this->queries = [];
        });

        if (isset(
$_SERVER['LARAVEL_OCTANE'])) {
            
$events->listen([RequestReceived::class, TaskReceived::class, TickReceived::class, RequestTerminated::class], function () {
                
$this->queries = [];
            });
        }
    }

    
/**
     * Returns the queries that have been executed.
     *
     * @return array<int, array{connectionName: string, time: float, sql: string, bindings: array}>
     */
    
public function queries()
    {
        return 
$this->queries;
    }

    
/**
     * Listens for the query executed event.
     *
     * @param  IlluminateDatabaseEventsQueryExecuted  $event
     * @return void
     */
    
public function onQueryExecuted(QueryExecuted $event)
    {
        if (
count($this->queries) >= 100) {
            return;
        }

        
$sql strlen($event->sql) <= 2000
            
$event->sql
            
mb_strcut($event->sql02000);

        
$bindings $event->connection->prepareBindings($event->bindings);

        
$bindingCount substr_count($sql'?');

        
$this->queries[] = [
            
'connectionName' => $event->connectionName,
            
'time' => $event->time,
            
'sql' => $sql,
            
'bindings' => count($bindings) <= $bindingCount
                
$bindings
                
array_slice($bindings0$bindingCount),
        ];
    }
}
Онлайн: 1
Реклама