PHP 8.4

Upgrade cadence and production use

  • Many report recent major versions as stable; upgrades done within weeks or months, sometimes even during RC phase with rollback plans.
  • Strategies vary: follow distro LTS (e.g., Debian), wait 6–12 months for Composer deps/tooling, or “skip one version” (upgrade to N when N+1 is out).
  • Some still run PHP 5 or 7.4 in production, often with third‑party extended security support; trade‑off is stability vs. new features and fixes.
  • Larger orgs emphasize long staging periods, log scanning, and waiting for ecosystem support (NewRelic, static analyzers, framework updates).

PHP vs. other web stacks

  • PHP praised for “upload files and go,” fast feedback loop, simple deployment for small apps, and strong standard library.
  • Counter‑argument: serious projects use CI, Composer, frameworks, and more complex deployment; 2000s‑style FTP workflows seen as niche.
  • Compared to Python/Django: Python wins on language design and packaging (despite complaints about pip/poetry), PHP on immediacy and HTTP tooling.
  • Framework debate: Laravel seen by some as powerful but “magical” and VC‑incentivized; others prefer Symfony or microframeworks like Slim.

New 8.4 features and reactions

  • Property hooks (C#/Swift‑style) are the headline: allow getter/setter logic on properties without changing call sites.
  • Supporters: dramatically reduces boilerplate getters/setters, improves library evolution, makes magic __get/__set code explicit and analyzable.
  • Skeptics: hidden control flow and IO in property access increase cognitive load; fear of abuse in ORMs/frameworks and harder debugging.
  • Clarified behavior: hooks access a “backing value” inside the hook, avoiding infinite recursion; behavior differs by context, which some call “too magical.”
  • New array_* functions (e.g., array_find) welcomed for ergonomics but criticized for polluting the global namespace and clashing with existing user functions.
  • Other liked additions: HTML5‑compliant DOM parser, BCMath objects, variable‑length regex lookbehind, performance improvements.

Language design, complexity, and philosophy

  • Some see PHP’s evolution as fixing past warts and adding pragmatic QoL features; others see it drifting toward Java‑style verbosity and bloated complexity.
  • Global namespace clutter and inconsistent function signatures are recurring complaints; defenders argue backward compatibility leaves little room to change.
  • Debate over “magic”: many frameworks already use dynamic properties and reflection; new features aim to regularize patterns at the language level.
  • There’s tension between PHP as a beginner‑friendly, quick‑and‑dirty scripting tool and as a “serious” enterprise backend with rich tooling.