class Factory implements Factory (View source)

Traits

Properties

static protected array $macros

The registered string macros.

from  Macroable
protected array $componentStack

The components being rendered.

from  ManagesComponents
protected array $componentData

The original data passed to the component.

from  ManagesComponents
protected array $currentComponentData

The component data for the component that is currently being rendered.

from  ManagesComponents
protected array $slots

The slot contents for the component.

from  ManagesComponents
protected array $slotStack

The names of the slots being rendered.

from  ManagesComponents
protected array $sections

All of the finished, captured sections.

from  ManagesLayouts
protected array $sectionStack

The stack of in-progress sections.

from  ManagesLayouts
static protected mixed $parentPlaceholder

The parent placeholder for the request.

from  ManagesLayouts
static protected string $parentPlaceholderSalt

The parent placeholder salt for the request.

from  ManagesLayouts
protected array $loopsStack

The stack of in-progress loops.

from  ManagesLoops
protected array $pushes

All of the finished, captured push sections.

from  ManagesStacks
protected array $prepends

All of the finished, captured prepend sections.

from  ManagesStacks
protected array $pushStack

The stack of in-progress push sections.

from  ManagesStacks
protected array $translationReplacements

The translation replacements for the translation being rendered.

from  ManagesTranslations
protected EngineResolver $engines

The engine implementation.

protected ViewFinderInterface $finder

The view finder implementation.

protected Dispatcher $events

The event dispatcher instance.

protected Container $container

The IoC container instance.

protected array $shared

Data that should be available to all templates.

protected array $extensions

The extension to engine bindings.

protected array $composers

The view composer events.

protected int $renderCount

The number of active rendering operations.

protected array $renderedOnce

The "once" block IDs that have been rendered.

Methods

static void
macro(string $name, object|callable $macro)

Register a custom macro.

static void
mixin(object $mixin, bool $replace = true)

Mix another object into the class.

static bool
hasMacro(string $name)

Checks if macro is registered.

static void
flushMacros()

Flush the existing macros.

static mixed
__callStatic(string $method, array $parameters)

Dynamically handle calls to the class.

mixed
__call(string $method, array $parameters)

Dynamically handle calls to the class.

void
startComponent(View|Htmlable|Closure|string $view, array $data = [])

Start a component rendering process.

void
startComponentFirst(array $names, array $data = [])

Get the first view that actually exists from the given list, and start a component.

string
renderComponent()

Render the current component.

array
componentData()

Get the data for the given component.

mixed|null
getConsumableComponentData(string $key, mixed $default = null)

Get an item from the component data that exists above the current component.

void
slot(string $name, string|null $content = null, array $attributes = [])

Start the slot rendering process.

void
endSlot()

Save the slot content for rendering.

int
currentComponent()

Get the index for the current component.

void
flushComponents()

Flush all of the component state.

array
creator(array|string $views, Closure|string $callback)

Register a view creator event.

array
composers(array $composers)

Register multiple view composers via an array.

array
composer(array|string $views, Closure|string $callback)

Register a view composer event.

Closure|null
addViewEvent(string $view, Closure|string $callback, string $prefix = 'composing: ')

Add an event for a given view.

addClassEvent(string $view, string $class, string $prefix)

Register a class based view composer.

buildClassEventCallback(string $class, string $prefix)

Build a class based container callback Closure.

array
parseClassEvent(string $class, string $prefix)

Parse a class based composer name.

string
classEventMethodForPrefix(string $prefix)

Determine the class event method based on the given prefix.

void
addEventListener(string $name, Closure $callback)

Add a listener to the event dispatcher.

void
callComposer(View $view)

Call the composer for a given view.

void
callCreator(View $view)

Call the creator for a given view.

void
startSection(string $section, string|null $content = null)

Start injecting content into a section.

void
inject(string $section, string $content)

Inject inline content into a section.

string
yieldSection()

Stop injecting content into a section and return its contents.

string
stopSection(bool $overwrite = false)

