[Feature] Implementation of Text::maskValue()#19404
Open
SadiHassan wants to merge 3 commits intocakephp:5.nextfrom
Open
[Feature] Implementation of Text::maskValue()#19404SadiHassan wants to merge 3 commits intocakephp:5.nextfrom
[Feature] Implementation of Text::maskValue()#19404SadiHassan wants to merge 3 commits intocakephp:5.nextfrom
Conversation
Author
|
@dereuromark, some checks are not working, perhaps |
ADmad
reviewed
Apr 18, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Issue
Proposal for Text::maskValue()
Summary
Introduce a
Text::maskValue()static method toCake\Utility\Textfor masking portions of strings (that match any of an array of substrings) with a repeated character.This utility addresses a common need when displaying sensitive data (e.g., credit card numbers, API tokens, email addresses) and provides a consistent, reusable implementation. We already implemented
mask()function, which works with the index and length of the interest area to mask. This one will be a variation of that.This approach, ideated by @dereuromark here, will fully redact known values found within the input string.
Problem / Use Case
Applications frequently need to partially obscure sensitive data while preserving readability:
Proposed API
Behavior
Edge Cases
$needleswill return the original string.$needleswill be ignored.$characteris empty,*is used as the default value.Sample Input Output
CakePHP Version
5.next