为了账号安全,请及时绑定邮箱和手机立即绑定

EngineResolver.php

标签:
PHP

<?php

 

namespace 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

}

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消