annotate default/assets/vendors/theme-widgets/vendor/abraham/twitteroauth/autoload.php @ 0:1d038bc9b3d2 default tip

Up:default
author Liny <dev@neowd.com>
date Sat, 31 May 2025 09:21:51 +0800
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
1 <?php
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
2
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
3 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
4 * Use to autoload needed classes without Composer.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
5 *
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
6 * @param string $class The fully-qualified class name.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
7 * @return void
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
8 */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
9 spl_autoload_register(function ($class) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
10
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
11 // project-specific namespace prefix
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
12 $prefix = 'Abraham\\TwitterOAuth\\';
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
13
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
14 // base directory for the namespace prefix
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
15 $base_dir = __DIR__ . '/src/';
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
16
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
17 // does the class use the namespace prefix?
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
18 $len = strlen($prefix);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
19 if (strncmp($prefix, $class, $len) !== 0) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
20 // no, move to the next registered autoloader
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
21 return;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
22 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
23
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
24 // get the relative class name
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
25 $relative_class = substr($class, $len);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
26
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
27 // replace the namespace prefix with the base directory, replace namespace
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
28 // separators with directory separators in the relative class name, append
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
29 // with .php
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
30 $file = $base_dir . str_replace('\\', '/', $relative_class) . '.php';
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
31
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
32 // if the file exists, require it
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
33 if (file_exists($file)) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
34 require $file;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
35 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
36 });