split: extract PRV_Settings_Controller from settings-page (300-line fix)
class-prv-settings-page.php was 346 lines — the only file over the 300-line cap. Extract the four POST handlers (handle_save, handle_model_add, handle_model_update, handle_model_remove) into a new PRV_Settings_Controller class (class-prv-settings-controller.php). PRV_Settings_Page::register_hooks() instantiates the controller once, passing a nonce-verification callback (bound to require_admin_nonce()). All four admin_post_* hooks now delegate to the controller. All phpcs:disable/enable WordPress.Security.NonceVerification.Missing wrappers and sanitize_*/wp_unslash() calls traveled with the moved handlers. PHPCS stays green. Result: class-prv-settings-page.php 193 lines class-prv-settings-controller.php 213 lines All other production PHP files ≤300 lines Also: ARCHITECTURE.md file-tree updated; @see cross-refs added to both class docblocks; CHANGELOG 0.2.0 CI section updated. Version: 0.2.0
This commit is contained in:
@@ -102,3 +102,4 @@ Admin/Settings interface + correctness fixes. All adversarial-QA must-fixes addr
|
||||
- **P1-C:** Added `phpcs:disable/enable WordPress.Security.NonceVerification.Missing` around `$_POST` blocks in all four `handle_*()` methods in `class-prv-settings-page.php`; nonce is verified via `require_admin_nonce()` private helper.
|
||||
- **P1-D/E:** Expanded inline associative arrays to multi-line in `class-prv-config.php`, `class-prv-probe-runner.php`, `class-prv-settings-renderer.php`, `class-prv-model-test-ajax.php`; fixed param-comment spacing in `class-prv-model-registry.php`; capitalised docblock long-description first word.
|
||||
- **PHPCS compliance:** Expanded remaining 5 inline associative arrays in `class-prv-settings-page.php` (`add_query_arg` calls + `PRV_Model_Registry::update` data array) to multi-line with trailing comma; corrected `@param` column alignment in `class-prv-probe-runner.php:update_api_key_status` and `class-prv-model-registry.php:update_health` to match longest-type rule. PHPCS: 0 errors / 0 warnings.
|
||||
- **300-line split:** extracted `handle_save`, `handle_model_add`, `handle_model_update`, `handle_model_remove` from `class-prv-settings-page.php` (346 lines) into new `class-prv-settings-controller.php` (`PRV_Settings_Controller`); settings-page delegates via nonce callback. All `phpcs:disable/enable WordPress.Security.NonceVerification.Missing` wrappers carried with the moved handlers. Both files now ≤213 lines; no file exceeds 300 lines.
|
||||
|
||||
Reference in New Issue
Block a user