91 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * This file was automatically generated by automattic/jetpack-autoloader.
 | |
|  *
 | |
|  * @package automattic/jetpack-autoloader
 | |
|  */
 | |
| 
 | |
| namespace Automattic\Jetpack\Autoloader\jpc4802e05bbcf59fd3b6350e8d3e5482c_protectⓥ1_0_4;
 | |
| 
 | |
|  // 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;
 | |
| 	}
 | |
| }
 |