BladeCompiler
class BladeCompiler extends Compiler implements CompilerInterface (View source)
Traits
Properties
protected Filesystem | $files | The Filesystem instance. |
from Compiler |
protected string | $cachePath | Get the cache path for the compiled views. |
from Compiler |
static protected array | $componentHashStack | The component name hash stack. |
from CompilesComponents |
protected bool | $firstCaseInSwitch | Identifier for the first case in switch statement. |
from CompilesConditionals |
protected string | $lastSection | The name of the last section that was started. |
from CompilesLayouts |
protected int | $forElseCounter | Counter to keep track of nested forelse statements. |
from CompilesLoops |
protected array | $extensions | All of the registered extensions. |
|
protected array | $customDirectives | All custom "directive" handlers. |
|
protected array | $conditions | All custom "condition" handlers. |
|
protected array | $precompilers | All of the registered precompilers. |
|
protected string | $path | The file currently being compiled. |
|
protected array | $compilers | All of the available compiler functions. |
|
protected array | $rawTags | Array of opening and closing tags for raw echos. |
|
protected array | $contentTags | Array of opening and closing tags for regular echos. |
|
protected array | $escapedTags | Array of opening and closing tags for escaped echos. |
|
protected string | $echoFormat | The "regular" / legacy echo string format. |
|
protected array | $footer | Array of footer lines to be added to template. |
|
protected array | $rawBlocks | Array to temporary store the raw blocks found in the template. |
|
protected array | $classComponentAliases | The array of class component aliases and their class names. |
|
protected bool | $compilesComponentTags | Indicates if component tags should be compiled. |
Methods
Compile the can statements into valid PHP.
Compile the cannot statements into valid PHP.
Compile the canany statements into valid PHP.
Compile the else-can statements into valid PHP.
Compile the else-cannot statements into valid PHP.
Compile the else-canany statements into valid PHP.
Compile the end-cannot statements into valid PHP.
Compile the end-canany statements into valid PHP.
Compile Blade comments into an empty string.
Compile the component statements into valid PHP.
Get a new component hash for a component name.
Compile a class component opening.
Compile the end-component statements into valid PHP.
Compile the end-component statements into valid PHP.
Compile the slot statements into valid PHP.
Compile the component-first statements into valid PHP.
Compile the end-component-first statements into valid PHP.
Compile the prop statement into valid PHP.
Sanitize the given component attribute value.
Compile the if-auth statements into valid PHP.
Compile the else-auth statements into valid PHP.
Compile the env statements into valid PHP.
Compile the production statements into valid PHP.
Compile the end-production statements into valid PHP.
Compile the if-guest statements into valid PHP.
Compile the else-guest statements into valid PHP.
Compile the has-section statements into valid PHP.
Compile the section-missing statements into valid PHP.
Compile the if statements into valid PHP.
Compile the unless statements into valid PHP.
Compile the else-if statements into valid PHP.
Compile the end-unless statements into valid PHP.
Compile the if-isset statements into valid PHP.
Compile the switch statements into valid PHP.
Compile the case statements into valid PHP.
Compile the default statements in switch case into valid PHP.
Compile the end switch statements into valid PHP.
Compile the error statements into valid PHP.
Compile the enderror statements into valid PHP.
Compile the "dd" statements into valid PHP.
Compile the "dump" statements into valid PHP.
Compile the method statements into valid PHP.
Compile the each statements into valid PHP.
Compile the include statements into valid PHP.
Compile the include-if statements into valid PHP.
Compile the include-when statements into valid PHP.
Compile the include-unless statements into valid PHP.
Compile the include-first statements into valid PHP.
Compile the inject statements into valid PHP.
Compile the extends statements into valid PHP.
Compile the section statements into valid PHP.
Compile the yield statements into valid PHP.
Compile the for-else statements into valid PHP.
Compile the for-else-empty and empty statements into valid PHP.
Compile the for-each statements into valid PHP.
Compile the break statements into valid PHP.
Compile the continue statements into valid PHP.
Compile the while statements into valid PHP.
Compile the raw PHP statements into valid PHP.
Compile the unset statements into valid PHP.
Compile the stack statements into the content.
Compile the push statements into valid PHP.
Compile the prepend statements into valid PHP.
Compile the lang statements into valid PHP.
Compile the choice statements into valid PHP.
Compile the view at the given path.
Append the file path to the compiled string.
Get the open and closing PHP tag tokens from the given string.
Get the path currently being compiled.
Set the path currently being compiled.
Compile the given Blade template contents.
Store the blocks that do not receive compilation.
Store the verbatim blocks and replace them with a temporary placeholder.
Store the PHP blocks and replace them with a temporary placeholder.
Store a raw block and return a unique raw placeholder.
Compile the component tags.
Replace the raw placeholders with the original code stored in the raw blocks.
Get a placeholder to temporary mark the position of raw blocks.
Add the stored footers onto the given content.
Parse the tokens from the template.
Execute the user defined extensions.
Compile Blade statements that start with "@".
Compile a single Blade @ statement.
Call the given directive with the given value.
Strip the parentheses from the given expression.
Register a custom Blade compiler.
Get the extensions used by the compiler.
Register an "if" statement directive.
Check the result of a condition.
Register a class-based component alias directive.
Register an array of class-based components.
Get the registered class component aliases.
Register a component alias directive.
Register an include alias directive.
Register an include alias directive.
Register a handler for custom directives.
Get the list of custom directives.
Register a new precompiler.
Set the echo format to be used by the compiler.
Set the "echo" format to double encode entities.
Set the "echo" format to not double encode entities.
Indicate that component tags should not be compiled.
Details
void
__construct(Filesystem $files, string $cachePath)
Create a new compiler instance.
string
getCompiledPath(string $path)
Get the path to the compiled version of a view.
bool
isExpired(string $path)
Determine if the view at the given path is expired.
protected string
compileCan(string $expression)
Compile the can statements into valid PHP.
protected string
compileCannot(string $expression)
Compile the cannot statements into valid PHP.
protected string
compileCanany(string $expression)
Compile the canany statements into valid PHP.
protected string
compileElsecan(string $expression)
Compile the else-can statements into valid PHP.
protected string
compileElsecannot(string $expression)
Compile the else-cannot statements into valid PHP.
protected string
compileElsecanany(string $expression)
Compile the else-canany statements into valid PHP.
protected string
compileEndcan()
Compile the end-can statements into valid PHP.
protected string
compileEndcannot()
Compile the end-cannot statements into valid PHP.
protected string
compileEndcanany()
Compile the end-canany statements into valid PHP.
protected string
compileComments(string $value)
Compile Blade comments into an empty string.
protected string
compileComponent(string $expression)
Compile the component statements into valid PHP.
static string
newComponentHash(string $component)
Get a new component hash for a component name.
static string
compileClassComponentOpening(string $component, string $alias, string $data, string $hash)
Compile a class component opening.
protected string
compileEndComponent()
Compile the end-component statements into valid PHP.
string
compileEndComponentClass()
Compile the end-component statements into valid PHP.
protected string
compileSlot(string $expression)
Compile the slot statements into valid PHP.
protected string
compileEndSlot()
Compile the end-slot statements into valid PHP.
protected string
compileComponentFirst(string $expression)
Compile the component-first statements into valid PHP.
protected string
compileEndComponentFirst()
Compile the end-component-first statements into valid PHP.
protected string
compileProps(string $expression)
Compile the prop statement into valid PHP.
static mixed
sanitizeComponentAttribute(mixed $value)
Sanitize the given component attribute value.
protected string
compileAuth(string|null $guard = null)
Compile the if-auth statements into valid PHP.
protected string
compileElseAuth(string|null $guard = null)
Compile the else-auth statements into valid PHP.
protected string
compileEndAuth()
Compile the end-auth statements into valid PHP.
protected string
compileEnv(string $environments)
Compile the env statements into valid PHP.
protected string
compileEndEnv()
Compile the end-env statements into valid PHP.
protected string
compileProduction()
Compile the production statements into valid PHP.
protected string
compileEndProduction()
Compile the end-production statements into valid PHP.
protected string
compileGuest(string|null $guard = null)
Compile the if-guest statements into valid PHP.
protected string
compileElseGuest(string|null $guard = null)
Compile the else-guest statements into valid PHP.
protected string
compileEndGuest()
Compile the end-guest statements into valid PHP.
protected string
compileHasSection(string $expression)
Compile the has-section statements into valid PHP.
protected string
compileSectionMissing(string $expression)
Compile the section-missing statements into valid PHP.
protected string
compileIf(string $expression)
Compile the if statements into valid PHP.
protected string
compileUnless(string $expression)
Compile the unless statements into valid PHP.
protected string
compileElseif(string $expression)
Compile the else-if statements into valid PHP.
protected string
compileElse()
Compile the else statements into valid PHP.
protected string
compileEndif()
Compile the end-if statements into valid PHP.
protected string
compileEndunless()
Compile the end-unless statements into valid PHP.
protected string
compileIsset(string $expression)
Compile the if-isset statements into valid PHP.
protected string
compileEndIsset()
Compile the end-isset statements into valid PHP.
protected string
compileSwitch(string $expression)
Compile the switch statements into valid PHP.
protected string
compileCase(string $expression)
Compile the case statements into valid PHP.
protected string
compileDefault()
Compile the default statements in switch case into valid PHP.
protected string
compileEndSwitch()
Compile the end switch statements into valid PHP.
protected string
compileOnce($id = null)
Compile an once block into valid PHP.
string
compileEndOnce()
Compile an end-once block into valid PHP.
string
compileEchos(string $value)
Compile Blade echos into valid PHP.
protected array
getEchoMethods()
Get the echo methods in the proper order for compilation.
protected string
compileRawEchos(string $value)
Compile the "raw" echo statements.
protected string
compileRegularEchos(string $value)
Compile the "regular" echo statements.
protected string
compileEscapedEchos(string $value)
Compile the escaped echo statements.
protected string
compileError(string $expression)
Compile the error statements into valid PHP.
protected string
compileEnderror(string $expression)
Compile the enderror statements into valid PHP.
protected string
compileCsrf()
Compile the CSRF statements into valid PHP.
protected string
compileDd(string $arguments)
Compile the "dd" statements into valid PHP.
protected string
compileDump(string $arguments)
Compile the "dump" statements into valid PHP.
protected string
compileMethod(string $method)
Compile the method statements into valid PHP.
protected string
compileEach(string $expression)
Compile the each statements into valid PHP.
protected string
compileInclude(string $expression)
Compile the include statements into valid PHP.
protected string
compileIncludeIf(string $expression)
Compile the include-if statements into valid PHP.
protected string
compileIncludeWhen(string $expression)
Compile the include-when statements into valid PHP.
protected string
compileIncludeUnless(string $expression)
Compile the include-unless statements into valid PHP.
protected string
compileIncludeFirst(string $expression)
Compile the include-first statements into valid PHP.
protected string
compileInject(string $expression)
Compile the inject statements into valid PHP.
protected string
compileJson(string $expression)
Compile the JSON statement into valid PHP.
protected string
compileExtends(string $expression)
Compile the extends statements into valid PHP.
protected string
compileSection(string $expression)
Compile the section statements into valid PHP.
protected string
compileParent()
Replace the @parent directive to a placeholder.
protected string
compileYield(string $expression)
Compile the yield statements into valid PHP.
protected string
compileShow()
Compile the show statements into valid PHP.
protected string
compileAppend()
Compile the append statements into valid PHP.
protected string
compileOverwrite()
Compile the overwrite statements into valid PHP.
protected string
compileStop()
Compile the stop statements into valid PHP.
protected string
compileEndsection()
Compile the end-section statements into valid PHP.
protected string
compileForelse(string $expression)
Compile the for-else statements into valid PHP.
protected string
compileEmpty(string $expression)
Compile the for-else-empty and empty statements into valid PHP.
protected string
compileEndforelse()
Compile the end-for-else statements into valid PHP.
protected string
compileEndEmpty()
Compile the end-empty statements into valid PHP.
protected string
compileFor(string $expression)
Compile the for statements into valid PHP.
protected string
compileForeach(string $expression)
Compile the for-each statements into valid PHP.
protected string
compileBreak(string $expression)
Compile the break statements into valid PHP.
protected string
compileContinue(string $expression)
Compile the continue statements into valid PHP.
protected string
compileEndfor()
Compile the end-for statements into valid PHP.
protected string
compileEndforeach()
Compile the end-for-each statements into valid PHP.
protected string
compileWhile(string $expression)
Compile the while statements into valid PHP.
protected string
compileEndwhile()
Compile the end-while statements into valid PHP.
protected string
compilePhp(string $expression)
Compile the raw PHP statements into valid PHP.
protected string
compileUnset(string $expression)
Compile the unset statements into valid PHP.
protected string
compileStack(string $expression)
Compile the stack statements into the content.
protected string
compilePush(string $expression)
Compile the push statements into valid PHP.
protected string
compileEndpush()
Compile the end-push statements into valid PHP.
protected string
compilePrepend(string $expression)
Compile the prepend statements into valid PHP.
protected string
compileEndprepend()
Compile the end-prepend statements into valid PHP.
protected string
compileLang(string|null $expression)
Compile the lang statements into valid PHP.
protected string
compileEndlang()
Compile the end-lang statements into valid PHP.
protected string
compileChoice(string $expression)
Compile the choice statements into valid PHP.
void
compile(string $path = null)
Compile the view at the given path.
protected string
appendFilePath(string $contents)
Append the file path to the compiled string.
protected Collection
getOpenAndClosingPhpTokens(string $contents)
Get the open and closing PHP tag tokens from the given string.
string
getPath()
Get the path currently being compiled.
void
setPath(string $path)
Set the path currently being compiled.
string
compileString(string $value)
Compile the given Blade template contents.
protected string
storeUncompiledBlocks(string $value)
Store the blocks that do not receive compilation.
protected string
storeVerbatimBlocks(string $value)
Store the verbatim blocks and replace them with a temporary placeholder.
protected string
storePhpBlocks(string $value)
Store the PHP blocks and replace them with a temporary placeholder.
protected string
storeRawBlock(string $value)
Store a raw block and return a unique raw placeholder.
protected string
compileComponentTags(string $value)
Compile the component tags.
protected string
restoreRawContent(string $result)
Replace the raw placeholders with the original code stored in the raw blocks.
protected string
getRawPlaceholder(int|string $replace)
Get a placeholder to temporary mark the position of raw blocks.
protected string
addFooters(string $result)
Add the stored footers onto the given content.
protected string
parseToken(array $token)
Parse the tokens from the template.
protected string
compileExtensions(string $value)
Execute the user defined extensions.
protected string
compileStatements(string $value)
Compile Blade statements that start with "@".
protected string
compileStatement(array $match)
Compile a single Blade @ statement.
protected string
callCustomDirective(string $name, string|null $value)
Call the given directive with the given value.
string
stripParentheses(string $expression)
Strip the parentheses from the given expression.
void
extend(callable $compiler)
Register a custom Blade compiler.
array
getExtensions()
Get the extensions used by the compiler.
void
if(string $name, callable $callback)
Register an "if" statement directive.
bool
check(string $name, array ...$parameters)
Check the result of a condition.
void
component(string $class, string|null $alias = null, string $prefix = '')
Register a class-based component alias directive.
void
components(array $components, string $prefix = '')
Register an array of class-based components.
array
getClassComponentAliases()
Get the registered class component aliases.
void
aliasComponent(string $path, string|null $alias = null)
Register a component alias directive.
void
include(string $path, string|null $alias = null)
Register an include alias directive.
void
aliasInclude(string $path, string|null $alias = null)
Register an include alias directive.
void
directive(string $name, callable $handler)
Register a handler for custom directives.
array
getCustomDirectives()
Get the list of custom directives.
void
precompiler(callable $precompiler)
Register a new precompiler.
void
setEchoFormat(string $format)
Set the echo format to be used by the compiler.
void
withDoubleEncoding()
Set the "echo" format to double encode entities.
void
withoutDoubleEncoding()
Set the "echo" format to not double encode entities.
void
withoutComponentTags()
Indicate that component tags should not be compiled.