134 lines
3.0 KiB
PHP
134 lines
3.0 KiB
PHP
<?php
|
|
|
|
namespace Illuminate\View\Compilers\Concerns;
|
|
|
|
trait CompilesLayouts
|
|
{
|
|
/**
|
|
* The name of the last section that was started.
|
|
*
|
|
* @var string
|
|
*/
|
|
protected $lastSection;
|
|
|
|
/**
|
|
* Compile the extends statements into valid PHP.
|
|
*
|
|
* @param string $expression
|
|
* @return string
|
|
*/
|
|
protected function compileExtends($expression)
|
|
{
|
|
$expression = $this->stripParentheses($expression);
|
|
|
|
$echo = "<?php echo \$__env->make({$expression}, \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>";
|
|
|
|
$this->footer[] = $echo;
|
|
|
|
return '';
|
|
}
|
|
|
|
/**
|
|
* Compile the extends-first statements into valid PHP.
|
|
*
|
|
* @param string $expression
|
|
* @return string
|
|
*/
|
|
protected function compileExtendsFirst($expression)
|
|
{
|
|
$expression = $this->stripParentheses($expression);
|
|
|
|
$echo = "<?php echo \$__env->first({$expression}, \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>";
|
|
|
|
$this->footer[] = $echo;
|
|
|
|
return '';
|
|
}
|
|
|
|
/**
|
|
* Compile the section statements into valid PHP.
|
|
*
|
|
* @param string $expression
|
|
* @return string
|
|
*/
|
|
protected function compileSection($expression)
|
|
{
|
|
$this->lastSection = trim($expression, "()'\" ");
|
|
|
|
return "<?php \$__env->startSection{$expression}; ?>";
|
|
}
|
|
|
|
/**
|
|
* Replace the @parent directive to a placeholder.
|
|
*
|
|
* @return string
|
|
*/
|
|
protected function compileParent()
|
|
{
|
|
$escapedLastSection = strtr($this->lastSection, ['\\' => '\\\\', "'" => "\\'"]);
|
|
|
|
return "<?php echo \Illuminate\View\Factory::parentPlaceholder('{$escapedLastSection}'); ?>";
|
|
}
|
|
|
|
/**
|
|
* Compile the yield statements into valid PHP.
|
|
*
|
|
* @param string $expression
|
|
* @return string
|
|
*/
|
|
protected function compileYield($expression)
|
|
{
|
|
return "<?php echo \$__env->yieldContent{$expression}; ?>";
|
|
}
|
|
|
|
/**
|
|
* Compile the show statements into valid PHP.
|
|
*
|
|
* @return string
|
|
*/
|
|
protected function compileShow()
|
|
{
|
|
return '<?php echo $__env->yieldSection(); ?>';
|
|
}
|
|
|
|
/**
|
|
* Compile the append statements into valid PHP.
|
|
*
|
|
* @return string
|
|
*/
|
|
protected function compileAppend()
|
|
{
|
|
return '<?php $__env->appendSection(); ?>';
|
|
}
|
|
|
|
/**
|
|
* Compile the overwrite statements into valid PHP.
|
|
*
|
|
* @return string
|
|
*/
|
|
protected function compileOverwrite()
|
|
{
|
|
return '<?php $__env->stopSection(true); ?>';
|
|
}
|
|
|
|
/**
|
|
* Compile the stop statements into valid PHP.
|
|
*
|
|
* @return string
|
|
*/
|
|
protected function compileStop()
|
|
{
|
|
return '<?php $__env->stopSection(); ?>';
|
|
}
|
|
|
|
/**
|
|
* Compile the end-section statements into valid PHP.
|
|
*
|
|
* @return string
|
|
*/
|
|
protected function compileEndsection()
|
|
{
|
|
return '<?php $__env->stopSection(); ?>';
|
|
}
|
|
}
|