<?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.
[李景山php]每天laravel-20161110|Factory.php
原创
©著作权归作者所有:来自51CTO博客作者lijingsan1的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章