32 lines
784 B
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;
|
|
}
|
|
}
|