Conversation
Handles access to Collections properties more defensive as they are optional according Protocol (..stated the internet... ;) )
There was a problem hiding this comment.
Pull request overview
This PR adds defensive checks for optional properties in the $collection array when accessing bodyprefs and mimesupport fields. The changes prevent potential undefined index errors by using !empty() checks with appropriate default values.
Changes:
- Added
!empty()checks forbodyprefsandmimesupportcollection properties across calendar, contacts, tasks, notes, and mail export functions - Standardized
truncationhandling for tasks and notes to match the pattern used in calendar and contacts - Updated error logging to include the same defensive checks for consistency
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
@amulet1 : can you review this PR? Does it make sense? |
|
I am not a fan of This can potentially cause serious issues (maybe not in this particular case though). I think the idea here is to suppress warnings if some of the parameters were not defined by replacing them with default values. If so, I think (1) The difference is that (1) would convert '0' (or 0 or empty string) to empty array. In general case this is probably undesired. (2) would leave them intact and only use empty array for undefined values or null values, which looks more reasonable. There is an even cleaner way. Use null coalescing operator and it becomes this: I think (3) is what we should use going forward as a preferred way to fix potential issues with undefined variables. |
Handles access to Collections properties more defensive as they are optional according Protocol (..stated the internet... ;) )