Files
michaelschiemer/src/Framework/LiveComponents/README.md
Michael Schiemer fc3d7e6357 feat(Production): Complete production deployment infrastructure
- Add comprehensive health check system with multiple endpoints
- Add Prometheus metrics endpoint
- Add production logging configurations (5 strategies)
- Add complete deployment documentation suite:
  * QUICKSTART.md - 30-minute deployment guide
  * DEPLOYMENT_CHECKLIST.md - Printable verification checklist
  * DEPLOYMENT_WORKFLOW.md - Complete deployment lifecycle
  * PRODUCTION_DEPLOYMENT.md - Comprehensive technical reference
  * production-logging.md - Logging configuration guide
  * ANSIBLE_DEPLOYMENT.md - Infrastructure as Code automation
  * README.md - Navigation hub
  * DEPLOYMENT_SUMMARY.md - Executive summary
- Add deployment scripts and automation
- Add DEPLOYMENT_PLAN.md - Concrete plan for immediate deployment
- Update README with production-ready features

All production infrastructure is now complete and ready for deployment.
2025-10-25 19:18:37 +02:00

1.9 KiB

LiveComponents Module

Zero-Dependency Interactive Components - Trait-based, keine abstract classes!

Design Pattern

Composition over Inheritance

  • Interface: LiveComponentContract
  • Trait: LiveComponentTrait
  • Final readonly classes

Minimal Example

final readonly class MyComponent implements LiveComponentContract
{
    use LiveComponentTrait;

    public function __construct(
        string $id,
        array $initialData = [],
        ?TemplateRenderer $templateRenderer = null
    ) {
        $this->id = $id;
        $this->initialData = $initialData;
        $this->templateRenderer = $templateRenderer;
    }

    public function render(): string
    {
        return $this->template('path/to/template', [
            'data' => $this->initialData
        ]);
    }
}

Features

  • Polling: implements Pollable - Auto-updates
  • File Upload: implements Uploadable - Progress tracking mit Byte VO
  • SSE: Real-time via framework's SseResult
  • Zero JS Dependencies: Pure Vanilla JavaScript

Structure

LiveComponents/
├── Contracts/
│   ├── LiveComponentContract.php  # Main interface
│   ├── Pollable.php              # Polling capability
│   └── Uploadable.php            # Upload capability
├── Traits/
│   └── LiveComponentTrait.php    # Implementation
├── Controllers/
│   ├── LiveComponentController.php
│   └── UploadController.php
├── Templates/
│   └── *.view.php                # Component templates
└── ValueObjects/
    ├── LiveComponentState.php
    ├── ComponentAction.php
    ├── ComponentUpdate.php
    ├── UploadedComponentFile.php  # Uses Byte VO
    └── FileUploadProgress.php     # Uses Byte VO

JavaScript

  • /public/js/live-components.js - Main client (~3KB)
  • /public/js/sse-client.js - SSE manager (~2KB)

Documentation

See: /docs/claude/livecomponents-system.md