ParkHub PHP v4.13.0 — Modular UX Platform + Service Layer + Security #300
nash87
announced in
Announcements
Replies: 1 comment
-
v4.13.0 maintenance update (2026-04-19)
No backend changes. The PHP release is still v4.13.0. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
ParkHub PHP v4.13.0 — Modular UX Platform + Service Layer + Security
Released 2026-04-17. Biggest release since v4.8.0, bundling the same Modular UX story as the Rust edition plus a ground-up service-layer extraction. Full CHANGELOG →
Highlights
Modular UX platform
Parity with the parkhub-rust edition: admins can see, toggle, and configure every module from the web UI.
GET api/v1/modulesreturns a 68-module registry across 11 categories. Backwards-compat envelope: legacy{modules: {name: bool}}map preserved alongside the newmodule_infoarray.PATCH api/v1/admin/modules/{name}(admin-only,ModuleGatemiddleware): flipruntime_enabledon 13 safe modules without redeploying.PATCH api/v1/admin/modules/{name}/config: per-module JSON Schema config editor backed byopis/json-schema2.6.0. Five modules ship declared schemas./admin/modulesdashboard + Command Palette (Cmd+K) + ConfigEditor modal. Hand-rolled JSON Schema form renderer, zero external deps.AuditLogentry.Service layer extraction
Went from 3 services 77 controllers (~4 %) to 12 services shipped. Approximately 1,164 LOC of controller logic relocated into focused services:
BookingCreationService,AuthenticationService,ReportExportServiceStripeWebhookService,VehicleServiceAdminSettingsService,ComplianceServiceModuleConfigurationService,UserAccountServiceAdminUserManagementService,WebhookDispatchServiceAuditLogQueryServiceControllers shed:
BookingController1035 → 397 (across pass 1);AdminSettingsController494 → 351;ComplianceController327 → 82;AuditLogController241 → 77;AdminController330 → 251;WebhookV2Controller313 → 171 — and more.Security hardening
AdminAnalyticsController/AdminReportControllerpin explicit tenant predicates on every Booking User ParkingLot query; CSV exports filter BEFORE->cursor; rate-limit cache keys are now tenant-namespaced.Testing infrastructure
infection/infection0.32.6 mutation testing scoped toapp/Rules+app/Http/Middleware. Nightly @ 05:00 UTC.schemathesis4.15.2 nightly OpenAPI contract fuzzing @ 06:00 UTC (local smoke surfaced 48 contract violations across 5 categories — follow-up triage).@propertyPHPDoc on 13 Eloquent models +@mixinon 13JsonResourcesubclasses.Admin N+1 elimination
/api/v1/bookings/history?per_page=10went from 12 → 4 queries — 3× fewer.DB::enableQueryLog/count(DB::getQueryLog)assertion pattern.FormRequest migration complete
$request->validate(...)calls migrated; 6 remaining carry/-intentional:annotations with rationale.Dependencies
opis/json-schema2.6.0 (module config validation).infection/infection0.32.6 (mutation testing).laravel/pintcurrent stable.Tests
Live demo: https://parkhub-php-demo.onrender.com (login
admin@parkhub.test/demo).Architecture context: #183
Feedback welcome.
Beta Was this translation helpful? Give feedback.
All reactions