Stop injecting content into a section.

string
appendSection()

Stop injecting content into a section and append it.

void
extendSection(string $section, string $content)

Append content to a given section.

string
yieldContent(string $section, string $default = '')

Get the string contents of a section.

static string
parentPlaceholder(string $section = '')

Get the parent placeholder for the current request.

static string
parentPlaceholderSalt()

Get the parent placeholder salt.

bool
hasSection(string $name)

Check if section exists.

bool
sectionMissing(string $name)

Check if section does not exist.

mixed
getSection(string $name, string|null $default = null)

Get the contents of a section.

array
getSections()

Get the entire array of sections.

void
flushSections()

Flush all of the sections.

void
addLoop(Countable|array $data)

Add new loop to the stack.

void
incrementLoopIndices()

Increment the top loop's indices.

void
popLoop()

Pop a loop from the top of the loop stack.

stdClass|null
getLastLoop()

Get an instance of the last loop in the stack.

array
getLoopStack()

Get the entire loop stack.

void
startPush(string $section, string $content = '')

Start injecting content into a push section.

string
stopPush()

Stop injecting content into a push section.

void
extendPush(string $section, string $content)

Append content to a given push section.

void
startPrepend(string $section, string $content = '')

Start prepending content into a push section.

string
stopPrepend()

Stop prepending content into a push section.

void
extendPrepend(string $section, string $content)

Prepend content to a given stack.

string
yieldPushContent(string $section, string $default = '')

Get the string contents of a push section.

void
flushStacks()

Flush all of the stacks.

void
startTranslation(array $replacements = [])

Start a translation block.

string
renderTranslation()

Render the current translation.

void
__construct(EngineResolver $engines, ViewFinderInterface $finder, Dispatcher $events)

Create a new view factory instance.

file(string $path, Arrayable|array $data = [], array $mergeData = [])

Get the evaluated view contents for the given view.

make(string $view, Arrayable|array $data = [], array $mergeData = [])

Get the evaluated view contents for the given view.

first(array $views, Arrayable|array $data = [], array $mergeData = [])

Get the first view that actually exists from the given list.

string
renderWhen(bool $condition, string $view, Arrayable|array $data = [], array $mergeData = [])

Get the rendered content of the view based on a given condition.

string
renderUnless(bool $condition, string $view, Arrayable|array $data = [], array $mergeData = [])

Get the rendered content of the view based on the negation of a given condition.

string
renderEach(string $view, array $data, string $iterator, string $empty = 'raw|')

Get the rendered contents of a partial from a loop.

string
normalizeName(string $name)

Normalize a view name.

array
parseData(mixed $data)

Parse the given data into a raw array.

viewInstance(string $view, string $path, Arrayable|array $data)

Create a new view instance from the given arguments.

bool
exists(string $view)

Determine if a given view exists.

getEngineFromPath(string $path)

Get the appropriate view engine for the given path.

string|null
getExtension(string $path)

Get the extension used by the view file.

mixed
share(array|string $key, mixed $value = null)

Add a piece of shared data to the environment.

void
incrementRender()

Increment the rendering counter.

void
decrementRender()

Decrement the rendering counter.

bool
doneRendering()

Check if there are no active render operations.

bool
hasRenderedOnce(string $id)

Determine if the given once token has been rendered.

void
markAsRenderedOnce(string $id)

Mark the given once token as having been rendered.

void
addLocation(string $location)

Add a location to the array of view locations.

$this
addNamespace(string $namespace, string|array $hints)

Add a new namespace to the loader.

$this
prependNamespace(string $namespace, string|array $hints)

Prepend a new namespace to the loader.

$this
replaceNamespace(string $namespace, string|array $hints)

Replace the namespace hints for the given namespace.

void
addExtension(string $extension, string $engine, Closure|null $resolver = null)

Register a valid view extension and its engine.

void
flushState()

Flush all of the factory state like sections and stacks.

void
flushStateIfDoneRendering()

Flush all of the section contents if done rendering.

