Laravel 13 introduced cache.serializable_classes as a security hardening measure, defaulting to false to block deserialization of arbitrary PHP objects from the cache. This silently broke caching for any Laravel 13 user — geocoder results round-trip as Collections of Address objects, which the hardened default refuses to deserialize.
This release makes Laravel 13 caching work seamlessly without requiring you to maintain an allow-list.
If you're on Laravel 13 and have deliberately set cache.serializable_classes to a strict allow-list (or []) for security reasons, this release will merge the Geocoder model classes into your list at boot. The merge preserves your existing entries — but it does expand the allow-list beyond what you set.
If you want to keep your allow-list strictly under your own control:
// config/geocoder.php
'cache' => [
// ...
'auto_register_serializable_classes' => false,
],
When opted out, you have two coherent paths — see the README's Laravel 13 cache.serializable_classes section for the trade-offs.
Pure composer update. No required config changes, no API breakage, no migrations.
Laravel 11 / 12 users: this release is functionally inert for you — the new config key is a no-op on framework versions that don't use cache.serializable_classes.
`
Full Changelog: https://github.com/geocoder-php/GeocoderLaravel/compare/13.1.1...13.2.0
Full Changelog: https://github.com/geocoder-php/GeocoderLaravel/compare/13.1.0...13.1.1
Full Changelog: https://github.com/geocoder-php/GeocoderLaravel/compare/13.0.0...13.1.0
Str::slug when building reverse geocoding cache key by @valentin-dufois in https://github.com/geocoder-php/GeocoderLaravel/pull/204Full Changelog: https://github.com/geocoder-php/GeocoderLaravel/compare/5.0.0...13.0.0
Note: I haven't been able to run tests on this package as of late. Please report back if you notice issues. I thought it was important to get the update out so people aren't blocked, and will work on updating the tests over time.
WIP
getProvider() method to no longer be deprecated, and instead return the
currently set provider, or if none set, the first configured provider.doNotCache().Updated config and readme to correctly indicate cache is measured in seconds, rather than minutes.
reader to use array-notation, to allow config caching. Thanks @tooblue !->toJson() method when querying results.register() method.How can I help you explore Laravel packages today?