Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
2 | daniel-mar | 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 | }); |