✘✘ GRAYBYTE WORDPRESS FILE MANAGER ✘✘

​🇳​​🇦​​🇲​​🇪♯➤ server366.web-hosting.com ​🇻​♯➤ 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP 🇾​♯➤ 2025

𝗛𝗢𝗠𝗘 𝗜𝗗 ♯➤ 67.223.118.204 ♯➤ 𝗔𝗗𝗠𝗜𝗡 𝗜𝗗 216.73.216.243
𝗢𝗣𝗧𝗜𝗢𝗡𝗦 ♯ CRL ♯➤ 𝗢𝗞 ┃ WGT ♯➤ 𝗢𝗞 ┃ SDO ♯➤ 𝗢𝗙𝗙 ┃ PKEX ♯➤ 𝗢𝗙𝗙
𝗗𝗘𝗔𝗖𝗧𝗜𝗩𝗔𝗧𝗘𝗗 ♯➤ 𝗔𝗟𝗟 𝗪𝗢𝗥𝗞𝗜𝗡𝗚....

𝗛𝗢𝗠𝗘
𝗖𝗨𝗥𝗥𝗘𝗡𝗧 𝗙𝗜𝗟𝗘 : /home/builxejc/public_html/wp-content/plugins/wordpress-seo/src//loader.php
<?php

namespace Yoast\WP\SEO;

use Throwable;
use WP_CLI;
use YoastSEO_Vendor\Symfony\Component\DependencyInjection\ContainerInterface;

/**
 * Class that manages loading integrations if and only if all their conditionals are met.
 */
class Loader {

	/**
	 * The registered integrations.
	 *
	 * @var string[]
	 */
	protected $integrations = [];

	/**
	 * The registered integrations.
	 *
	 * @var string[]
	 */
	protected $initializers = [];

	/**
	 * The registered routes.
	 *
	 * @var string[]
	 */
	protected $routes = [];

	/**
	 * The registered commands.
	 *
	 * @var string[]
	 */
	protected $commands = [];

	/**
	 * The registered migrations.
	 *
	 * @var string[]
	 */
	protected $migrations = [];

	/**
	 * The dependency injection container.
	 *
	 * @var ContainerInterface
	 */
	protected $container;

	/**
	 * Loader constructor.
	 *
	 * @param ContainerInterface $container The dependency injection container.
	 */
	public function __construct( ContainerInterface $container ) {
		$this->container = $container;
	}

	/**
	 * Registers an integration.
	 *
	 * @param string $integration_class The class name of the integration to be loaded.
	 *
	 * @return void
	 */
	public function register_integration( $integration_class ) {
		$this->integrations[] = $integration_class;
	}

	/**
	 * Registers an initializer.
	 *
	 * @param string $initializer_class The class name of the initializer to be loaded.
	 *
	 * @return void
	 */
	public function register_initializer( $initializer_class ) {
		$this->initializers[] = $initializer_class;
	}

	/**
	 * Registers a route.
	 *
	 * @param string $route_class The class name of the route to be loaded.
	 *
	 * @return void
	 */
	public function register_route( $route_class ) {
		$this->routes[] = $route_class;
	}

	/**
	 * Registers a command.
	 *
	 * @param string $command_class The class name of the command to be loaded.
	 *
	 * @return void
	 */
	public function register_command( $command_class ) {
		$this->commands[] = $command_class;
	}

	/**
	 * Registers a migration.
	 *
	 * @param string $plugin          The plugin the migration belongs to.
	 * @param string $version         The version of the migration.
	 * @param string $migration_class The class name of the migration to be loaded.
	 *
	 * @return void
	 */
	public function register_migration( $plugin, $version, $migration_class ) {
		if ( ! \array_key_exists( $plugin, $this->migrations ) ) {
			$this->migrations[ $plugin ] = [];
		}

		$this->migrations[ $plugin ][ $version ] = $migration_class;
	}

	/**
	 * Loads all registered classes if their conditionals are met.
	 *
	 * @return void
	 */
	public function load() {
		$this->load_initializers();

		if ( ! \did_action( 'init' ) ) {
			\add_action( 'init', [ $this, 'load_integrations' ] );
		}
		else {
			$this->load_integrations();
		}

		\add_action( 'rest_api_init', [ $this, 'load_routes' ] );

		if ( \defined( 'WP_CLI' ) && \WP_CLI ) {
			$this->load_commands();
		}
	}

	/**
	 * Returns all registered migrations.
	 *
	 * @param string $plugin The plugin to get the migrations for.
	 *
	 * @return string[]|false The registered migrations. False if no migrations were registered.
	 */
	public function get_migrations( $plugin ) {
		if ( ! \array_key_exists( $plugin, $this->migrations ) ) {
			return false;
		}

		return $this->migrations[ $plugin ];
	}

	/**
	 * Loads all registered commands.
	 *
	 * Commands that opt in to conditional loading by implementing
	 * Loadable_Interface are skipped when their conditionals are not met.
	 *
	 * @return void
	 */
	protected function load_commands() {
		foreach ( $this->commands as $class ) {
			if ( \is_subclass_of( $class, Loadable_Interface::class )
				&& ! $this->conditionals_are_met( $class )
			) {
				continue;
			}

			$command = $this->get_class( $class );

			if ( $command === null ) {
				continue;
			}

			WP_CLI::add_command( $class::get_namespace(), $command );
		}
	}

