1<?php
2
3/* An autoloader for ReCaptcha\Foo classes. This should be require()d
4 * by the user before attempting to instantiate any of the ReCaptcha
5 * classes.
6 */
7
8spl_autoload_register(function ($class) {
9    if (substr($class, 0, 10) !== 'ReCaptcha\\') {
10      /* If the class does not lie under the "ReCaptcha" namespace,
11       * then we can exit immediately.
12       */
13      return;
14    }
15
16    /* All of the classes have names like "ReCaptcha\Foo", so we need
17     * to replace the backslashes with frontslashes if we want the
18     * name to map directly to a location in the filesystem.
19     */
20    $class = str_replace('\\', '/', $class);
21
22    /* First, check under the current directory. It is important that
23     * we look here first, so that we don't waste time searching for
24     * test classes in the common case.
25     */
26    $path = dirname(__FILE__).'/'.$class.'.php';
27    if (is_readable($path)) {
28        require_once $path;
29    }
30
31    /* If we didn't find what we're looking for already, maybe it's
32     * a test class?
33     */
34    $path = dirname(__FILE__).'/../tests/'.$class.'.php';
35    if (is_readable($path)) {
36        require_once $path;
37    }
38});
39