Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Laravel Version Behavior

When laravelVersion is auto or an explicit supported release, inference follows verified Laravel boundaries. An unavailable, malformed, or out-of-range version keeps the conservative cross-version type.

The portable audit corpus and focused runtime suites established these boundaries. Detailed evidence is in the Laravel Version Inference Audit.

Contract changes in the portable corpus

BoundaryEffect
Laravel 12.0Top-level literal integer rule keys are preserved instead of reindexed from 0
Laravel 12.22integer:strict requires a native integer
Laravel 13.4ascii requires a native string

Rules and builders introduced in the supported range

VersionWhat changes for inference
10.21.1In / NotIn serialize enum cases
10.32present_if / present_unless exist; experimental presence refinement may apply
10.33hex_color; Rule::unless()
10.34extensions
10.36In / NotIn constructors accept scalar, variadic, and Arrayable inputs
10.46Enum::only() / Enum::except()
11.0prohibited_if_accepted, prohibited_if_declined; Laravel 10 trims password fields, 11+ does not
11.0.3list; required_if_declined
11.7Rule::array()
11.8contains
11.23Literal list participates in nested reconstruction; Dimensions ratio methods
11.40Fluent Date builder
11.41Date chains usable inside rule lists
11.42Fluent Numeric builder
11.43.2Date chains usable as standalone field rules
12.16in_array_keys; Rule::contains()
12.22doesnt_contain; Rule::doesntContain()
12.40encoding
12.44Rule::dateTime() and now-relative date predicates
12.55Numeric::integer(strict: true); Rule::string()
13.4hex_color rejects compatible Stringable objects
13.21Native-string-only base64
13.24array_keys; Rule::arrayKeys()

Before a builder or rule exists, a matching name may be an application macro or a missing validator method. Inference stays conservative there.

How version is chosen

See laravelVersion.