%PDF- %PDF-
Direktori : /home/silvzytp/ccd-ind-code/vendor/laravel/framework/src/Illuminate/Foundation/ |
Current File : //home/silvzytp/ccd-ind-code/vendor/laravel/framework/src/Illuminate/Foundation/AliasLoader.php |
<?php namespace Illuminate\Foundation; class AliasLoader { /** * The array of class aliases. * * @var array */ protected $aliases; /** * Indicates if a loader has been registered. * * @var bool */ protected $registered = false; /** * The namespace for all real-time facades. * * @var string */ protected static $facadeNamespace = 'Facades\\'; /** * The singleton instance of the loader. * * @var \Illuminate\Foundation\AliasLoader */ protected static $instance; /** * Create a new AliasLoader instance. * * @param array $aliases * @return void */ private function __construct($aliases) { $this->aliases = $aliases; } /** * Get or create the singleton alias loader instance. * * @param array $aliases * @return \Illuminate\Foundation\AliasLoader */ public static function getInstance(array $aliases = []) { if (is_null(static::$instance)) { return static::$instance = new static($aliases); } $aliases = array_merge(static::$instance->getAliases(), $aliases); static::$instance->setAliases($aliases); return static::$instance; } /** * Load a class alias if it is registered. * * @param string $alias * @return bool|null */ public function load($alias) { if (static::$facadeNamespace && str_starts_with($alias, static::$facadeNamespace)) { $this->loadFacade($alias); return true; } if (isset($this->aliases[$alias])) { return class_alias($this->aliases[$alias], $alias); } } /** * Load a real-time facade for the given alias. * * @param string $alias * @return void */ protected function loadFacade($alias) { require $this->ensureFacadeExists($alias); } /** * Ensure that the given alias has an existing real-time facade class. * * @param string $alias * @return string */ protected function ensureFacadeExists($alias) { if (is_file($path = storage_path('framework/cache/facade-'.sha1($alias).'.php'))) { return $path; } file_put_contents($path, $this->formatFacadeStub( $alias, file_get_contents(__DIR__.'/stubs/facade.stub') )); return $path; } /** * Format the facade stub with the proper namespace and class. * * @param string $alias * @param string $stub * @return string */ protected function formatFacadeStub($alias, $stub) { $replacements = [ str_replace('/', '\\', dirname(str_replace('\\', '/', $alias))), class_basename($alias), substr($alias, strlen(static::$facadeNamespace)), ]; return str_replace( ['DummyNamespace', 'DummyClass', 'DummyTarget'], $replacements, $stub ); } /** * Add an alias to the loader. * * @param string $alias * @param string $class * @return void */ public function alias($alias, $class) { $this->aliases[$alias] = $class; } /** * Register the loader on the auto-loader stack. * * @return void */ public function register() { if (! $this->registered) { $this->prependToLoaderStack(); $this->registered = true; } } /** * Prepend the load method to the auto-loader stack. * * @return void */ protected function prependToLoaderStack() { spl_autoload_register([$this, 'load'], true, true); } /** * Get the registered aliases. * * @return array */ public function getAliases() { return $this->aliases; } /** * Set the registered aliases. * * @param array $aliases * @return void */ public function setAliases(array $aliases) { $this->aliases = $aliases; } /** * Indicates if the loader has been registered. * * @return bool */ public function isRegistered() { return $this->registered; } /** * Set the "registered" state of the loader. * * @param bool $value * @return void */ public function setRegistered($value) { $this->registered = $value; } /** * Set the real-time facade namespace. * * @param string $namespace * @return void */ public static function setFacadeNamespace($namespace) { static::$facadeNamespace = rtrim($namespace, '\\').'\\'; } /** * Set the value of the singleton alias loader. * * @param \Illuminate\Foundation\AliasLoader $loader * @return void */ public static function setInstance($loader) { static::$instance = $loader; } /** * Clone method. * * @return void */ private function __clone() { // } }