Paul Yang | ecca6ea | 2017-06-30 12:14:09 -0700 | [diff] [blame] | 1 | <?php |
| 2 | |
| 3 | define("GOOGLE_INTERNAL_NAMESPACE", "Google\\Protobuf\\Internal\\"); |
| 4 | define("GOOGLE_NAMESPACE", "Google\\Protobuf\\"); |
Paul Yang | bcda919 | 2017-11-03 12:30:09 -0700 | [diff] [blame] | 5 | define("GOOGLE_GPBMETADATA_NAMESPACE", "GPBMetadata\\Google\\Protobuf\\"); |
Paul Yang | ecca6ea | 2017-06-30 12:14:09 -0700 | [diff] [blame] | 6 | |
| 7 | function protobuf_autoloader_impl($class, $prefix) { |
| 8 | $length = strlen($prefix); |
| 9 | if ((substr($class, 0, $length) === $prefix)) { |
| 10 | $path = '../php/src/' . implode('/', array_map('ucwords', explode('\\', $class))) . '.php'; |
| 11 | include_once $path; |
| 12 | } |
| 13 | } |
| 14 | |
| 15 | function protobuf_autoloader($class) { |
| 16 | protobuf_autoloader_impl($class, GOOGLE_INTERNAL_NAMESPACE); |
| 17 | protobuf_autoloader_impl($class, GOOGLE_NAMESPACE); |
| 18 | protobuf_autoloader_impl($class, GOOGLE_GPBMETADATA_NAMESPACE); |
| 19 | } |
| 20 | |
| 21 | spl_autoload_register('protobuf_autoloader'); |