I am writing to formally announce that the voting period for the grapheme_mask RFC will begin on July 3, 2026 and remain open until July 11, 2026.
RFC Summary
This RFC proposes adding a new function grapheme_mask() to the intl extension, which enables developers to mask portions of a string while fully respecting grapheme cluster boundaries. This ensures that complex Unicode sequences such as emojis, flags, and combined characters are never corrupted during masking operations.
Voting Schedule
Vote Opens: July 3, 2026
Vote Closes: July 11, 2026
Target Version: PHP 8.6
Why This RFC Matters
Solves a real-world need for masking PII in multi-language environments
No backward compatibility breaks
Fully implemented and tested against complex grapheme clusters
Complements existing grapheme functions in the intl extension
If you have any remaining concerns or objections, please raise them before July 3. Once voting begins, only votes will be counted.
Thank you all for your time, feedback, and support throughout the discussion period. I am confident that this function will be a valuable addition to PHP’s internationalization toolkit.
I am writing to formally announce that the voting period for the grapheme_mask RFC will begin on July 3, 2026 and remain open until July 11, 2026.
Unfortunately this RFC is not ready to go into the voting phase yet.
As this is your first RFC it's good to get yourself familiar with the RFC policy [1] & [2].
If no major changes have been made for 14 days (or 7 days for minor changes), you can formally announce the voting a few days before the actual voting. The voting period should be at least 14 days.
Your RFC is currently in Draft, an older revision states it was Under Discussion. It also misses a link to the Discussion thread. It's important to fix that as well. You can take inspiration from other RFCs to see how they approach this.
I am writing to formally announce that the voting period for the grapheme_mask RFC will begin on July 3, 2026 and remain open until July 11, 2026.
---
RFC Summary
This RFC proposes adding a new function grapheme_mask() to the intl extension, which enables developers to mask portions of a string while fully respecting grapheme cluster boundaries. This ensures that complex Unicode sequences such as emojis, flags, and combined characters are never corrupted during masking operations.
---
Voting Schedule
- Vote Opens: July 3, 2026
- Vote Closes: July 11, 2026
- Target Version: PHP 8.6
---
Why This RFC Matters
- Solves a real-world need for masking PII in multi-language environments
- No backward compatibility breaks
- Fully implemented and tested against complex grapheme clusters
- Complements existing grapheme functions in the intl extension
- Yes → Accept grapheme_mask() into PHP 8.6
- No → Decline the proposal
---
Final Request
If you have any remaining concerns or objections, please raise them before July 3. Once voting begins, only votes will be counted.
Thank you all for your time, feedback, and support throughout the discussion period. I am confident that this function will be a valuable addition to PHP's internationalization toolkit.
Looking forward to your votes.
Best regards,
Sepehr
sepehrphpr@gmail.com
- the discussion link the the RFC points to the wrong thread
- if I am not mistaken you mentioned somewhere that you have the implementation ready; could you please link it in the RFC?
- I still do think `str_mask()` should be part of this for completeness
- a little less LLM usage in your communication would be nice.
On 01.07.26 00:36, سپهر محمودی wrote:
> Hi internals,
>
> I hope this email finds you well.
>
> I am writing to formally announce that the voting period for the
> grapheme_mask RFC will begin on July 3, 2026 and remain open until
> July 11, 2026.
>
> ---
>
> RFC Summary
>
> This RFC proposes adding a new function grapheme_mask() to the intl
> extension, which enables developers to mask portions of a string while
> fully respecting grapheme cluster boundaries. This ensures that
> complex Unicode sequences such as emojis, flags, and combined
> characters are never corrupted during masking operations.
>
> ---
>
> Voting Schedule
>
> - Vote Opens: July 3, 2026
> - Vote Closes: July 11, 2026
> - Target Version: PHP 8.6
>
> ---
>
> Why This RFC Matters
>
> - Solves a real-world need for masking PII in multi-language environments
> - No backward compatibility breaks
> - Fully implemented and tested against complex grapheme clusters
> - Complements existing grapheme functions in the intl extension
>
> ---
>
> RFC Link
>
> PHP: rfc:grapheme_mask
>
> ---
>
> Voting Options
>
> - Yes → Accept grapheme_mask() into PHP 8.6
> - No → Decline the proposal
>
> ---
>
> Final Request
>
> If you have any remaining concerns or objections, please raise them
> before July 3. Once voting begins, only votes will be counted.
>
> Thank you all for your time, feedback, and support throughout the
> discussion period. I am confident that this function will be a
> valuable addition to PHP's internationalization toolkit.
>
> Looking forward to your votes.
>
> Best regards,
> Sepehr
> sepehrphpr@gmail.com
- the discussion link the the RFC points to the wrong thread
- if I am not mistaken you mentioned somewhere that you have the
implementation ready; could you please link it in the RFC?
- I still do think `str_mask()` should be part of this for completeness
- a little less LLM usage in your communication would be nice.
--
Cheers
Nick
Hi, Sepehr
Thank you very much for your RFC.
But move to voting phase is too fast.
Please read that link: PHP: rfc:howto .
You must receive and apply to RFC.
And, Could you please draft pull request for grapheme_mask and
str_mask functions on GitHub?