PATH:
home
/
thebhoeo
/
.trash
/
backwpup
/
vendor
/
composer
<?php namespace WPMedia\BackWPup\Dependencies { use BrianHenryIE\Strauss\Types\AutoloadAliasInterface; /** * @see AutoloadAliasInterface * * @phpstan-type ClassAliasArray array{'type':'class',isabstract:bool,classname:string,namespace?:string,extends:string,implements:array<string>} * @phpstan-type InterfaceAliasArray array{'type':'interface',interfacename:string,namespace?:string,extends:array<string>} * @phpstan-type TraitAliasArray array{'type':'trait',traitname:string,namespace?:string,use:array<string>} * @phpstan-type AutoloadAliasArray array<string,ClassAliasArray|InterfaceAliasArray|TraitAliasArray> */ class AliasAutoloader { private string $includeFilePath; /** * @var AutoloadAliasArray */ private array $autoloadAliases = array ( ); public function __construct() { $this->includeFilePath = __DIR__ . '/autoload_alias.php'; } /** * @param string $class */ public function autoload($class): void { if (!isset($this->autoloadAliases[$class])) { return; } switch ($this->autoloadAliases[$class]['type']) { case 'class': $this->load( $this->classTemplate( $this->autoloadAliases[$class] ) ); break; case 'interface': $this->load( $this->interfaceTemplate( $this->autoloadAliases[$class] ) ); break; case 'trait': $this->load( $this->traitTemplate( $this->autoloadAliases[$class] ) ); break; default: // Never. break; } } private function load(string $includeFile): void { file_put_contents($this->includeFilePath, $includeFile); include $this->includeFilePath; file_exists($this->includeFilePath) && unlink($this->includeFilePath); } /** * @param ClassAliasArray $class */ private function classTemplate(array $class): string { $abstract = $class['isabstract'] ? 'abstract ' : ''; $classname = $class['classname']; if (isset($class['namespace'])) { $namespace = "namespace {$class['namespace']};"; $extends = '\\' . $class['extends']; $implements = empty($class['implements']) ? '' : ' implements \\' . implode(', \\', $class['implements']); } else { $namespace = ''; $extends = $class['extends']; $implements = !empty($class['implements']) ? '' : ' implements ' . implode(', ', $class['implements']); } return <<<EOD <?php $namespace $abstract class $classname extends $extends $implements {} EOD; } /** * @param InterfaceAliasArray $interface */ private function interfaceTemplate(array $interface): string { $interfacename = $interface['interfacename']; $namespace = isset($interface['namespace']) ? "namespace {$interface['namespace']};" : ''; $extends = isset($interface['namespace']) ? '\\' . implode('\\ ,', $interface['extends']) : implode(', ', $interface['extends']); return <<<EOD <?php $namespace interface $interfacename extends $extends {} EOD; } /** * @param TraitAliasArray $trait */ private function traitTemplate(array $trait): string { $traitname = $trait['traitname']; $namespace = isset($trait['namespace']) ? "namespace {$trait['namespace']};" : ''; $uses = isset($trait['namespace']) ? '\\' . implode(';' . PHP_EOL . ' use \\', $trait['use']) : implode(';' . PHP_EOL . ' use ', $trait['use']); return <<<EOD <?php $namespace trait $traitname { use $uses; } EOD; } } spl_autoload_register([ new AliasAutoloader(), 'autoload' ]); }
[-] autoload_static.php
[edit]
[-] InstalledVersions.php
[edit]
[-] include_paths.php
[edit]
[-] autoload_namespaces.php
[edit]
[-] platform_check.php
[edit]
[-] autoload_psr4.php
[edit]
[-] installed.json
[edit]
[-] autoload_classmap.php
[edit]
[-] ClassLoader.php
[edit]
[-] autoload_real.php
[edit]
[-] autoload_aliases.php
[edit]
[+]
..
[-] installed.php
[edit]
[-] autoload_files.php
[edit]
[-] LICENSE
[edit]