Fix async lifecycle ordering, add _spa_init boot phase, update to jqhtml _load_only/_load_render_only flags

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
root
2026-03-06 22:33:38 +00:00
parent 11c95a2886
commit d1ac456279
2718 changed files with 70593 additions and 6320 deletions

View File

@@ -899,6 +899,24 @@ Details: `php artisan rsx:man polymorphic`
---
## REALTIME (WebSocket)
WebSocket notification system: PHP publishes via Redis, Node.js relays to browser. Messages are **notification-only** (never confidential data) — clients fetch fresh data through Ajax.
**Setup**: `.env``REALTIME_ENABLED=true`, `REALTIME_WS_PORT=6200`, `REALTIME_PUBLIC_URL=ws://localhost:6200`. Start: `node system/bin/realtime-server.js`
**Topic classes** (`/rsx/lib/topics/`): Define `can_subscribe(array $filter = []): bool` — checked before issuing subscribe token.
**Publish** (PHP): `Realtime::publish('Contact_Updated_Topic', ['id' => $contact->id])` — no-op when disabled.
**Subscribe** (JS): `this.subscribe('Topic', {id: this.args.id}, (msg) => this.reload())` — auto-unsubscribes on component stop. Use `Rsx_Realtime.subscribe()` outside components.
**Site scoping**: Messages only route to connections matching the publisher's site_id. **Server-side filtering**: Subscriptions with filters only receive matching messages.
Details: `php artisan rsx:man realtime`
---
## AJAX ENDPOINTS
```php