<?php
/**
 * An autoloader for ReCaptcha\Foo classes. This should be required()
 * by the user before attempting to instantiate any of the ReCaptcha
 * classes.
 *
 * @ignore
 * @codingStandardsIgnoreFile
 */

spl_autoload_register(
	function ( $class ) {
		if ( substr( $class, 0, 10 ) !== 'ReCaptcha\\' ) {
			/*
			If the class does not lie under the "ReCaptcha" namespace,
			* then we can exit immediately.
			*/
			return;
		}

		/*
		All of the classes have names like "ReCaptcha\Foo", so we need
		* to replace the backslashes with frontslashes if we want the
		* name to map directly to a location in the filesystem.
		*/
		$class = str_replace( '\\', '/', $class );

		/*
		First, check under the current directory. It is important that
		* we look here first, so that we don't waste time searching for
		* test classes in the common case.
		*/
		$path = dirname( __FILE__ ) . '/' . $class . '.php';
		if ( is_readable( $path ) ) {
			require_once $path;
		}

		/*
		If we didn't find what we're looking for already, maybe it's
		* a test class?
		*/
		$path = dirname( __FILE__ ) . '/../tests/' . $class . '.php';
		if ( is_readable( $path ) ) {
			require_once $path;
		}
	}
);
