Am 27.02.2026 um 14:31 schrieb Barel <[email protected]>:
> This is to announce the opening of the vote for the Prefix and Suffix 
> Functions RFC
> 
> RFC: https://wiki.php.net/rfc/prefix_suffix_functions
> Discussion thread: https://news-web.php.net/php.internals/129842

My reason to vote no was that
a) it is sort of a matrix of functions (prefix|suffix x ensure|remove|replace) 
a doing something very similar
b) there are several downsides to these specific implementations

The downsides I see at a first glance:
- case sensitive: str_suffix_replace(".jpeg", ".jpg", $filename) does not work 
with "Image.JPEG"
- *_ensure doesn't handle multiples: str_suffix_ensure($path, '/') does not 
handle "/api//"

This leads me to the conclusion that I'd probably stick to the old-school use 
of preg_replace which handles *all* the things these functions try to solve.
And while I agree that regular expressions are a bit harder to read they (to 
me) are simple enough while not having these downsides.

E.g. I would rewrite
        $file = str_suffix_replace('.jpeg', '.jpg', $file);
as
        $file = preg_replace('#\.jpeg$#i', '.jpg', $file);      # Case 
insentive, easily extended also handle jpe and jfif

And instead of
        $path = str_suffix_ensure($path, '/');
I would write
        $path1 = preg_replace('#/*$#', '/', $path, 1);  # Ensure one single 
slashes at the end
or maybe even
        $path = preg_replace('#/+#', '/', "$path/");    # Also normalizes all 
multiple slashes in the path

Side-note: Regular expressions handle all the stuff described in the Future 
Scope section.

Some people like long and descriptive special functions for (depending on the 
context) common cases but I realized that I often prefer being able to reuse 
powerful functionality instead of having to guess if a specialized function 
might exists even with modern dev environments make finding the right function 
easier. YMMV.

Regards,
- Chris

Reply via email to