https://t.me/RX1948
Server : LiteSpeed
System : Linux srv104790275 5.15.0-161-generic #171-Ubuntu SMP Sat Oct 11 08:17:01 UTC 2025 x86_64
User : dewac4139 ( 1077)
PHP Version : 8.0.30
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Directory :  /home/sarkas88.com/public_html/wp-content/plugins/amp/src/DevTools/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //home/sarkas88.com/public_html/wp-content/plugins/amp/src/DevTools/LikelyCulpritDetector.php
<?php
/**
 * Class LikelyCulpritDetector.
 *
 * @package AmpProject\AmpWP
 */

namespace AmpProject\AmpWP\DevTools;

use AmpProject\AmpWP\Infrastructure\Service;
use Error;
use Exception;
use InvalidArgumentException;
use Throwable;

/**
 * Go through a debug backtrace and detect the extension that is likely to have
 * caused that backtrace.
 *
 * @package AmpProject\AmpWP
 * @since   2.0.2
 * @internal
 */
final class LikelyCulpritDetector implements Service {

	/**
	 * File reflector to use.
	 *
	 * @var FileReflection
	 */
	private $file_reflection;

	/**
	 * LikelyCulpritDetector constructor.
	 *
	 * @param FileReflection $file_reflection File reflector to use.
	 */
	public function __construct( FileReflection $file_reflection ) {
		$this->file_reflection = $file_reflection;
	}

	/**
	 * Detect the themes and plugins responsible for causing the current debug
	 * backtrace.
	 *
	 * @return array {
	 *     Type and name of extension that is the likely culprit.
	 *
	 *     @type string $type Type. Empty if none matched.
	 *     @type string $name Name. Empty if none matched.
	 * }
	 */
	public function analyze_backtrace() {
		return $this->analyze_trace( debug_backtrace( 0 ) ); // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_debug_backtrace
	}

	/**
	 * Detect the themes and plugins responsible for causing the exception.
	 *
	 * @param Throwable|Exception $throwable Exception or Error to analyze. The Throwable type does not exist in PHP 5,
	 *                                       which is why type is absent from the function parameter.
	 * @throws InvalidArgumentException If $throwable is not an Exception or an Error.
	 * @return array {
	 *     Type and name of extension that is the likely culprit.
	 *
	 *     @type string $type Type. Empty if none matched.
	 *     @type string $name Name. Empty if none matched.
	 * }
	 */
	public function analyze_throwable( $throwable ) {
		if ( ! ( $throwable instanceof Exception || $throwable instanceof Error ) ) {
			throw new InvalidArgumentException( 'Parameter must be Throwable (Exception or Error).' );
		}
		$trace = $throwable->getTrace();
		array_unshift( $trace, [ FileReflection::SOURCE_FILE => $throwable->getFile() ] );
		return $this->analyze_trace( $trace );
	}

	/**
	 * Detect the themes and plugins responsible for an issue in a trace.
	 *
	 * @param array $trace Associative array of trace data to analyze.
	 * @return array {
	 *     Type and name of extension that is the likely culprit.
	 *
	 *     @type string $type Type. Empty if none matched.
	 *     @type string $name Name. Empty if none matched.
	 * }
	 */
	public function analyze_trace( $trace ) {
		foreach ( $trace as $call_stack ) {
			if ( empty( $call_stack[ FileReflection::SOURCE_FILE ] ) ) {
				continue;
			}

			$source = $this->file_reflection->get_file_source( $call_stack[ FileReflection::SOURCE_FILE ] );

			if (
				empty( $source )
				||
				FileReflection::TYPE_CORE === $source[ FileReflection::SOURCE_TYPE ]
				||
				(
					FileReflection::TYPE_PLUGIN === $source[ FileReflection::SOURCE_TYPE ]
					&&
					// Per \AmpProject\AmpWP\PluginRegistry::get_plugins(), AMP and Gutenberg are considered core.
					in_array( $source[ FileReflection::SOURCE_NAME ], [ 'amp', 'gutenberg' ], true )
				)
			) {
				// We skip WordPress Core (likely hooks subsystem) and the AMP
				// plugin itself.
				continue;
			}

			return $source;
		}

		return [
			FileReflection::SOURCE_TYPE => '',
			FileReflection::SOURCE_NAME => '',
		];
	}
}

https://t.me/RX1948 - 2025