Add Phase 0 spike: end-to-end transport verified

Bare PHP behind FrankenPHP plus a Qt/QML host that spawns it. GET /api/ping
publishes a Mercure event; the QML window receives it back over the SSE
stream. Findings (Caddy directive ordering, Mercure transport scalar,
PR_SET_PDEATHSIG for child cleanup, PHP 8.5 curl_close deprecation, port
collision with system FrankenPHP, pure-QML SSE viability) are recorded in
spike/README.md so Phase 1 starts from a known-good baseline.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-02 00:15:50 +02:00
parent 0b394510bc
commit 9655b6fef9
9 changed files with 517 additions and 0 deletions

28
spike/Caddyfile Normal file
View File

@@ -0,0 +1,28 @@
{
auto_https off
admin off
frankenphp
order php_server before respond
order mercure after encode
}
http://127.0.0.1:8765 {
root * php/
encode gzip
mercure {
transport local
publisher_jwt !ChangeThisDevKey!
subscriber_jwt !ChangeThisDevKey!
anonymous
publish_origins *
cors_origins *
}
php_server
log {
output stderr
format console
}
}