Vendor lock
This commit is contained in:
60
vendor/illuminate/view/Engines/EngineResolver.php
vendored
Executable file
60
vendor/illuminate/view/Engines/EngineResolver.php
vendored
Executable file
@ -0,0 +1,60 @@
|
||||
<?php
|
||||
|
||||
namespace Illuminate\View\Engines;
|
||||
|
||||
use Closure;
|
||||
use InvalidArgumentException;
|
||||
|
||||
class EngineResolver
|
||||
{
|
||||
/**
|
||||
* The array of engine resolvers.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $resolvers = [];
|
||||
|
||||
/**
|
||||
* The resolved engine instances.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $resolved = [];
|
||||
|
||||
/**
|
||||
* Register a new engine resolver.
|
||||
*
|
||||
* The engine string typically corresponds to a file extension.
|
||||
*
|
||||
* @param string $engine
|
||||
* @param \Closure $resolver
|
||||
* @return void
|
||||
*/
|
||||
public function register($engine, Closure $resolver)
|
||||
{
|
||||
unset($this->resolved[$engine]);
|
||||
|
||||
$this->resolvers[$engine] = $resolver;
|
||||
}
|
||||
|
||||
/**
|
||||
* Resolve an engine instance by name.
|
||||
*
|
||||
* @param string $engine
|
||||
* @return \Illuminate\Contracts\View\Engine
|
||||
*
|
||||
* @throws \InvalidArgumentException
|
||||
*/
|
||||
public function resolve($engine)
|
||||
{
|
||||
if (isset($this->resolved[$engine])) {
|
||||
return $this->resolved[$engine];
|
||||
}
|
||||
|
||||
if (isset($this->resolvers[$engine])) {
|
||||
return $this->resolved[$engine] = call_user_func($this->resolvers[$engine]);
|
||||
}
|
||||
|
||||
throw new InvalidArgumentException("Engine [{$engine}] not found.");
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user