Releases: dshafik/bag
Releases · dshafik/bag
Laravel DebugBar Support
What's Changed
Full Changelog: 2.3.0...2.4.0
Laravel 12 support
var_export() support and improved exception messages
What's Changed
- docs: Add versioned docs by @dshafik in #73
- feat: Add support for var_export() by @dshafik in #75
- feat: Improve AdditionalPropertiesException message to include bag class name by @dshafik in #76
- feat: Add support for var_export() to Collection by @dshafik in #77
- fix: Fix Eloquent casting for collections by @dshafik in #78
- build: test docs build during PR by @dshafik in #79
- chore(deps): bump katex from 0.16.10 to 0.16.21 by @dependabot in #68
Full Changelog: 2.1.0...2.1.1
Add the Ability to Strip Extra Params
What's Changed
Full Changelog: 2.0.3...2.1.0
Fix an issue with eloquent casting and nested bags
What's Changed
- fix: ensure nested bags are cast correctly with Eloquent by @dshafik in #71 (thanks to @ agentphoenix for the report)
Full Changelog: 2.0.2...2.0.3
Fix an issue with name mapping when running validation
What's Changed
Full Changelog: 2.0.1...2.0.2
Fix a bug where route params overwrites explicitly set bag data
Breaking Changes: Support for Union Types & Fill Nullables
What's Changed
Breaking Changes
This release has one major breaking change, and a minor breaking change:
Casting with Union Types
To support union types fully, the \Bag\Casts\CastsPropertySet::set()
method signature has changed the first argument from:
public function set(string $propertyType, string $propertyName, \Illuminate\Support\Collection $properties): mixed
to:
public function set(\Bag\Collection $propertyTypes, string $propertyName, \Illuminate\Support\Collection $properties): mixed
To update your code and retain the previous behavior, you will want to do the following:
- public function set(string $propertyType, string $propertyName, \Illuminate\Support\Collection $properties): mixed
- {
+ public function set(\Bag\Collection $propertyTypes, string $propertyName, \Illuminate\Support\Collection $properties): mixed
+ {
+ $propertyType = $propertyTypes->first();
Fill Nullables
The behavior when instantiating a Bag has changed such that arguments that are nullable without a default value are filled with nulls. Previously, this would have caused exception to be thrown. This solves for a common scenario when you are filling a Bag from user input.
readonly class MyBag extends Bag {
public function __construct(
public ?string $name
}
}
// Bag 1.4.0 (and older)
MyBag::from([]); // throws MissingPropertiesException
// Bag 2.0.0+
MyBag::from([]); // MyBag { $name = null }
Full Changelog: 1.4.0...2.0.0