wpstarter/framework
WpStarter Framework brings Laravel-style development to WordPress: service container, routing, Eloquent ORM, Blade views, and migrations. Build plugins and themes with modern PHP architecture while staying fully compatible with WordPress.
v2.1.6...v2.1.7). By SemVer and by the absence of any contradicting signal, this is a patch release with no breaking changes — no new framework baseline, no new PHP floor, no new required dependencies.wp_*, typed bindings for WP_User|null / WPDB, container-dispatched hooks) is untouched.^2.1.7, not ^2.0 — you get six patch releases of hardening for free on a single Composer constraint.| Risk Area | Severity (Updated) | Mitigation Strategy |
|---|---|---|
| Major-version break (1.x → 2.x) | High (unchanged) | Treat as a project, not a bump. Pin ^1.10 on production branches until the upgrade branch is fully green against ^2.1.7. |
| Laravel 12 upgrade prerequisite | High (unchanged) | Host app to Laravel 12 first on wpstarter/framework ^1.10; then cut over. Use composer why-not audits. |
| Ecosystem/companion package gating | High (unchanged) | Audit every Composer dependency for Laravel 12 + Symfony 7 support before scheduling the window. |
| Undocumented cumulative delta (2.0.0 → 2.1.7) | Medium (was "Sparse release notes") | Now a seven-release blind spot. Diff composer.json and public API across v2.0.0...v2.1.7; run PHPStan level 8; enumerate new config keys / published assets / bindings introduced in the 2.1.x minor. |
| Type Collisions / strict typing | Medium (unchanged) | Scope declare(strict_types=1) to the hybrid layer; audit WordPress hooks before global adoption. |
| Legacy Plugin Conflicts | Medium (unchanged) | Isolate plugins in a separate Composer vendor or autoload-dev; stage plugin updates independently. |
| Patch-release regressions (v2.1.7 specifically) | Low | Patch scope; standard regression suite is sufficient. Do not bundle this bump with the Laravel 12 upgrade — it should be a separate, trivially revertible change once on 2.x. |
| Caching Inconsistencies | Low–Medium (unchanged) | Serialize transients via json_encode(); verify Laravel 12 cache/session driver defaults. |
| Database Schema Conflicts | Low–Medium (unchanged) | Use Schema::table('wp_posts') for migrations; no new wpdb tables. |
| PHP 8.4-only regressions | Low (unchanged) | Matrix concern only — CI across 8.2/8.3/8.4. |
^2.1.7 — this supersedes the ^2.0 recommendation in the prior assessment. No other stack-fit changes.APP_STRICT_MODE=true in non-production first, expanded only after the hybrid layer is clean under PHPStan level 8.WP_* access behind typed container bindings; plugin/theme code treated as untrusted input at the adapter boundary.wp_* read-mostly via Eloquent with explicit casts.Phase 0: Laravel 12 Host Upgrade (Prerequisite — unchanged)
wpstarter/framework ^1.10.composer why-not laravel/framework ^12.0
composer why-not wpstarter/framework ^2.1
Phase 1: Package Cutover on a Branch (target updated)
composer require wpstarter/framework:^2.1.7 --with-all-dependencies
v1.10.x...v2.1.7, and separately inventory v2.0.0...v2.1.7 so newly added config keys and bindings are deliberately adopted or ignored.phpstan analyse --level 8 app/WpStarter plus the full PHPUnit suite.Phase 2: Hybrid Behavior Validation (unchanged)
Phase 3: Production Rollout
^1.10 revertible on the previous release branch."require": {
"php": "^8.2",
"laravel/framework": "^12.0",
"wpstarter/framework": "^2.1.7"
}
wpstarter/framework ^1.10.v2.0.0...v2.1.7 changelog; branch-cut to ^2.1.7; complete API diff and static analysis.^2.1.7 rather than ^2.0 shortens the convergence path.composer.json + run static analysis) is sufficient; do not stand up a heavyweight process for patches.| Failure Mode | Likelihood | Impact | Detection / Response |
|---|---|---|---|
| Composer resolves a Laravel-12-incompatible dependency | Medium | Blocks upgrade mid-window | Pre-flight composer why-not audit in Phase 0 |
TypeError in hook/adapter layer after signature changes |
Medium | Runtime 500s on hybrid endpoints | PHPStan level 8 + staging hook-dispatch tests |
| Legacy plugin breaks under stricter types | Medium | Partial admin/frontend breakage | Isolate plugins; test independently of framework cutover |
| Undetected behavior change from an undocumented 2.1.x patch | Medium (elevated) | Subtle data/rendering bugs with no upstream note to correlate against | Internal changelog discipline; static analysis on every patch bump; staging soak |
| Silent behavior change in config/service provider | Low–Medium | Wrong bindings, subtle data bugs | Source diff of published config; integration tests |
| Patch regression specifically in v2.1.7 | Low | Narrow, attributable breakage | Keep the bump as its own revertible commit |
| Rollback friction (migrations/config drift) | Low | Extended incident | Keep 1.10.x revert branch warm for one release cycle |
| Deprecation noise masking real errors | Low | Slower triage | APP_DEBUG=false in prod; structured logging |
^2.1.7 instead of ^2.0 is incrementally cheaper, since it avoids landing on a superseded release and then chasing patches.^2.1.7 / Laravel 12 / PHP 8.2 floor; retire the 8.4-only narrative from v1.10.0. Add a short "how we track this dependency's patches" note to close the documentation gap upstream leaves.wpstarter/framework ^1.10. The 2.x patch cadence is reassuring but does not unblock an ecosystem that isn't ready.How can I help you explore Laravel packages today?