Fix: Add default values to GoalSettings for PHP 8.1+ compatibility #8002
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Resolves https://lw.slack.com/archives/C072VS4FT1A/p1750798143514369
Description
This PR fixes fatal errors that occur in PHP 8.1+ when using the GoalSettings class. The issue occurs when any of the expected keys are missing or null in the data array passed to the fromArray() method, because the strict types declared in the class will trigger a fatal error if invalid values are passed in.
Root Cause: PHP 8.1+ enforces stricter type checking, and when properties with strict type declarations receive null or undefined values, it causes fatal errors.
Solution: Added default values using the null coalescing operator to ensure all properties receive appropriate fallback values:
Affects
Goal Settings
Visuals
N/A - This is a backend compatibility fix with no visual interface changes.
Testing Instructions
Pre-review Checklist