Weft v0.1.0
Initial release: the complete engine as a Composer library (golovanov/weft), with a working
example site that doubles as the documentation.
Added
- Convention routing:
pages/about.php→/about, directory indexes,[slug]dynamic
segments,api/*.php→ JSON endpoints under/api/*; no route table. - SEO toolkit: title templates, canonical, Open Graph, Twitter cards, hreflang and JSON-LD
rendered from config with per-page overrides; generated/sitemap.xmland/robots.txt. - Optional i18n (off by default): prefix-free default locale, prefixed URLs for others,
automatic hreflang and canonical redirects, translation arrays inlang/<locale>/. - Optional caching with file and Redis stores;
Cache::remember()stays a safe no-op when
caching is disabled. - Request tracing: one JSONL timeline per request via golovanov/traceloom, with automatic
redaction of sensitive keys and anX-Trace-Idresponse header. - Form protection: rate limiting, CSRF tokens, honeypot check and optional Google
reCAPTCHA v3 (safe pass when disabled). - Best-effort alerting to AlertLoop that never blocks a request.
- Built-in utilities: curl-based HTTP client, thin PDO wrapper with a minimal model, JWT
(firebase/php-jwt), security headers, string/array/JSON helpers. - Vite integration: dev server with HMR in development, hashed production assets resolved
from the manifest. - Two-layer configuration: gitignored environment constants plus committed business config
read viaconfig('dot.keys'). example/— a complete working site that is also the engine's documentation
(example/content/en/).