array
getExtensions()

Get the extension to engine bindings.

getEngineResolver()

Get the engine resolver instance.

getFinder()

Get the view finder instance.

void
setFinder(ViewFinderInterface $finder)

Set the view finder instance.

void
flushFinderCache()

Flush the cache of views located by the finder.

getDispatcher()

Get the event dispatcher instance.

void
setDispatcher(Dispatcher $events)

Set the event dispatcher instance.

getContainer()

Get the IoC container instance.

void
setContainer(Container $container)

Set the IoC container instance.

mixed
shared(string $key, mixed $default = null)

Get an item from the shared data.

array
getShared()

Get all of the shared data for the environment.

Details

static void macro(string $name, object|callable $macro)

Register a custom macro.

Parameters

string $name
object|callable $macro

Return Value

void

static void mixin(object $mixin, bool $replace = true)

Mix another object into the class.

Parameters

object $mixin
bool $replace

Return Value

void

Exceptions

ReflectionException

static bool hasMacro(string $name)

Checks if macro is registered.

Parameters

string $name

Return Value

bool

static void flushMacros()

Flush the existing macros.

Return Value

void

static mixed __callStatic(string $method, array $parameters)

Dynamically handle calls to the class.

Parameters

string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

mixed __call(string $method, array $parameters)

Dynamically handle calls to the class.

Parameters

string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

void startComponent(View|Htmlable|Closure|string $view, array $data = [])

Start a component rendering process.

Parameters

View|Htmlable|Closure|string $view
array $data

Return Value

void

void startComponentFirst(array $names, array $data = [])

Get the first view that actually exists from the given list, and start a component.

Parameters

array $names
array $data

Return Value

void

string renderComponent()

Render the current component.

Return Value

string

protected array componentData()

Get the data for the given component.

Return Value

array

mixed|null getConsumableComponentData(string $key, mixed $default = null)

Get an item from the component data that exists above the current component.

Parameters

string $key
mixed $default

Return Value

mixed|null

void slot(string $name, string|null $content = null, array $attributes = [])

Start the slot rendering process.

Parameters

string $name
string|null $content
array $attributes

Return Value

void

void endSlot()

Save the slot content for rendering.

Return Value

void

protected int currentComponent()

Get the index for the current component.

Return Value

int

protected void flushComponents()

Flush all of the component state.

Return Value

void

array creator(array|string $views, Closure|string $callback)

Register a view creator event.

Parameters

array|string $views
Closure|string $callback

Return Value

array

array composers(array $composers)

Register multiple view composers via an array.

Parameters

array $composers

Return Value

array

array composer(array|string $views, Closure|string $callback)

Register a view composer event.

Parameters

array|string $views
Closure|string $callback

Return Value

array

protected Closure|null addViewEvent(string $view, Closure|string $callback, string $prefix = 'composing: ')

Add an event for a given view.

Parameters

string $view
Closure|string $callback
string $prefix

Return Value

Closure|null

protected Closure addClassEvent(string $view, string $class, string $prefix)

Register a class based view composer.

Parameters

string $view
string $class
string $prefix

Return Value

Closure

protected Closure buildClassEventCallback(string $class, string $prefix)

Build a class based container callback Closure.

Parameters

string $class
string $prefix

Return Value

Closure

protected array parseClassEvent(string $class, string $prefix)

Parse a class based composer name.

Parameters

string $class
string $prefix

Return Value

array

protected string classEventMethodForPrefix(string $prefix)

Determine the class event method based on the given prefix.

Parameters

string $prefix

Return Value

string

protected void addEventListener(string $name, Closure $callback)

Add a listener to the event dispatcher.

Parameters

string $name
Closure $callback

Return Value

void

void callComposer(View $view)

Call the composer for a given view.

Parameters

View $view

Return Value

void

void callCreator(View $view)

Call the creator for a given view.

Parameters

View $view

Return Value

void

void startSection(string $section, string|null $content = null)

Start injecting content into a section.

Parameters

