[PHP-DEV] [RFC] grapheme_mask – Vote Initiation on July 3rd

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

http://wiki.php.net/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

On 30/06/2026 6:36 pm, سپهر محمودی 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.

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.

[1] PHP: rfc:howto
[2] policies/feature-proposals.rst at main · php/policies · GitHub

--
Regards,

Jordi Kroon

Hey Sepehr,

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

2026年7月1日(水) 12:45 Nick Sdot <php@nicksdot.dev>:

Hey Sepehr,

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?

Regards
Yuya

--
---------------------------
Yuya Hamada (tekimen)
- https://tekitoh-memdhoi.info
- youkidearitai (tekimen) · GitHub
-----------------------------