PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.3
Jetpack – WP Security, Backup, Speed, & Growth v16.3
16.3 16.3-beta 16.3-a.5 16.3-a.7 16.3-a.3 16.3-a.1 16.2 16.2-beta 12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 All 508 releases
← All changes | vendor/jetpack-autoloader/class-autoloader-locator.php +90 -0 16.2-beta → 16.3 View file →
@@ -1,0 +1,90 @@
1 +<?php
2 +/**
3 + * This file was automatically generated by automattic/jetpack-autoloader.
4 + *
5 + * @package automattic/jetpack-autoloader
6 + */
7 +
8 +namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ16_3\al6_0_1;
9 +
10 + // phpcs:ignore
11 +
12 +use Automattic\Jetpack\Autoloader\AutoloadGenerator;
13 +
14 +/**
15 + * This class locates autoloaders.
16 + */
17 +class Autoloader_Locator {
18 +
19 + /**
20 + * The object for comparing autoloader versions.
21 + *
22 + * @var Version_Selector
23 + */
24 + private $version_selector;
25 +
26 + /**
27 + * The constructor.
28 + *
29 + * @param Version_Selector $version_selector The version selector object.
30 + */
31 + public function __construct( $version_selector ) {
32 + $this->version_selector = $version_selector;
33 + }
34 +
35 + /**
36 + * Finds the path to the plugin with the latest autoloader.
37 + *
38 + * @param array $plugin_paths An array of plugin paths.
39 + * @param string $latest_version The latest version reference. @phan-output-reference.
40 + *
41 + * @return string|null
42 + */
43 + public function find_latest_autoloader( $plugin_paths, &$latest_version ) {
44 + $latest_plugin = null;
45 +
46 + foreach ( $plugin_paths as $plugin_path ) {
47 + $version = $this->get_autoloader_version( $plugin_path );
48 + if ( ! $version || ! $this->version_selector->is_version_update_required( $latest_version, $version ) ) {
49 + continue;
50 + }
51 +
52 + $latest_version = $version;
53 + $latest_plugin = $plugin_path;
54 + }
55 +
56 + return $latest_plugin;
57 + }
58 +
59 + /**
60 + * Gets the path to the autoloader.
61 + *
62 + * @param string $plugin_path The path to the plugin.
63 + *
64 + * @return string
65 + */
66 + public function get_autoloader_path( $plugin_path ) {
67 + return trailingslashit( $plugin_path ) . 'vendor/autoload_packages.php';
68 + }
69 +
70 + /**
71 + * Gets the version for the autoloader.
72 + *
73 + * @param string $plugin_path The path to the plugin.
74 + *
75 + * @return string|null
76 + */
77 + public function get_autoloader_version( $plugin_path ) {
78 + $classmap = trailingslashit( $plugin_path ) . 'vendor/composer/jetpack_autoload_classmap.php';
79 + if ( ! file_exists( $classmap ) ) {
80 + return null;
81 + }
82 +
83 + $classmap = require $classmap;
84 + if ( isset( $classmap[ AutoloadGenerator::class ] ) ) {
85 + return $classmap[ AutoloadGenerator::class ]['version'];
86 + }
87 +
88 + return null;
89 + }
90 +}