string $section
string|null $content

Return Value

void

void inject(string $section, string $content)

Inject inline content into a section.

Parameters

string $section
string $content

Return Value

void

string yieldSection()

Stop injecting content into a section and return its contents.

Return Value

string

string stopSection(bool $overwrite = false)

Stop injecting content into a section.

Parameters

bool $overwrite

Return Value

string

Exceptions

InvalidArgumentException

string appendSection()

Stop injecting content into a section and append it.

Return Value

string

Exceptions

InvalidArgumentException

protected void extendSection(string $section, string $content)

Append content to a given section.

Parameters

string $section
string $content

Return Value

void

string yieldContent(string $section, string $default = '')

Get the string contents of a section.

Parameters

string $section
string $default

Return Value

string

static string parentPlaceholder(string $section = '')

Get the parent placeholder for the current request.

Parameters

string $section

Return Value

string

static protected string parentPlaceholderSalt()

Get the parent placeholder salt.

Return Value

string

bool hasSection(string $name)

Check if section exists.

Parameters

string $name

Return Value

bool

bool sectionMissing(string $name)

Check if section does not exist.

Parameters

string $name

Return Value

bool

mixed getSection(string $name, string|null $default = null)

Get the contents of a section.

Parameters

string $name
string|null $default

Return Value

mixed

array getSections()

Get the entire array of sections.

Return Value

array

void flushSections()

Flush all of the sections.

Return Value

void

void addLoop(Countable|array $data)

Add new loop to the stack.

Parameters

Countable|array $data

Return Value

void

void incrementLoopIndices()

Increment the top loop's indices.

Return Value

void

void popLoop()

Pop a loop from the top of the loop stack.

Return Value

void

stdClass|null getLastLoop()

Get an instance of the last loop in the stack.

Return Value

stdClass|null

array getLoopStack()

Get the entire loop stack.

Return Value

array

void startPush(string $section, string $content = '')

Start injecting content into a push section.

Parameters

string $section
string $content

Return Value

void

string stopPush()

Stop injecting content into a push section.

Return Value

string

Exceptions

InvalidArgumentException

protected void extendPush(string $section, string $content)

Append content to a given push section.

Parameters

string $section
string $content

Return Value

void

void startPrepend(string $section, string $content = '')

Start prepending content into a push section.

Parameters

string $section
string $content

Return Value

void

string stopPrepend()

Stop prepending content into a push section.

Return Value

string

Exceptions

InvalidArgumentException

protected void extendPrepend(string $section, string $content)

Prepend content to a given stack.

Parameters

string $section
string $content

Return Value

void

string yieldPushContent(string $section, string $default = '')

Get the string contents of a push section.

Parameters

string $section
string $default

Return Value

string

void flushStacks()

Flush all of the stacks.

Return Value

void

void startTranslation(array $replacements = [])

Start a translation block.

Parameters

array $replacements

Return Value

void

string renderTranslation()

Render the current translation.

Return Value

string

void __construct(EngineResolver $engines, ViewFinderInterface $finder, Dispatcher $events)

Create a new view factory instance.

Parameters

EngineResolver $engines
ViewFinderInterface $finder
Dispatcher $events

Return Value

void

View file(string $path, Arrayable|array $data = [], array $mergeData = [])

Get the evaluated view contents for the given view.

Parameters

string $path
Arrayable|array $data
array $mergeData

Return Value

View

View make(string $view, Arrayable|array $data = [], array $mergeData = [])

Get the evaluated view contents for the given view.

Parameters

string $view
Arrayable|array $data
array $mergeData

Return Value

View

View first(array $views, Arrayable|array $data = [], array $mergeData = [])

Get the first view that actually exists from the given list.

Parameters

array $views
Arrayable|array $data
array $mergeData

Return Value

View

Exceptions

InvalidArgumentException

string renderWhen(bool $condition, string $view, Arrayable|array $data = [], array $mergeData = [])

Get the rendered content of the view based on a given condition.

