wpdbAdapter = $wpdbAdapter; $this->latteEngine = $latteEngine; } /** * Get queries. * * @return \Generator */ private function getPacketeryQueries(): \Generator { $queries = $this->wpdbAdapter->getWpdbQueries(); $maxQueries = defined( 'PACKETERY_DEBUG_MAX_DB_PANEL_QUERIES' ) ? PACKETERY_DEBUG_MAX_DB_PANEL_QUERIES : 1000; $count = 0; foreach ( $queries as $queryInfo ) { [ $query, $timeSpent, $funcList ] = $queryInfo; if ( strpos( $funcList, 'Packetery\\' ) === false && strpos( $funcList, '/plugins/packeta/' ) === false ) { continue; } yield [ 'query' => $query, 'timeSpent' => $timeSpent * 1000, 'funcList' => $funcList, ]; $count++; if ( $count >= $maxQueries ) { yield false; break; } } } /** * Gets HTML code for custom tab. * * @return string */ public function getTab(): string { return $this->latteEngine->renderToString( PACKETERY_PLUGIN_DIR . '/template/wpdb-tracy-panel-tab.latte' ); } /** * Gets HTML code for custom panel. * * @return string */ public function getPanel(): string { return $this->latteEngine->renderToString( PACKETERY_PLUGIN_DIR . '/template/wpdb-tracy-panel.latte', [ 'queries' => $this->getPacketeryQueries(), ] ); } }