Skip to content

History / PHP 8 Language Features

Revisions

  • Wiki: split the PHP floor page, refresh Roles & Permissions, restructure the sidebar The PHP floor page had grown to 861 lines and was three documents in a trench coat: a decision, a language tour, and a deep argument about permission keys. Split into three, each standing alone: Raising-the-PHP-Floor (307) the DECISION — where we are, who breaks, the verdict, and the constants-to-enums bridge PHP-8-Language-Features (261) the 101 tour of 8.0/8.1 with before/after from real code, including the features that WOULDN'T help us, said plainly PHP-Enums-and-RBAC (353) the one feature the argument turns on — and the reason a capability is a Cap:: constant and never a string. Worth reading even if the floor never moves, because it explains the permission system. Section numbers and cross-references rewritten by meaning rather than by find-and-replace, since the sections changed pages. Roles & Permissions was stale: written before the manifest became the single declaration and before the endpoint audit existed. Now says that capabilities are derived from one file per module (and why the four-list version was the bug), and carries a table of what D005 has actually found — the shared settings endpoint, six Intune endpoints, all 49 RFP Builder endpoints, unauthenticated audit-log forgery, and an LMS learner reaching the authoring settings. Every one found by hand, by accident, which is the point. Sidebar: the security pages are now grouped by the three layers they belong to (module access → capabilities → administrator), rather than a flat list, and all nine RBAC/PHP pages are linked. The two new PHP pages nest under the floor page.

    @edmozley edmozley committed Jul 13, 2026