Plan, execution report, guard review, acceptance review, and finalize artifacts for the superglobal-to-abstraction migration (87 pages migrated from $_SESSION/$_SERVER to SessionStoreInterface/RequestRuntimeInterface). Task: SUPERGLOBAL-MIGRATION-001 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
45 lines
2.8 KiB
JSON
45 lines
2.8 KiB
JSON
{
|
|
"task_id": "SUPERGLOBAL-MIGRATION-001",
|
|
"verdict": "pass",
|
|
"checked_criterion_ids": [
|
|
"SC-001",
|
|
"SC-002",
|
|
"SC-003",
|
|
"SC-004",
|
|
"SC-005"
|
|
],
|
|
"checks": [
|
|
{
|
|
"criterion_id": "SC-001",
|
|
"criterion": "Zero $_SESSION, $_SERVER, $_COOKIE, $_POST, $_GET, $_FILES, $_REQUEST, REQUEST_METHOD superglobal references remain in pages/**/*.php.",
|
|
"result": "pass",
|
|
"evidence": "Independent grep -rn '$_SESSION|$_SERVER|$_COOKIE|$_POST|$_GET|$_FILES|$_REQUEST|REQUEST_METHOD' pages/ --include='*.php' returned 0 matches. Execution report command (rg scan) confirms same. Spot-checked 5 high-risk files (auth/login, api/v1/auth/login, admin/users/edit, admin/settings/index, admin/users/switch-tenant) — all use SessionStoreInterface/RequestRuntimeInterface exclusively."
|
|
},
|
|
{
|
|
"criterion_id": "SC-002",
|
|
"criterion": "CoreStarterkitContractTest::testPagesUseRequestInputInsteadOfSuperglobals passes (exit 0).",
|
|
"result": "pass",
|
|
"evidence": "QG-003 in execution report: exit 0, 11 tests, 6116 assertions. The specific test testPagesUseRequestInputInsteadOfSuperglobals checks all 7 superglobal patterns ($_POST, $_GET, $_FILES, REQUEST_METHOD, $_SESSION, $_SERVER, $_COOKIE) across all pages/**/*.php. Previously failed with 85 $_SESSION + 2 $_SERVER violations. Now passes clean."
|
|
},
|
|
{
|
|
"criterion_id": "SC-003",
|
|
"criterion": "Full PHPUnit suite passes (QG-001 exit 0) — no regressions introduced.",
|
|
"result": "pass",
|
|
"evidence": "QG-001 in execution report: exit 0, 429 tests, 10703 assertions, 0 failures. 1 warning and 1 deprecation present (pre-existing, not introduced by migration). No test count decrease from prior run (429 matches AUTH-LOGIN-REVIEW-001 baseline)."
|
|
},
|
|
{
|
|
"criterion_id": "SC-004",
|
|
"criterion": "PHPStan level 5 passes (QG-002 exit 0) — no type errors from migration.",
|
|
"result": "pass",
|
|
"evidence": "QG-002 in execution report: exit 0, 0 errors. SessionStoreInterface::get() return types and RequestRuntimeInterface::ip() return type are compatible with the migrated call sites. PHPStan scans config/, lib/, pages/, tests/ — all 87 changed page files included in analysis scope."
|
|
},
|
|
{
|
|
"criterion_id": "SC-005",
|
|
"criterion": "PHP-CS-Fixer passes (QG-006 exit 0) — all migrated files follow code style.",
|
|
"result": "pass",
|
|
"evidence": "QG-006 in execution report: final run exit 0. Initial cs:check failed on import ordering in migrated pages (new use-statements for SessionStoreInterface/RequestRuntimeInterface inserted without respecting ordered_imports). Executor ran php-cs-fixer fix scoped to pages/ and re-verified. Both the failure and fix are documented in the commands array."
|
|
}
|
|
],
|
|
"missing_or_wrong": []
|
|
}
|