PHP
- 4 ответа
- 0 вопросов
2
Вклад в тег
<?php
use Composer\Autoload\ClassLoader;
use function Composer\Autoload\includeFile;
if (file_exists($composerAutoloaderPath = __DIR__ . '/../../../autoload.php')) {
$patchedLoader = new class(require $composerAutoloaderPath) {
private $loader;
public function __construct(ClassLoader $loader)
{
$loader->unregister();
$this->loader = $loader;
}
public function register($prepend = false): void
{
spl_autoload_register([$this, 'loadClass'], true, $prepend);
}
public function unregister(): void
{
spl_autoload_unregister([$this, 'loadClass']);
}
/**
* Loads the given class or interface.
* @param string $class The name of the class
* @return bool True if loaded, null otherwise
*/
public function loadClass($class): bool
{
if ($file = $this->loader->findFile($class)) {
includeFile($file);
// дополнительные патчи здесь
return true;
}
return false;
}
};
$patchedLoader->register(true);
}
Этот вопрос ты можешь адресовать разработчикам пакетов которые я подключаю в своем проекте.