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/__setcode 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.