PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 12.6.4
Jetpack – WP Security, Backup, Speed, & Growth v12.6.4
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 13.7.2 13.8.3 13.9.2 14.0.1 14.1.1 14.2.2 14.3.1 14.4.2 14.5.1 14.6.1 14.7.1 14.8.1 14.9.2 15.0.3 15.1.2 15.2.1 15.3.2 15.4.1 15.5.1 15.6.1 15.7.2 15.8.1 15.9.2 16.0.2 16.1.3 16.2-a.5 16.2-a.3 16.1.2 16.2-a.1 16.1.1 16.1 16.1-beta 16.1-beta.2 16.1-beta.3 16.1-a.5 16.1-a.3 16.0.1 16.1-a.1 16.0 16.0-beta 16.0-a.7 16.0-a.5 15.9.1 16.0-a.3 16.0-a.1 15.9 15.9-beta 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 years ago class-autoloader-locator.php 2 years ago class-autoloader.php 2 years ago class-container.php 2 years ago class-hook-manager.php 2 years ago class-latest-autoloader-guard.php 2 years ago class-manifest-reader.php 2 years ago class-path-processor.php 2 years ago class-php-autoloader.php 2 years ago class-plugin-locator.php 2 years ago class-plugins-handler.php 2 years ago class-shutdown-handler.php 2 years ago class-version-loader.php 2 years ago class-version-selector.php 2 years ago
class-version-loader.php
165 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ⓥ12_6_2;
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 * Finds the file path for the given class.
62 *
63 * @param string $class_name The class to find.
64 *
65 * @return string|null $file_path The path to the file if found, null if no class was found.
66 */
67 public function find_class_file( $class_name ) {
68 $data = $this->select_newest_file(
69 isset( $this->classmap[ $class_name ] ) ? $this->classmap[ $class_name ] : null,
70 $this->find_psr4_file( $class_name )
71 );
72 if ( ! isset( $data ) ) {
73 return null;
74 }
75
76 return $data['path'];
77 }
78
79 /**
80 * Load all of the files in the filemap.
81 */
82 public function load_filemap() {
83 if ( empty( $this->filemap ) ) {
84 return;
85 }
86
87 foreach ( $this->filemap as $file_identifier => $file_data ) {
88 if ( empty( $GLOBALS['__composer_autoload_files'][ $file_identifier ] ) ) {
89 require_once $file_data['path'];
90
91 $GLOBALS['__composer_autoload_files'][ $file_identifier ] = true;
92 }
93 }
94 }
95
96 /**
97 * Compares different class sources and returns the newest.
98 *
99 * @param array|null $classmap_data The classmap class data.
100 * @param array|null $psr4_data The PSR-4 class data.
101 *
102 * @return array|null $data
103 */
104 private function select_newest_file( $classmap_data, $psr4_data ) {
105 if ( ! isset( $classmap_data ) ) {
106 return $psr4_data;
107 } elseif ( ! isset( $psr4_data ) ) {
108 return $classmap_data;
109 }
110
111 if ( $this->version_selector->is_version_update_required( $classmap_data['version'], $psr4_data['version'] ) ) {
112 return $psr4_data;
113 }
114
115 return $classmap_data;
116 }
117
118 /**
119 * Finds the file for a given class in a PSR-4 namespace.
120 *
121 * @param string $class_name The class to find.
122 *
123 * @return array|null $data The version and path path to the file if found, null otherwise.
124 */
125 private function find_psr4_file( $class_name ) {
126 if ( ! isset( $this->psr4_map ) ) {
127 return null;
128 }
129
130 // Don't bother with classes that have no namespace.
131 $class_index = strrpos( $class_name, '\\' );
132 if ( ! $class_index ) {
133 return null;
134 }
135 $class_for_path = str_replace( '\\', '/', $class_name );
136
137 // Search for the namespace by iteratively cutting off the last segment until
138 // we find a match. This allows us to check the most-specific namespaces
139 // first as well as minimize the amount of time spent looking.
140 for (
141 $class_namespace = substr( $class_name, 0, $class_index );
142 ! empty( $class_namespace );
143 $class_namespace = substr( $class_namespace, 0, strrpos( $class_namespace, '\\' ) )
144 ) {
145 $namespace = $class_namespace . '\\';
146 if ( ! isset( $this->psr4_map[ $namespace ] ) ) {
147 continue;
148 }
149 $data = $this->psr4_map[ $namespace ];
150
151 foreach ( $data['path'] as $path ) {
152 $path .= '/' . substr( $class_for_path, strlen( $namespace ) ) . '.php';
153 if ( file_exists( $path ) ) {
154 return array(
155 'version' => $data['version'],
156 'path' => $path,
157 );
158 }
159 }
160 }
161
162 return null;
163 }
164 }
165