Smarty v5 update test, initial code setup
This commit is contained in:
25
src/Compile/Modifier/IssetModifierCompiler.php
Normal file
25
src/Compile/Modifier/IssetModifierCompiler.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
namespace Smarty\Compile\Modifier;
|
||||
use Smarty\CompilerException;
|
||||
|
||||
/**
|
||||
* Smarty isset modifier plugin
|
||||
*/
|
||||
class IssetModifierCompiler extends Base {
|
||||
|
||||
public function compile($params, \Smarty\Compiler\Template $compiler) {
|
||||
|
||||
$params = array_filter($params, function($v) { return !empty($v); });
|
||||
|
||||
if (count($params) < 1) {
|
||||
throw new CompilerException("Invalid number of arguments for isset. isset expects at least one parameter.");
|
||||
}
|
||||
|
||||
$tests = [];
|
||||
foreach ($params as $param) {
|
||||
$tests[] = 'null !== (' . $param . ' ?? null)';
|
||||
}
|
||||
return '(' . implode(' && ', $tests) . ')';
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user