| @@ -41,11 +41,8 @@ | ||
| 41 | 41 | * @see https://www.php-fig.org/psr/psr-4/ |
| 42 | 42 | */ |
| 43 | 43 | class ClassLoader |
| 44 | 44 | { |
| 45 | - /** @var \Closure(string):void */ | |
| 46 | - private static $includeFile; | |
| 47 | - | |
| 48 | 45 | /** @var ?string */ |
| 49 | 46 | private $vendorDir; |
| 50 | 47 | |
| 51 | 48 | // PSR-4 |
| @@ -108,9 +105,8 @@ | ||
| 108 | 105 | */ |
| 109 | 106 | public function __construct($vendorDir = null) |
| 110 | 107 | { |
| 111 | 108 | $this->vendorDir = $vendorDir; |
| 112 | - self::initializeIncludeClosure(); | |
| 113 | 109 | } |
| 114 | 110 | |
| 115 | 111 | /** |
| 116 | 112 | * @return string[] |
| @@ -428,10 +424,9 @@ | ||
| 428 | 424 | */ |
| 429 | 425 | public function loadClass($class) |
| 430 | 426 | { |
| 431 | 427 | if ($file = $this->findFile($class)) { |
| 432 | - $includeFile = self::$includeFile; | |
| 433 | - $includeFile($file); | |
| 428 | + includeFile($file); | |
| 434 | 429 | |
| 435 | 430 | return true; |
| 436 | 431 | } |
| 437 | 432 | |
| @@ -559,27 +554,19 @@ | ||
| 559 | 554 | } |
| 560 | 555 | |
| 561 | 556 | return false; |
| 562 | 557 | } |
| 558 | +} | |
| 563 | 559 | |
| 564 | - /** | |
| 565 | - * @return void | |
| 566 | - */ | |
| 567 | - private static function initializeIncludeClosure() | |
| 568 | - { | |
| 569 | - if (self::$includeFile !== null) { | |
| 570 | - return; | |
| 571 | - } | |
| 572 | - | |
| 573 | - /** | |
| 574 | - * Scope isolated include. | |
| 575 | - * | |
| 576 | - * Prevents access to $this/self from included files. | |
| 577 | - * | |
| 578 | - * @param string $file | |
| 579 | - * @return void | |
| 580 | - */ | |
| 581 | - self::$includeFile = \Closure::bind(static function($file) { | |
| 582 | - include $file; | |
| 583 | - }, null, null); | |
| 584 | - } | |
| 560 | +/** | |
| 561 | + * Scope isolated include. | |
| 562 | + * | |
| 563 | + * Prevents access to $this/self from included files. | |
| 564 | + * | |
| 565 | + * @param string $file | |
| 566 | + * @return void | |
| 567 | + * @private | |
| 568 | + */ | |
| 569 | +function includeFile($file) | |
| 570 | +{ | |
| 571 | + include $file; | |
| 585 | 572 | } |