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

76 lines
1.9 KiB
Markdown

# 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
```php
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`