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

PhpEngine.php

标签:
PHP

<?php

 

namespace Illuminate\View\Engines;

 

use Exception;

use Throwable;

use Symfony\Component\Debug\Exception\FatalThrowableError;

 

class PhpEngine implements EngineInterface

{// PhpEngine implements EngineInterface

    /**

     * Get the evaluated contents of the view.

     *

     * @param  string  $path

     * @param  array   $data

     * @return string

     */

    public function get($path, array $data = [])

    {

        return $this->evaluatePath($path, $data);

    }// get the evaluated contents of the view.

   // evaluate Path

 

    /**

     * Get the evaluated contents of the view at the given path.

     *

     * @param  string  $__path

     * @param  array   $__data

     * @return string

     */

    protected function evaluatePath($__path, $__data)

    {// Get the evaluated contents of the view at the given path

        $obLevel = ob_get_level();// get this ob level

 

        ob_start();// start ob

 

        extract($__data, EXTR_SKIP);// get this data

 

        // We'll evaluate the contents of the view inside a try/catch block so we can

        // flush out any stray output that might get out before an error occurs or

        // an exception is thrown. This prevents any partial views from leaking.

        try {

            include $__path;// try get this file

        } catch (Exception $e) {

            $this->handleViewException($e, $obLevel);// handle

        } catch (Throwable $e) {

            $this->handleViewException(new FatalThrowableError($e), $obLevel);// handle

        }// we'll evaluate the contents of the view inside a try/catch block so we can

       // flush out any stray output that might get out before an error occurs or

       // an exception is thrown. this prevents any partial view from leaking.

 

        return ltrim(ob_get_clean());

    }

 

    /**

     * Handle a view exception.

     *

     * @param  \Exception  $e

     * @param  int  $obLevel

     * @return void

     *

     * @throws $e

     */

    protected function handleViewException(Exception $e, $obLevel)

    {

        while (ob_get_level() > $obLevel) {

            ob_end_clean();

        }// clean ever thing

 

        throw $e;// throw $e

    }//Handle a view exception.

}

点击查看更多内容
TA 点赞

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

评论

作者其他优质文章

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

100积分直接送

付费专栏免费学

大额优惠券免费领

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

举报

0/150
提交
取消