Parameters

bool $condition
string $view
Arrayable|array $data
array $mergeData

Return Value

string

string renderUnless(bool $condition, string $view, Arrayable|array $data = [], array $mergeData = [])

Get the rendered content of the view based on the negation of a given condition.

Parameters

bool $condition
string $view
Arrayable|array $data
array $mergeData

Return Value

string

string renderEach(string $view, array $data, string $iterator, string $empty = 'raw|')

Get the rendered contents of a partial from a loop.

Parameters

string $view
array $data
string $iterator
string $empty

Return Value

string

protected string normalizeName(string $name)

Normalize a view name.

Parameters

string $name

Return Value

string

protected array parseData(mixed $data)

Parse the given data into a raw array.

Parameters

mixed $data

Return Value

array

protected View viewInstance(string $view, string $path, Arrayable|array $data)

Create a new view instance from the given arguments.

Parameters

string $view
string $path
Arrayable|array $data

Return Value

View

bool exists(string $view)

Determine if a given view exists.

Parameters

string $view

Return Value

bool

Engine getEngineFromPath(string $path)

Get the appropriate view engine for the given path.

Parameters

string $path

Return Value

Engine

Exceptions

InvalidArgumentException

protected string|null getExtension(string $path)

Get the extension used by the view file.

Parameters

string $path

Return Value

string|null

mixed share(array|string $key, mixed $value = null)

Add a piece of shared data to the environment.

Parameters

array|string $key
mixed $value

Return Value

mixed

void incrementRender()

Increment the rendering counter.

Return Value

void

void decrementRender()

Decrement the rendering counter.

Return Value

void

bool doneRendering()

Check if there are no active render operations.

Return Value

bool

bool hasRenderedOnce(string $id)

Determine if the given once token has been rendered.

Parameters

string $id

Return Value

bool

void markAsRenderedOnce(string $id)

Mark the given once token as having been rendered.

Parameters

string $id

Return Value

void

void addLocation(string $location)

Add a location to the array of view locations.

Parameters

string $location

Return Value

void

$this addNamespace(string $namespace, string|array $hints)

Add a new namespace to the loader.

Parameters

string $namespace
string|array $hints

Return Value

$this

$this prependNamespace(string $namespace, string|array $hints)

Prepend a new namespace to the loader.

Parameters

string $namespace
string|array $hints

Return Value

$this

$this replaceNamespace(string $namespace, string|array $hints)

Replace the namespace hints for the given namespace.

Parameters

string $namespace
string|array $hints

Return Value

$this

void addExtension(string $extension, string $engine, Closure|null $resolver = null)

Register a valid view extension and its engine.

Parameters

string $extension
string $engine
Closure|null $resolver

Return Value

void

void flushState()

Flush all of the factory state like sections and stacks.

Return Value

void

void flushStateIfDoneRendering()

Flush all of the section contents if done rendering.

Return Value

void

array getExtensions()

Get the extension to engine bindings.

Return Value

array

EngineResolver getEngineResolver()

Get the engine resolver instance.

Return Value

EngineResolver

ViewFinderInterface getFinder()

Get the view finder instance.

Return Value

ViewFinderInterface

void setFinder(ViewFinderInterface $finder)

Set the view finder instance.

Parameters

ViewFinderInterface $finder

Return Value

void

void flushFinderCache()

Flush the cache of views located by the finder.

Return Value

void

Dispatcher getDispatcher()

Get the event dispatcher instance.

Return Value

Dispatcher

void setDispatcher(Dispatcher $events)

Set the event dispatcher instance.

Parameters

Dispatcher $events

Return Value

void

Container getContainer()

Get the IoC container instance.

Return Value

Container

void setContainer(Container $container)

Set the IoC container instance.

Parameters

Container $container

Return Value

void

mixed shared(string $key, mixed $default = null)

Get an item from the shared data.

Parameters

string $key
mixed $default

Return Value

mixed

array getShared()

Get all of the shared data for the environment.

Return Value

array