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

Factory.php

标签:
PHP

<?php

 

namespace Illuminate\View;

 

use Closure;

use Illuminate\Support\Arr;

use Illuminate\Support\Str;

use InvalidArgumentException;

use Illuminate\Contracts\Support\Arrayable;

use Illuminate\View\Engines\EngineResolver;

use Illuminate\Contracts\Events\Dispatcher;

use Illuminate\Contracts\Container\Container;

use Illuminate\Contracts\View\Factory as FactoryContract;

// super cool namespace

class Factory implements FactoryContract

{// factory implements the Factory Contract

    /**

     * The engine implementation.

     *

     * @var \Illuminate\View\Engines\EngineResolver

     */

    protected $engines;// The engine implementation

 

    /**

     * The view finder implementation.

     *

     * @var \Illuminate\View\ViewFinderInterface

     */

    protected $finder;//The view finder implementation,this protected

 

    /**

     * The event dispatcher instance.

     *

     * @var \Illuminate\Contracts\Events\Dispatcher

     */

    protected $events;// the event dispatcher instance

 

    /**

     * The IoC container instance.

     *

     * @var \Illuminate\Contracts\Container\Container

     */

    protected $container;//The IoC container instance

 

    /**

     * Data that should be available to all templates.

     *

     * @var array

     */

    protected $shared = [];//Data that should be available to all templates.

   // this mind may be too expensive

 

    /**

     * Array of registered view name aliases.

     *

     * @var array

     */

    protected $aliases = [];// array of registered view name aliases.

 

    /**

     * All of the registered view names.

     *

     * @var array

     */

    protected $names = [];//all of the registered view names.

 

    /**

     * The extension to engine bindings.

     *

     * @var array

     */

    protected $extensions = ['blade.php' => 'blade', 'php' => 'php'];

   // The extension to engine bindings.

 

    /**

     * The view composer events.

     *

     * @var array

     */

    protected $composers = [];//The view composer events

 

    /**

     * All of the finished, captured sections.

     *

     * @var array

     */

    protected $sections = [];//All of the finished, captured sections

 

    /**

     * The stack of in-progress sections.

     *

     * @var array

     */

    protected $sectionStack = [];//The stack of in-progress sections.

 

    /**

     * The number of active rendering operations.

     *

     * @var int

     */

    protected $renderCount = 0;// The number of active rendering operations.

 

    /**

     * Create a new view factory instance.

     *

     * @param  \Illuminate\View\Engines\EngineResolver  $engines

     * @param  \Illuminate\View\ViewFinderInterface  $finder

     * @param  \Illuminate\Contracts\Events\Dispatcher  $events

     * @return void

     */

    public function __construct(EngineResolver $engines, ViewFinderInterface $finder, Dispatcher $events)

    {// create a new view factory instance.

        $this->finder = $finder;

        $this->events = $events;

        $this->engines = $engines;// get this engines

 

        $this->share('__env', $this);

    }//share env

 

    /**

     * Get the evaluated view contents for the given view.

     *

     * @param  string  $path

     * @param  array   $data

     * @param  array   $mergeData

     * @return \Illuminate\Contracts\View\View

     */

    public function file($path, $data = [], $mergeData = [])

    {// get the data

        $data = array_merge($mergeData, $this->parseData($data));

// array_merge

        $this->callCreator($view = new View($this, $this->getEngineFromPath($path), $path, $path, $data));

// callCreator

        return $view;

    }// Get the evaluated view contents for the given view.

点击查看更多内容
TA 点赞

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

评论

作者其他优质文章

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

100积分直接送

付费专栏免费学

大额优惠券免费领

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

举报

0/150
提交
取消