205 lines
4.2 KiB
PHP
205 lines
4.2 KiB
PHP
<?php
|
|
|
|
namespace Illuminate\View\Compilers\Concerns;
|
|
|
|
trait CompilesConditionals
|
|
{
|
|
/**
|
|
* Identifier for the first case in switch statement.
|
|
*
|
|
* @var bool
|
|
*/
|
|
protected $firstCaseInSwitch = true;
|
|
|
|
/*
|
|
* Compile the if-auth statements into valid PHP.
|
|
*
|
|
* @param string|null $guard
|
|
* @return string
|
|
*/
|
|
protected function compileAuth($guard = null)
|
|
{
|
|
$guard = is_null($guard) ? '()' : $guard;
|
|
|
|
return "<?php if(auth()->guard{$guard}->check()): ?>";
|
|
}
|
|
|
|
/**
|
|
* Compile the end-auth statements into valid PHP.
|
|
*
|
|
* @return string
|
|
*/
|
|
protected function compileEndAuth()
|
|
{
|
|
return '<?php endif; ?>';
|
|
}
|
|
|
|
/**
|
|
* Compile the if-guest statements into valid PHP.
|
|
*
|
|
* @param string|null $guard
|
|
* @return string
|
|
*/
|
|
protected function compileGuest($guard = null)
|
|
{
|
|
$guard = is_null($guard) ? '()' : $guard;
|
|
|
|
return "<?php if(auth()->guard{$guard}->guest()): ?>";
|
|
}
|
|
|
|
/**
|
|
* Compile the end-guest statements into valid PHP.
|
|
*
|
|
* @return string
|
|
*/
|
|
protected function compileEndGuest()
|
|
{
|
|
return '<?php endif; ?>';
|
|
}
|
|
|
|
/**
|
|
* Compile the has-section statements into valid PHP.
|
|
*
|
|
* @param string $expression
|
|
* @return string
|
|
*/
|
|
protected function compileHasSection($expression)
|
|
{
|
|
return "<?php if (! empty(trim(\$__env->yieldContent{$expression}))): ?>";
|
|
}
|
|
|
|
/**
|
|
* Compile the if statements into valid PHP.
|
|
*
|
|
* @param string $expression
|
|
* @return string
|
|
*/
|
|
protected function compileIf($expression)
|
|
{
|
|
return "<?php if{$expression}: ?>";
|
|
}
|
|
|
|
/**
|
|
* Compile the unless statements into valid PHP.
|
|
*
|
|
* @param string $expression
|
|
* @return string
|
|
*/
|
|
protected function compileUnless($expression)
|
|
{
|
|
return "<?php if (! {$expression}): ?>";
|
|
}
|
|
|
|
/**
|
|
* Compile the else-if statements into valid PHP.
|
|
*
|
|
* @param string $expression
|
|
* @return string
|
|
*/
|
|
protected function compileElseif($expression)
|
|
{
|
|
return "<?php elseif{$expression}: ?>";
|
|
}
|
|
|
|
/**
|
|
* Compile the else statements into valid PHP.
|
|
*
|
|
* @return string
|
|
*/
|
|
protected function compileElse()
|
|
{
|
|
return '<?php else: ?>';
|
|
}
|
|
|
|
/**
|
|
* Compile the end-if statements into valid PHP.
|
|
*
|
|
* @return string
|
|
*/
|
|
protected function compileEndif()
|
|
{
|
|
return '<?php endif; ?>';
|
|
}
|
|
|
|
/**
|
|
* Compile the end-unless statements into valid PHP.
|
|
*
|
|
* @return string
|
|
*/
|
|
protected function compileEndunless()
|
|
{
|
|
return '<?php endif; ?>';
|
|
}
|
|
|
|
/**
|
|
* Compile the if-isset statements into valid PHP.
|
|
*
|
|
* @param string $expression
|
|
* @return string
|
|
*/
|
|
protected function compileIsset($expression)
|
|
{
|
|
return "<?php if(isset{$expression}): ?>";
|
|
}
|
|
|
|
/**
|
|
* Compile the end-isset statements into valid PHP.
|
|
*
|
|
* @return string
|
|
*/
|
|
protected function compileEndIsset()
|
|
{
|
|
return '<?php endif; ?>';
|
|
}
|
|
|
|
/**
|
|
* Compile the switch statements into valid PHP.
|
|
*
|
|
* @param string $expression
|
|
* @return string
|
|
*/
|
|
protected function compileSwitch($expression)
|
|
{
|
|
$this->firstCaseInSwitch = true;
|
|
|
|
return "<?php switch{$expression}:";
|
|
}
|
|
|
|
/**
|
|
* Compile the case statements into valid PHP.
|
|
*
|
|
* @param string $expression
|
|
* @return string
|
|
*/
|
|
protected function compileCase($expression)
|
|
{
|
|
if ($this->firstCaseInSwitch) {
|
|
$this->firstCaseInSwitch = false;
|
|
|
|
return "case {$expression}: ?>";
|
|
}
|
|
|
|
return "<?php case {$expression}: ?>";
|
|
}
|
|
|
|
/**
|
|
* Compile the default statements in switch case into valid PHP.
|
|
*
|
|
* @return string
|
|
*/
|
|
protected function compileDefault()
|
|
{
|
|
return '<?php default: ?>';
|
|
}
|
|
|
|
/**
|
|
* Compile the end switch statements into valid PHP.
|
|
*
|
|
* @return string
|
|
*/
|
|
protected function compileEndSwitch()
|
|
{
|
|
return '<?php endswitch; ?>';
|
|
}
|
|
}
|