docs: consolidate documentation into organized structure

- Move 12 markdown files from root to docs/ subdirectories
- Organize documentation by category:
  • docs/troubleshooting/ (1 file)  - Technical troubleshooting guides
  • docs/deployment/      (4 files) - Deployment and security documentation
  • docs/guides/          (3 files) - Feature-specific guides
  • docs/planning/        (4 files) - Planning and improvement proposals

Root directory cleanup:
- Reduced from 16 to 4 markdown files in root
- Only essential project files remain:
  • CLAUDE.md (AI instructions)
  • README.md (Main project readme)
  • CLEANUP_PLAN.md (Current cleanup plan)
  • SRC_STRUCTURE_IMPROVEMENTS.md (Structure improvements)

This improves:
 Documentation discoverability
 Logical organization by purpose
 Clean root directory
 Better maintainability
This commit is contained in:
2025-10-05 11:05:04 +02:00
parent 887847dde6
commit 5050c7d73a
36686 changed files with 196456 additions and 12398919 deletions

View File

@@ -0,0 +1,56 @@
<?php
declare(strict_types=1);
namespace App\Framework\Admin\FormFields\ValueObjects;
/**
* Field Options Value Object
*
* Holds options for select/radio/checkbox fields
*/
final readonly class FieldOptions
{
/**
* @param array<string, string> $options Key-value pairs for options
* @param string|null $placeholder Optional placeholder option
*/
public function __construct(
public array $options,
public ?string $placeholder = null
) {}
/**
* Convert options to HTML option elements
*/
public function toHtml(string $selectedValue = ''): string
{
$html = '';
if ($this->placeholder !== null) {
$html .= '<option value="">' . htmlspecialchars($this->placeholder) . '</option>';
}
foreach ($this->options as $value => $label) {
$selected = ((string) $value === $selectedValue) ? ' selected' : '';
$html .= sprintf(
'<option value="%s"%s>%s</option>',
htmlspecialchars((string) $value),
$selected,
htmlspecialchars($label)
);
}
return $html;
}
/**
* Get options as array
*
* @return array<string, string>
*/
public function toArray(): array
{
return $this->options;
}
}