diff options
Diffstat (limited to 'plugins/jetpack/vendor/jetpack-autoloader/class-autoloader-locator.php')
-rw-r--r-- | plugins/jetpack/vendor/jetpack-autoloader/class-autoloader-locator.php | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/plugins/jetpack/vendor/jetpack-autoloader/class-autoloader-locator.php b/plugins/jetpack/vendor/jetpack-autoloader/class-autoloader-locator.php new file mode 100644 index 00000000..81320d9c --- /dev/null +++ b/plugins/jetpack/vendor/jetpack-autoloader/class-autoloader-locator.php @@ -0,0 +1,90 @@ +<?php +/** + * This file was automatically generated by automattic/jetpack-autoloader. + * + * @package automattic/jetpack-autoloader + */ + +namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5; + + // phpcs:ignore + +use Automattic\Jetpack\Autoloader\AutoloadGenerator; + +/** + * This class locates autoloaders. + */ +class Autoloader_Locator { + + /** + * The object for comparing autoloader versions. + * + * @var Version_Selector + */ + private $version_selector; + + /** + * The constructor. + * + * @param Version_Selector $version_selector The version selector object. + */ + public function __construct( $version_selector ) { + $this->version_selector = $version_selector; + } + + /** + * Finds the path to the plugin with the latest autoloader. + * + * @param array $plugin_paths An array of plugin paths. + * @param string $latest_version The latest version reference. + * + * @return string|null + */ + public function find_latest_autoloader( $plugin_paths, &$latest_version ) { + $latest_plugin = null; + + foreach ( $plugin_paths as $plugin_path ) { + $version = $this->get_autoloader_version( $plugin_path ); + if ( ! $this->version_selector->is_version_update_required( $latest_version, $version ) ) { + continue; + } + + $latest_version = $version; + $latest_plugin = $plugin_path; + } + + return $latest_plugin; + } + + /** + * Gets the path to the autoloader. + * + * @param string $plugin_path The path to the plugin. + * + * @return string + */ + public function get_autoloader_path( $plugin_path ) { + return trailingslashit( $plugin_path ) . 'vendor/autoload_packages.php'; + } + + /** + * Gets the version for the autoloader. + * + * @param string $plugin_path The path to the plugin. + * + * @return string|null + */ + public function get_autoloader_version( $plugin_path ) { + $classmap = trailingslashit( $plugin_path ) . 'vendor/composer/jetpack_autoload_classmap.php'; + if ( ! file_exists( $classmap ) ) { + return null; + } + + $classmap = require $classmap; + if ( isset( $classmap[ AutoloadGenerator::class ] ) ) { + return $classmap[ AutoloadGenerator::class ]['version']; + } + + return null; + } +} |