Subversion Repositories php_guestbook

Rev

Blame | Last modification | View Log | RSS feed

  1. <?php
  2.  
  3. /* An autoloader for ReCaptcha\Foo classes. This should be required()
  4.  * by the user before attempting to instantiate any of the ReCaptcha
  5.  * classes.
  6.  */
  7.  
  8. spl_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.