PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 15.9-a.3
Jetpack – WP Security, Backup, Speed, & Growth v15.9-a.3
15.9-a.7 15.9-a.5 15.9-a.3 15.9-a.1 15.8 15.8-beta 15.8-a.7 15.8-a.5 5.2.5 5.3.4 5.4.4 5.5.5 5.6.5 5.7.5 5.8.4 5.9.4 6.0.4 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.4 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.5 6.5.1 6.5.2 6.5.3 6.5.4 6.6 6.6.1 6.6.2 6.6.3 6.6.4 6.6.5 6.7 6.7.1 6.7.2 6.7.3 6.7.4 6.8 6.8.1 6.8.2 6.8.3 6.8.4 6.8.5 6.9 6.9.1 6.9.2 6.9.3 6.9.4 7.0 7.0.1 7.0.2 7.0.3 7.0.4 7.0.5 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2 7.2.1 7.2.1.1 7.2.2 7.2.3 7.2.4 7.2.5 7.3 7.3.0.1 7.3.1 7.3.1.1 7.3.2 7.3.3 7.3.4 7.3.5 7.4 7.4.1 7.4.2 7.4.3 7.4.4 7.4.5 7.5 7.5.0.1 7.5.1 7.5.2 7.5.3 7.5.4 7.5.5 7.5.6 7.5.7 7.6 7.6.1 7.6.2 7.6.3 7.6.4 7.7 7.7.1 7.7.2 7.7.3 7.7.4 7.7.5 7.7.6 7.8 7.8.1 7.8.2 7.8.3 7.8.4 7.9 7.9.1 7.9.2 7.9.3 7.9.4 8.0 8.0.1 8.0.2 8.0.3 8.1 8.1.1 8.1.2 8.1.3 8.1.4 8.2 8.2.0.1 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.3 8.3.1 8.3.2 8.3.3 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.5 8.5.1 8.5.2 8.5.3 8.6 8.6.1 8.6.2 8.6.3 8.6.4 8.7 8.7.0.1 8.7.1 8.7.2 8.7.3 8.7.4 8.8 8.8.1 8.8.2 8.8.3 8.8.4 8.8.5 8.9 8.9.1 8.9.2 8.9.3 8.9.4 9.0 9.0.1 9.0.2 9.0.3 9.0.4 9.0.5 9.1 9.1.1 9.1.2 9.1.3 9.2 9.2.1 9.2.2 9.2.3 9.2.4 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.4 9.4.1 9.4.2 9.4.3 9.4.4 9.5 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.6 9.6.1 9.6.2 9.6.3 9.6.4 9.7 9.7.1 9.7.2 15.7-beta.2 9.7.3 15.7.1 9.8 15.8-a.1 9.8.1 15.8-a.3 9.8.2 2.0.9 9.8.3 2.1.7 9.9 2.2.10 9.9.1 2.3.10 9.9.2 2.4.7 9.9.3 2.5.5 2.6.6 2.7.5 2.8.5 2.9.6 3.0.6 3.1.5 3.2.5 3.3.6 3.4.6 3.5.6 3.6.4 3.7.5 3.8.5 3.9.10 4.0.7 4.1.4 4.2.5 4.3.5 4.4.5 4.5.3 4.6.3 4.7.4 4.8.5 4.9.3 5.0.3 5.1.4 trunk 10.0 10.0.1 10.0.2 10.1 10.1.1 10.1.2 10.2 10.2.1 10.2.2 10.2.3 10.3 10.3.1 10.3.2 10.4 10.4.1 10.4.2 10.5 10.5.1 10.5.2 10.5.3 10.6 10.6.1 10.6.2 10.7 10.7.1 10.7.2 10.8 10.8.1 10.8.2 10.9 10.9.1 10.9.2 10.9.3 11.0 11.0.1 11.0.2 11.1 11.1.1 11.1.2 11.1.3 11.1.4 11.2 11.2.1 11.2.2 11.3 11.3.1 11.3.2 11.3.3 11.3.4 11.4 11.4.1 11.4.2 11.5 11.5.1 11.5.2 11.5.3 11.6 11.6.1 11.6.2 11.7 11.7.1 11.7.2 11.7.3 11.8 11.8.3 11.8.4 11.8.5 11.8.6 11.9 11.9.1 11.9.2 11.9.3 12.0 12.0.1 12.0.2 12.1 12.1.1 12.1.2 12.2 12.2.1 12.2.2 12.3 12.3.1 12.4 12.4.1 12.5 12.5.1 12.6 12.6.1 12.6.2 12.6.3 12.7 12.7.1 12.7.2 12.8 12.8.1 12.8.2 12.9 12.9.1 12.9.2 12.9.3 12.9.4 13.0 13.0.1 13.1 13.1.1 13.1.2 13.1.3 13.1.4 13.2 13.2.1 13.2.2 13.2.3 13.3 13.3.1 13.3.2 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.5 13.5.1 13.6 13.6.1 13.7 13.7.1 13.8 13.8.1 13.8.2 13.9 13.9.1 14.0 14.1 14.2 14.2.1 14.3 14.4 14.4.1 14.5 14.6 14.7 14.8 14.9 14.9.1 15.0 15.0.1 15.0.2 15.1 15.1.1 15.2 15.3 15.3.1 15.4 15.5 15.6 15.7 15.7-a.1 15.7-a.3 15.7-a.5 15.7-a.7 15.7-beta
jetpack / vendor / jetpack-autoloader / class-version-loader.php
jetpack / vendor / jetpack-autoloader Last commit date
class-autoloader-handler.php 2 weeks ago class-autoloader-locator.php 2 weeks ago class-autoloader.php 2 weeks ago class-container.php 2 weeks ago class-hook-manager.php 2 weeks ago class-latest-autoloader-guard.php 2 weeks ago class-manifest-reader.php 2 weeks ago class-path-processor.php 2 weeks ago class-php-autoloader.php 2 weeks ago class-plugin-locator.php 2 weeks ago class-plugins-handler.php 2 weeks ago class-shutdown-handler.php 2 weeks ago class-version-loader.php 2 weeks ago class-version-selector.php 2 weeks ago
class-version-loader.php
185 lines
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ⓥ15_9_a_3\al5_0_18;
9
10 // phpcs:ignore
11
12 /**
13 * This class loads other classes based on given parameters.
14 */
15 class Version_Loader {
16
17 /**
18 * The Version_Selector object.
19 *
20 * @var Version_Selector
21 */
22 private $version_selector;
23
24 /**
25 * A map of available classes and their version and file path.
26 *
27 * @var array
28 */
29 private $classmap;
30
31 /**
32 * A map of PSR-4 namespaces and their version and directory path.
33 *
34 * @var array
35 */
36 private $psr4_map;
37
38 /**
39 * A map of all the files that we should load.
40 *
41 * @var array
42 */
43 private $filemap;
44
45 /**
46 * The constructor.
47 *
48 * @param Version_Selector $version_selector The Version_Selector object.
49 * @param array $classmap The verioned classmap to load using.
50 * @param array $psr4_map The versioned PSR-4 map to load using.
51 * @param array $filemap The versioned filemap to load.
52 */
53 public function __construct( $version_selector, $classmap, $psr4_map, $filemap ) {
54 $this->version_selector = $version_selector;
55 $this->classmap = $classmap;
56 $this->psr4_map = $psr4_map;
57 $this->filemap = $filemap;
58 }
59
60 /**
61 * Fetch the classmap.
62 *
63 * @since 3.1.0
64 * @return array<string, array>
65 */
66 public function get_class_map() {
67 return $this->classmap;
68 }
69
70 /**
71 * Fetch the psr-4 mappings.
72 *
73 * @since 3.1.0
74 * @return array<string, array>
75 */
76 public function get_psr4_map() {
77 return $this->psr4_map;
78 }
79
80 /**
81 * Finds the file path for the given class.
82 *
83 * @param string $class_name The class to find.
84 *
85 * @return string|null $file_path The path to the file if found, null if no class was found.
86 */
87 public function find_class_file( $class_name ) {
88 $data = $this->select_newest_file(
89 $this->classmap[ $class_name ] ?? null,
90 $this->find_psr4_file( $class_name )
91 );
92 if ( ! isset( $data ) ) {
93 return null;
94 }
95
96 return $data['path'];
97 }
98
99 /**
100 * Load all of the files in the filemap.
101 */
102 public function load_filemap() {
103 if ( empty( $this->filemap ) ) {
104 return;
105 }
106
107 foreach ( $this->filemap as $file_identifier => $file_data ) {
108 if ( empty( $GLOBALS['__composer_autoload_files'][ $file_identifier ] ) ) {
109 require_once $file_data['path'];
110
111 $GLOBALS['__composer_autoload_files'][ $file_identifier ] = true;
112 }
113 }
114 }
115
116 /**
117 * Compares different class sources and returns the newest.
118 *
119 * @param array|null $classmap_data The classmap class data.
120 * @param array|null $psr4_data The PSR-4 class data.
121 *
122 * @return array|null $data
123 */
124 private function select_newest_file( $classmap_data, $psr4_data ) {
125 if ( ! isset( $classmap_data ) ) {
126 return $psr4_data;
127 } elseif ( ! isset( $psr4_data ) ) {
128 return $classmap_data;
129 }
130
131 if ( $this->version_selector->is_version_update_required( $classmap_data['version'], $psr4_data['version'] ) ) {
132 return $psr4_data;
133 }
134
135 return $classmap_data;
136 }
137
138 /**
139 * Finds the file for a given class in a PSR-4 namespace.
140 *
141 * @param string $class_name The class to find.
142 *
143 * @return array|null $data The version and path path to the file if found, null otherwise.
144 */
145 private function find_psr4_file( $class_name ) {
146 if ( empty( $this->psr4_map ) ) {
147 return null;
148 }
149
150 // Don't bother with classes that have no namespace.
151 $class_index = strrpos( $class_name, '\\' );
152 if ( ! $class_index ) {
153 return null;
154 }
155 $class_for_path = str_replace( '\\', '/', $class_name );
156
157 // Search for the namespace by iteratively cutting off the last segment until
158 // we find a match. This allows us to check the most-specific namespaces
159 // first as well as minimize the amount of time spent looking.
160 for (
161 $class_namespace = substr( $class_name, 0, $class_index );
162 ! empty( $class_namespace );
163 $class_namespace = substr( $class_namespace, 0, strrpos( $class_namespace, '\\' ) )
164 ) {
165 $namespace = $class_namespace . '\\';
166 if ( ! isset( $this->psr4_map[ $namespace ] ) ) {
167 continue;
168 }
169 $data = $this->psr4_map[ $namespace ];
170
171 foreach ( $data['path'] as $path ) {
172 $path .= '/' . substr( $class_for_path, strlen( $namespace ) ) . '.php';
173 if ( file_exists( $path ) ) {
174 return array(
175 'version' => $data['version'],
176 'path' => $path,
177 );
178 }
179 }
180 }
181
182 return null;
183 }
184 }
185