Steuerkram/src/Controllers/BaseController.php

32 lines
784 B
PHP

<?php
declare(strict_types=1);
namespace Steuerkram\Controllers;
use Steuerkram\View;
class BaseController
{
protected function renderView(string $template, array $data): string
{
$data['h'] ??= fn($v) => View::h($v);
$data['fmt'] ??= fn($v) => View::formatMoney($v);
extract($data, EXTR_SKIP);
ob_start();
include dirname(__DIR__) . '/Views/' . $template . '.php';
return ob_get_clean();
}
/**
* Verhindert CSV-/Formel-Injection: stellt bei führendem =, +, - oder @ ein ' voran.
*/
protected function csvSanitize(string $value): string
{
if ($value !== '' && in_array($value[0], ['=', '+', '-', '@'], true)) {
return "'" . $value;
}
return $value;
}
}