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.
This commit is contained in:
2025-10-25 19:18:37 +02:00
parent caa85db796
commit fc3d7e6357
83016 changed files with 378904 additions and 20919 deletions

View File

@@ -33,7 +33,7 @@ final readonly class ParsedUserAgent
*/
public function getUserAgent(): UserAgent
{
return new UserAgent($this->raw);
return UserAgent::fromString($this->raw);
}
/**
@@ -109,20 +109,14 @@ final readonly class ParsedUserAgent
version_compare($this->browserVersion, '85.0', '>='),
// JavaScript features
'es6' => $this->isModern,
'es6', 'css-custom-properties', 'css-flexbox', 'css-grid', 'webrtc', 'websockets' => $this->isModern,
'es2017' => $this->isModern && version_compare($this->browserVersion, $this->getEs2017MinVersion(), '>='),
'es2020' => $this->isModern && version_compare($this->browserVersion, $this->getEs2020MinVersion(), '>='),
// CSS features
'css-grid' => $this->isModern,
'css-flexbox' => $this->isModern,
'css-custom-properties' => $this->isModern,
// Web APIs
'service-worker' => $this->isModern && $this->platform !== PlatformType::IOS,
'web-push' => $this->isModern && $this->browser !== BrowserType::SAFARI,
'webrtc' => $this->isModern,
'websockets' => $this->isModern,
default => false
};

View File

@@ -132,12 +132,6 @@ final readonly class BrowserPatterns
*/
public static function isBot(string $userAgent): bool
{
foreach (self::getBotPatterns() as $pattern) {
if (preg_match($pattern, $userAgent)) {
return true;
}
}
return false;
return array_any(self::getBotPatterns(), fn($pattern) => preg_match($pattern, $userAgent));
}
}

View File

@@ -16,12 +16,11 @@ use App\Framework\UserAgent\Patterns\PlatformPatterns;
* High-performance User-Agent parser with caching
* Optimized for modern browsers and frameworks
*/
final class UserAgentParser
final readonly class UserAgentParser
{
public function __construct(
private readonly ?Cache $cache = null
) {
}
private ?Cache $cache = null
) {}
/**
* Parse User-Agent string into structured ParsedUserAgent object