[李景山php]每天laravel-20161106|EngineResolver.php

来源:互联网 发布:flash 9插件 for mac 编辑:程序博客网 时间:2024/06/04 21:19
<?phpnamespace Illuminate\View\Engines;use Closure;use InvalidArgumentException;class EngineResolver{// engineResolver    /**     * The array of engine resolvers.     *     * @var array     */    protected $resolvers = [];// The array of engine resolvers.    /**     * The resolved engine instances.     *     * @var array     */    protected $resolved = [];// The resolved engine instances.    /**     * 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]);// first to unset it        $this->resolvers[$engine] = $resolver;// set it    }// Register a new engine resolver.    // change the new register    /**     * Resolver an engine instance by name.     *     * @param  string  $engine     * @return \Illuminate\View\Engines\EngineInterface     * @throws \InvalidArgumentException     */    public function resolve($engine)    {// resolver an engine instance by name.        if (isset($this->resolved[$engine])) {            return $this->resolved[$engine];        }// isset resolved        if (isset($this->resolvers[$engine])) {            return $this->resolved[$engine] = call_user_func($this->resolvers[$engine]);        }// isset resolvers        // call_user_func has been used        throw new InvalidArgumentException("Engine $engine not found.");    }// throw new exception}
0 0