1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
<?php /** * This file was automatically generated by automattic/jetpack-autoloader. * * @package automattic/jetpack-autoloader */
namespace Automattic\Jetpack\Autoloader\jp67abb2f5c15b32a13611c55273717232\al5_0_0;
// 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. @phan-output-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 ( ! $version || ! $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; } }
|