f7be09ec635d21701d16bb5367aedc99cda5c668
Database Schema: - Added meta_description TEXT field to pages table - Added index on status_code for faster broken link queries Backend Changes: - Crawler now extracts meta descriptions from pages - New API endpoint: broken-links (finds 404s and server errors) - New API endpoint: seo-analysis (analyzes titles and meta descriptions) SEO Analysis Features: - Title length validation (optimal: 30-60 chars) - Meta description length validation (optimal: 70-160 chars) - Detection of missing titles/descriptions - Duplicate content detection (titles and meta descriptions) Frontend Changes: - Added "Broken Links" tab showing pages with errors - Added "SEO Analysis" tab with: * Statistics overview * Pages with SEO issues * Duplicate content report All quality checks pass: - PHPStan Level 8: 0 errors - PHPCS PSR-12: 0 warnings 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
PHP Docker Anwendung
Eine PHP-Anwendung mit MariaDB, die in Docker läuft.
Anforderungen
- Docker
- Docker Compose
Installation & Start
- Container starten:
docker-compose up -d
- Container stoppen:
docker-compose down
- Container neu bauen:
docker-compose up -d --build
Services
- PHP Anwendung: http://localhost:8080
- phpMyAdmin: http://localhost:8081
- MariaDB: Port 3306
Datenbank Zugangsdaten
- Host: mariadb
- Datenbank: app_database
- Benutzer: app_user
- Passwort: app_password
- Root Passwort: root_password
Struktur
.
├── docker-compose.yml # Docker Compose Konfiguration
├── Dockerfile # PHP Container Image
├── config/ # Konfigurationsdateien
│ ├── docker/
│ │ ├── init.sql # Datenbank Initialisierung
│ │ └── start.sh # Container Start-Script (unused)
│ └── nginx/
│ └── default.conf # Nginx Konfiguration
├── src/ # Anwendungscode
│ ├── api.php
│ ├── index.php
│ ├── classes/
│ └── crawler-worker.php
├── tests/ # Test Suite
│ ├── Unit/
│ └── Integration/
├── phpstan.neon # PHPStan Konfiguration
└── phpcs.xml # PHPCS Konfiguration
Entwicklung
Die Anwendungsdateien befinden sich im src/ Verzeichnis und werden als Volume in den Container gemountet, sodass Änderungen sofort sichtbar sind.
Tests & Code-Qualität
Unit Tests ausführen
Die Anwendung verwendet PHPUnit für Unit- und Integrationstests:
# Alle Tests ausführen
docker-compose exec php sh -c "php /var/www/html/vendor/bin/phpunit /var/www/tests/"
# Alternative mit Composer-Script
docker-compose exec php composer test
Die Tests befinden sich in:
tests/Unit/- Unit Teststests/Integration/- Integration Tests
Statische Code-Analyse mit PHPStan
PHPStan ist auf Level 8 (höchstes Level) konfiguriert und analysiert den gesamten Code:
# PHPStan ausführen
docker-compose exec php sh -c "php -d memory_limit=512M /var/www/html/vendor/bin/phpstan analyse -c /var/www/phpstan.neon"
# Alternative mit Composer-Script
docker-compose exec php composer phpstan
PHPStan Konfiguration:
- Level: 8 (strictest)
- Analysierte Pfade:
src/undtests/ - Ausgeschlossen:
vendor/Ordner - Konfigurationsdatei:
phpstan.neon
Code Style Prüfung mit PHP_CodeSniffer
PHP_CodeSniffer (PHPCS) prüft den Code gegen PSR-12 Standards:
# Code Style prüfen
docker-compose exec php composer phpcs
# Code Style automatisch korrigieren
docker-compose exec php composer phpcbf
PHPCS Konfiguration:
- Standard: PSR-12
- Analysierte Pfade:
src/undtests/ - Ausgeschlossen:
vendor/Ordner - Auto-Fix verfügbar mit
phpcbf
Description
Languages
Hack
52.4%
PHP
46%
Dockerfile
1.5%
Shell
0.1%