<?php 
 
/* An autoloader for ReCaptcha\Foo classes. This should be required() 
 * by the user before attempting to instantiate any of the ReCaptcha 
 * classes. 
 * 
 * BSD 3-Clause License 
 * @copyright (c) 2019, Google Inc. 
 * @link https://www.google.com/recaptcha 
 * All rights reserved. 
 * 
 * Redistribution and use in source and binary forms, with or without 
 * modification, are permitted provided that the following conditions are met: 
 * 1. Redistributions of source code must retain the above copyright notice, this 
 *    list of conditions and the following disclaimer. 
 * 
 * 2. Redistributions in binary form must reproduce the above copyright notice, 
 *    this list of conditions and the following disclaimer in the documentation 
 *    and/or other materials provided with the distribution. 
 * 
 * 3. Neither the name of the copyright holder nor the names of its 
 *    contributors may be used to endorse or promote products derived from 
 *    this software without specific prior written permission. 
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
 */ 
 
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; 
    } 
}); 
 
 |