# timetics/1.0.20/autoloader.php

Timetics – Appointment Booking Calendar &amp; Scheduling, version 1.0.20. 62 lines.

- Page: https://pluginprobe.com/plugins/timetics/1.0.20/code/autoloader.php
- Raw: https://pluginprobe.com/plugins/timetics/1.0.20/raw/autoloader.php
- Modified: 2024-03-11T08:58:34+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/timetics/1.0.20/code/autoloader.php#L10-L20`.

```php
<?php

namespace Timetics;

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;
		}
	}

}

Autoloader::run();

```
