HtmxResponseTrait.php
- Pfad:
src/Framework/Http/HtmxResponseTrait.php - Namespace: Framework\Http
- Zeilen: 46 | Größe: 1,156 Bytes
- Geändert: 2025-12-29 00:17:58 | Gescannt: 2025-12-31 10:22:15
Code Hygiene Score: 100
- Dependencies: 100 (25%)
- LOC: 100 (20%)
- Methods: 100 (20%)
- Secrets: 100 (15%)
- Classes: 100 (10%)
- Magic Numbers: 100 (10%)
Keine Issues gefunden.
Klassen 1
-
HtmxResponseTraittrait Zeile 9
Funktionen 5
-
htmxAlert()protected Zeile 14 -
htmxSuccess()Zeile 25 -
htmxError()Zeile 30 -
isHtmxRequest()Zeile 35 -
htmxRedirect()Zeile 40
Verwendet von 2
- Controller.php trait
- Controller.php use
Code
<?php
declare(strict_types=1);
namespace Framework\Http;
// @responsibility: HTMX-Response-Helpers für HTTP-Layer
trait HtmxResponseTrait
{
/**
* Output an HTMX-compatible alert message.
*/
protected function htmxAlert(string $type, string $message): void
{
header('HX-Retarget: #htmx-messages');
header('HX-Reswap: beforeend');
$escapedMessage = htmlspecialchars($message, ENT_QUOTES, 'UTF-8');
$id = 'alert-' . uniqid();
echo "<div id=\"{$id}\" class=\"alert alert--{$type}\">{$escapedMessage}</div>";
echo "<script>setTimeout(() => document.getElementById('{$id}')?.remove(), 5000)</script>";
}
protected function htmxSuccess(string $message): void
{
$this->htmxAlert('success', $message);
}
protected function htmxError(string $message): void
{
$this->htmxAlert('error', $message);
}
protected function isHtmxRequest(): bool
{
return isset($_SERVER['HTTP_HX_REQUEST']);
}
protected function htmxRedirect(string $url): void
{
header('HX-Redirect: ' . $url);
$this->text('OK');
}
}