You are here

autoload.php in reCAPTCHA 8.2

Same filename and directory in other branches
  1. 6.2 recaptcha-php/src/autoload.php
  2. 7.2 recaptcha-php/src/autoload.php

File

recaptcha-php/src/autoload.php
View source
<?php

/* An autoloader for ReCaptcha\Foo classes. This should be required()
 * by the user before attempting to instantiate any of the ReCaptcha
 * classes.
 */
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;
    return;
  }

  /* 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;
  }
});