Tags

Tags give the ability to mark specific points in history as being important
  • v0.2.6

    Release v0.2.6 — RequestContext rename + structural cleanup
    
    Addresses architectural critiques raised by henderkes / olle.haerstedt
    on the G class structure. Backward-compatible via class_alias.
    
    - G renamed to RequestContext (\ZealPHP\G remains via class_alias)
    - Response state moved from G onto Response ($response->headersList etc.)
    - Apache shim state moved to ZealPHP\Legacy\ApacheContext (lazy)
    - #[AllowDynamicProperties] removed; previously-dynamic props declared
    - Return-by-reference autovivification eliminated in coroutine mode
    - Dead prefork_request_handler() deleted (CGI bridge supersedes it)
    - debug_backtrace() in instance() removed
    - Redundant isset() in CoSessionManager simplified
    
    External API for framework-internal arrays changed; uopz overrides
    (header, setcookie, apache_setenv) are unaffected. All 155 tests pass.
  • v0.2.5

    Release v0.2.5 — security fix: HTTP response splitting
    
    The uopz header() override didn't reject CRLF/NUL in values, breaking
    PHP's native protection (in place since 4.4.2). User-controlled input
    passed to header() / setcookie() / redirect() could smuggle additional
    response headers, enabling session fixation and cache poisoning.
    
    All entry points patched:
    - header(), Response::header()
    - Response::redirect()
    - setcookie(), setrawcookie()
    
    Cookie name char-class rules now match PHP native setcookie.
    9 new regression tests added.
    
    All v0.2.x releases prior to v0.2.5 are affected. Upgrade recommended.
  • v0.2.4

    Release v0.2.4
    
    - max_request=100000 default — bounded worker recycling for long-running
      PHP, with ZEALPHP_MAX_REQUEST env var override.
    - Scaffold defaults to coroutine mode (App::superglobals(false)) — aligns
      with the documented "recommended for new projects" stance and sidesteps
      the worker-state-leak class of issues for greenfield apps.
    - Framework default (App::$superglobals = true) is unchanged for backward
      compatibility with existing installs upgrading via composer update.
  • v0.2.3

    Release v0.2.3
    
    - SessionStartMiddleware: eager session for first-time visitors
    - 14-lesson tutorial redesign with pedagogical structure
    - Lesson 5: React vs PHP (frontend-agnostic positioning)
    - AI agent calls HTTP API with session cookie auth
    - Mermaid diagrams with pop-out zoom/pan viewer
    - Event log terminal, note animations, concept check quizzes
    - Inline auth error feedback via htmx
    - Notes API JSON content negotiation
  • v0.2.2

    Release v0.2.2
    
    - 13-lesson /learn tutorial: Notes + AI Chat app with htmx, SQLite, SSE, WebSocket
    - src/Learn/ namespace: 6 autoloaded classes (Auth, Chat, Notes, DB, ChatHistory, WS)
    - 8 ZealAPI endpoint files (api/learn/)
    - Python OpenAI Agents SDK notes agent with 6 function tools
    - WebSocket session support in framework (App.php onOpen)
    - ZealAPI SSE streaming fix (ZealAPI.php _streaming check)
    - PSR-2 coding standards codified in CLAUDE.md
    - htmx site-wide (hx-boost), cache-busting asset URLs
    - 259 tests, 600 assertions
  • v0.2.1

    Release v0.2.1 — homepage redesign + Apache parity hardening (re-tagged with sitewide ^0.2.1 install refs)
  • v0.2.0

    99ea193a · chore: release v0.2.0 ·
    v0.2.0 — Range requests, PSR adapters, tiered Cache, security hardening
  • v0.1.1

    d58ffb32 · Release 0.1.1 ·
    ZealPHP 0.1.1
  • v0.1.0

    47c5b822 · Prepare release v0.1.0 ·
    Release v0.1.0