ConfigDTO.php
- Pfad:
src/UseCases/Config/ConfigDTO.php - Namespace: UseCases\Config
- Zeilen: 76 | Größe: 2,501 Bytes
- Geändert: 2025-12-30 20:39:13 | 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
-
ConfigDTOclass Zeile 9
Funktionen 4
-
__construct()public Zeile 11 -
fromArray()public Zeile 29 -
getContentDecoded()public Zeile 49 -
toArray()public Zeile 56
Versionen 4
-
v4
2025-12-30 20:39 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation -
v3
2025-12-30 20:37 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation -
v2
2025-12-23 07:56 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation -
v1
2025-12-22 10:30 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation
Code
<?php
declare(strict_types=1);
namespace UseCases\Config;
// @responsibility: Datenübertragungsobjekt für Content-Konfigurationen
final class ConfigDTO
{
public function __construct(
public readonly ?int $id,
public readonly string $type,
public readonly string $name,
public readonly string $slug,
public readonly ?string $description,
public readonly string $content,
public readonly string $version,
public readonly string $status,
public readonly ?int $parentId,
public readonly ?int $promptId = null,
public readonly int $sortOrder = 0,
public readonly ?string $parentName = null,
public readonly ?string $createdAt = null,
public readonly ?string $updatedAt = null,
) {
}
public static function fromArray(array $data): self
{
return new self(
id: isset($data['id']) ? (int) $data['id'] : null,
type: $data['type'] ?? '',
name: $data['name'] ?? '',
slug: $data['slug'] ?? '',
description: $data['description'] ?? null,
content: $data['content'] ?? '{}',
version: $data['version'] ?? '1.0',
status: $data['status'] ?? 'draft',
parentId: isset($data['parent_id']) ? (int) $data['parent_id'] : null,
promptId: isset($data['prompt_id']) ? (int) $data['prompt_id'] : null,
sortOrder: (int) ($data['sort_order'] ?? 0),
parentName: $data['parent_name'] ?? null,
createdAt: $data['created_at'] ?? null,
updatedAt: $data['updated_at'] ?? null,
);
}
public function getContentDecoded(): ?array
{
$decoded = json_decode($this->content, true);
return is_array($decoded) ? $decoded : null;
}
public function toArray(): array
{
return [
'id' => $this->id,
'type' => $this->type,
'name' => $this->name,
'slug' => $this->slug,
'description' => $this->description,
'content' => $this->content,
'version' => $this->version,
'status' => $this->status,
'parent_id' => $this->parentId,
'prompt_id' => $this->promptId,
'sort_order' => $this->sortOrder,
'parent_name' => $this->parentName,
'created_at' => $this->createdAt,
'updated_at' => $this->updatedAt,
];
}
}