PluginProbe ʕ •ᴥ•ʔ
WP Job Manager / 2.4.6
WP Job Manager v2.4.6
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 1 week ago assets 1 week ago includes 1 week ago languages 1 week ago lib 2 months ago templates 1 week ago vendor 1 week ago LICENSE 5 years ago readme.txt 5 days ago release.config.json 1 week 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 week ago wp-job-manager-template.php 3 months ago wp-job-manager.php 1 week 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