Plugin Directory

source: jetpack/trunk/vendor/jetpack-autoloader/class-autoloader-locator.php @ 3063822

Last change on this file since 3063822 was 3063822, checked in by zinigor, 4 months ago

Updating trunk to version 13.3

File size: 2.1 KB
Line 
1<?php
2/**
3 * This file was automatically generated by automattic/jetpack-autoloader.
4 *
5 * @package automattic/jetpack-autoloader
6 */
7
8namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpack13_3\al3_0_4;
9
10 // phpcs:ignore
11
12use Automattic\Jetpack\Autoloader\AutoloadGenerator;
13
14/**
15 * This class locates autoloaders.
16 */
17class 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.
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 ( ! $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}
Note: See TracBrowser for help on using the repository browser.