	/**
	 * Loads all registered initializers if their conditionals are met.
	 *
	 * @return void
	 */
	protected function load_initializers() {
		foreach ( $this->initializers as $class ) {
			if ( ! $this->conditionals_are_met( $class ) ) {
				continue;
			}

			$initializer = $this->get_class( $class );

			if ( $initializer === null ) {
				continue;
			}

			$initializer->initialize();
		}
	}

	/**
	 * Loads all registered integrations if their conditionals are met.
	 *
	 * @return void
	 */
	public function load_integrations() {
		foreach ( $this->integrations as $class ) {
			if ( ! $this->conditionals_are_met( $class ) ) {
				continue;
			}

			$integration = $this->get_class( $class );

			if ( $integration === null ) {
				continue;
			}

			$integration->register_hooks();
		}
	}

	/**
	 * Loads all registered routes if their conditionals are met.
	 *
	 * @return void
	 */
	public function load_routes() {
		foreach ( $this->routes as $class ) {
			if ( ! $this->conditionals_are_met( $class ) ) {
				continue;
			}

			$route = $this->get_class( $class );

			if ( $route === null ) {
				continue;
			}

			$route->register_routes();
		}
	}

	/**
	 * Checks if all conditionals of a given loadable are met.
	 *
	 * @param string $loadable_class The class name of the loadable.
	 *
	 * @return bool Whether all conditionals of the loadable are met.
	 */
	protected function conditionals_are_met( $loadable_class ) {
		// In production environments do not fatal if the class does not exist but log and fail gracefully.
		if ( \YOAST_ENVIRONMENT === 'production' && ! \class_exists( $loadable_class ) ) {
			if ( \defined( 'WP_DEBUG' ) && \WP_DEBUG ) {
				// phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log
				\error_log(
					\sprintf(
						/* translators: %1$s expands to Yoast SEO, %2$s expands to the name of the class that could not be found. */
						\__( '%1$s attempted to load the class %2$s but it could not be found.', 'wordpress-seo' ),
						'Yoast SEO',
						$loadable_class,
					),
				);
			}
			return false;
		}

		$conditionals = $loadable_class::get_conditionals();
		foreach ( $conditionals as $class ) {
			$conditional = $this->get_class( $class );
			if ( $conditional === null || ! $conditional->is_met() ) {
				return false;
			}
		}

		return true;
	}

	/**
	 * Gets a class from the container.
	 *
	 * @param string $class_name The class name.
	 *
	 * @return object|null The class or, in production environments, null if it does not exist.
	 *
	 * @throws Throwable If the class does not exist in development environments.
	 */
	protected function get_class( $class_name ) {
		try {
			return $this->container->get( $class_name );
		} catch ( Throwable $e ) {
			// In production environments do not fatal if the class could not be constructed but log and fail gracefully.
			if ( \YOAST_ENVIRONMENT === 'production' ) {
				if ( \defined( 'WP_DEBUG' ) && \WP_DEBUG ) {
					// phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log
					\error_log( $e->getMessage() );
				}
				return null;
			}
			throw $e;
		}
	}
}


Current_dir [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]


[ Back ]
𝗡𝗔𝗠𝗘
𝗦𝗜𝗭𝗘
𝗟𝗔𝗦𝗧 𝗧𝗢𝗨𝗖𝗛
𝗨𝗦𝗘𝗥
𝗦𝗧𝗔𝗧𝗨𝗦
𝗙𝗨𝗡𝗖𝗧𝗜𝗢𝗡𝗦
..
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
abilities
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
actions
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
ai
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
ai-authorization
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
ai-consent
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
ai-free-sparks
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
ai-generator
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
ai-http-request
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
alerts
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
analytics
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
builders
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
commands
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
conditionals
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
config
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
content-type-visibility
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
context
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
dashboard
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
deprecated
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
editors
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
elementor
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
exceptions
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
expiring-store
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
general
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
generated
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
generators
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
helpers
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
images
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
initializers
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
integrations
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
introductions
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
llms-txt
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
loggers
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
memoizers
--
17 Jun 2026 5.41 AM
builxejc / builxejc
0755
models
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
myyoast-client
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
plans
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
plugins-tab
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
presentations
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
presenters
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
promotions
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
repositories
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
routes
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
schema
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
schema-aggregator
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
services
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
surfaces
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
task-list
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
tracking
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
user-meta
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
user-profiles-additions
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
values
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
wordpress
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
wrappers
--
9 Jun 2026 8.39 AM
builxejc / builxejc
0755
functions.php
0.681 KB
19 Sep 2023 1.07 PM
builxejc / builxejc
0644
loadable-interface.php
0.279 KB
13 Jan 2021 2.06 PM
builxejc / builxejc
0644
loader.php
6.886 KB
12 May 2026 4.03 PM
builxejc / builxejc
0644
main.php
1.824 KB
17 Feb 2026 5.17 PM
builxejc / builxejc
0644

✘✘ GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME ✘✘
Static GIF Static GIF