Fixed again non-existent env when interpolating vars

This commit is contained in:
Anthony Axenov 2023-08-13 23:41:54 +08:00
parent 9b021296eb
commit 1ebdffe2a6
Signed by: anthony
GPG Key ID: EA9EC32FF7CCD4EC

View File

@ -32,9 +32,9 @@ abstract class AbstractConverter implements ConverterContract
protected array $vars = []; protected array $vars = [];
/** /**
* @var Environment * @var Environment|null
*/ */
protected Environment $env; protected ?Environment $env = null;
/** /**
* Sets an environment with vars * Sets an environment with vars
@ -173,11 +173,11 @@ abstract class AbstractConverter implements ConverterContract
*/ */
protected function interpolate(string $content): string protected function interpolate(string $content): string
{ {
if (empty($this->vars) && !empty($this->env) && $this->env->hasVars()) { if (empty($this->vars) && !$this->env?->hasVars()) {
return $content; return $content;
} }
$matches = []; $matches = [];
if (preg_match_all('/\{\{[a-zA-Z][a-zA-Z0-9]+}}/', $content, $matches, PREG_PATTERN_ORDER) > 0) { if (preg_match_all('/\{\{[a-zA-Z][a-zA-Z0-9]*}}/m', $content, $matches, PREG_PATTERN_ORDER) > 0) {
foreach ($matches[0] as $key => $var) { foreach ($matches[0] as $key => $var) {
if (str_contains($content, $var)) { if (str_contains($content, $var)) {
$content = str_replace($var, $this->vars[$var] ?? $this->env[$var] ?? $var, $content); $content = str_replace($var, $this->vars[$var] ?? $this->env[$var] ?? $var, $content);