Your IP : 3.15.226.174


Current Path : /home/church/www/blackfounderssummit.com/wp-content/plugins/wp-event-solution/
Upload File :
Current File : /home/church/www/blackfounderssummit.com/wp-content/plugins/wp-event-solution/autoloader.php

<?php

namespace Etn;

defined( 'ABSPATH' ) || exit;

/**
 * Etn autoloader.
 * Handles dynamically loading classes only when needed.
 *
 * @since 1.0.0
 */
class Autoloader {
	/**
	 * Run autoloader.
	 * Register a function as `__autoload()` implementation.
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public static function run() {
		spl_autoload_register( array( __CLASS__, 'autoload' ) );
	}

	/**
	 * Autoload.
	 * For a given class, check if it exist and load it.
	 *
	 * @since 1.0.0
	 * @access private
	 * @param string $class_name Class name.
	 */
	private static function autoload( $class_name ) {

		// If the class being requested does not start with our prefix
		// we know it's not one in our project.
		if ( 0 !== strpos( $class_name, __NAMESPACE__ ) ) {
			return;
		}

		$file_name = strtolower(
			preg_replace(
				array( '/\b' . __NAMESPACE__ . '\\\/', '/([a-z])([A-Z])/', '/_/', '/\\\/' ),
				array( '', '$1-$2', '-', DIRECTORY_SEPARATOR ),
				$class_name
			)
		);

		// Compile our path from the corosponding location.
		$file = plugin_dir_path( __FILE__ ) . $file_name . '.php';

		// If a file is found.
		if ( file_exists( $file ) ) {
			// Then load it up!
			require_once $file;
		}

	}

}