nur-sery/nur_src/data/template/TTemplate.php

30 lines
737 B
PHP
Raw Normal View History

2023-12-18 05:52:35 +04:00
<?php
namespace nur\data\template;
use nur\base;
use nur\data\expr\GenericExpr;
use nur\data\expr\IContext;
trait TTemplate {
/** @var IContext */
protected $context;
function getContext(): IContext {
return $this->context;
}
function setContext(IContext $context): void {
$this->context = $context;
}
function applyRules(string $text, IContext $context) {
foreach ($this->EXPRS() as $name => $expr) {
$value = GenericExpr::with($expr, $name)->eval($context);
if (!base::is_undef($value)) $text = str_replace($name, $value, $text);
}
#XXX ajouter le support des expressions conditionnelles. traiter ligne par
# ligne s'il y a des expressions conditionnelles
return $text;
}
}