PluginProbe ʕ •ᴥ•ʔ
WP Job Manager / 2.4.7
WP Job Manager v2.4.7
2.4.7 2.4.6 2.4.5 2.4.4 2.4.3 2.4.2 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.1.0 1.1.1 1.1.2 1.1.3 1.10.0 1.11.0 1.11.1 1.12.0 1.12.1 1.13.0 1.14.0 1.15.0 1.16.0 1.16.1 1.17.0 1.18.0 1.19.0 1.2.0 1.20.0 1.20.1 1.21.0 1.21.1 1.21.2 1.21.3 1.21.4 1.22.0 1.22.1 1.22.2 1.22.3 1.23.0 1.23.1 1.23.10 1.23.11 1.23.12 1.23.13 1.23.2 1.23.3 1.23.4 1.23.5 1.23.6 1.23.7 1.23.8 1.23.9 1.24.0 1.24.0.1 1.25.0 1.25.0.1 1.25.1 1.25.1.1 1.25.2 1.25.2.1 1.25.3 1.25.3.1 1.26.0 1.26.0.1 1.26.1 1.26.1.1 1.26.2 1.26.2.1 1.27.0 1.27.0.1 1.28.0 1.28.0.1 1.29.0 1.29.0.1 1.29.1 1.29.1.1 1.29.2 1.29.2.1 1.29.3 1.29.3.1 1.3.0 1.3.1 1.30.0 1.30.0.1 1.30.1 1.30.1.1 1.30.2 1.30.2.1 1.31.0 1.31.0.1 1.31.1 1.31.1.1 1.31.2 1.31.3 1.32.0 1.32.1 1.32.2 1.32.3 1.33.0 1.33.1 1.33.2 1.33.3 1.33.4 1.33.5 1.34.0 1.34.1 1.34.2 1.34.3 1.34.4 1.34.5 1.35.0 1.35.1 1.35.2 1.35.3 1.36.0 1.36.1 1.36.2 1.37.0 1.38.0 1.38.1 1.39.0 1.4.0 1.40.0 1.40.1 1.40.2 1.41.0 1.42.0 1.5.0 1.5.1 1.5.2 1.6.0 1.7.0 1.7.1 1.7.3 1.8.0 1.8.1 1.8.2 1.9.0 1.9.1 1.9.2 1.9.3 2.0.0 2.1.0 2.1.1 2.2.0 2.2.1 2.2.2 2.3.0 2.4.0 2.4.1
wp-job-manager / wp-job-manager-autoload.php
wp-job-manager Last commit date
.githooks 2 weeks ago assets 1 day ago includes 1 day ago languages 1 day ago lib 2 months ago templates 2 weeks ago vendor 1 day ago LICENSE 5 years ago readme.txt 1 day ago release.config.json 2 weeks ago uninstall.php 2 years ago wp-job-manager-autoload.php 2 years ago wp-job-manager-deprecated.php 2 years ago wp-job-manager-functions.php 1 day ago wp-job-manager-template.php 3 months ago wp-job-manager.php 1 day ago wpml-config.xml 2 years ago
wp-job-manager-autoload.php
87 lines
1 <?php
2 /**
3 * Autoload plugin classes.
4 *
5 * @package wp-job-manager
6 */
7
8 if ( ! defined( 'ABSPATH' ) ) {
9 exit;
10 }
11
12 /**
13 * Autoload plugin classes.
14 *
15 * @since 2.3.0
16 */
17 class WP_Job_Manager_Autoload {
18
19 /**
20 * Namespace -> directory mappings.
21 *
22 * @var array
23 */
24 private static $autoload_map = [];
25
26 /**
27 * Add the autoloader.
28 */
29 public static function init() {
30 spl_autoload_register( [ self::class, 'autoload' ] );
31 }
32
33 /**
34 * Register a new plugin with a class prefix and directory to autoload.
35 *
36 * @param string $namespace Root namespace. Should start with WP_Job_Manager_.
37 * @param string $dir Directory to autoload.
38 */
39 public static function register( $namespace, $dir ) {
40 self::$autoload_map[ $namespace ] = $dir;
41 }
42
43 /**
44 * Autoload plugin classes.
45 *
46 * @access private
47 *
48 * @param string $class_name Class name.
49 */
50 public static function autoload( $class_name ) {
51
52 if ( ! str_starts_with( $class_name, 'WP_Job_Manager' ) || ! str_contains( $class_name, '\\' ) ) {
53 return;
54 }
55
56 [ $namespace, $file_name ] = explode( '\\', $class_name, 2 );
57
58 if ( empty( $namespace ) || empty( $file_name ) || empty( self::$autoload_map[ $namespace ] ) ) {
59 return;
60 }
61
62 $root_dir = self::$autoload_map[ $namespace ];
63
64 $file_name = strtolower( $file_name );
65 $dirs = explode( '\\', $file_name );
66 $file_name = array_pop( $dirs );
67 $file_name = str_replace( '_', '-', $file_name );
68
69 $file_dir = implode( '/', [ $root_dir, ...$dirs ] );
70
71 $file_paths = [
72 'class-' . $file_name . '.php',
73 'trait-' . $file_name . '.php',
74 ];
75
76 foreach ( $file_paths as $file_path ) {
77 $file_path = $file_dir . '/' . $file_path;
78 if ( file_exists( $file_path ) ) {
79 require $file_path;
80 return;
81 }
82 }
83
84 }
85
86 }
87