On Mon, Mar 2, 2026, at 4:14 PM, Derick Rethans wrote: > On 2 March 2026 21:43:19 GMT, Bob Weinand <[email protected]> wrote: >>Hey Tim, >> >>On 2.3.2026 21:45:39, Tim Düsterhus wrote: >>> Hi >>> >>> please consider this email as a formal request for comments on my modest >>> proposal of adding a new `enum SortDirection` to PHP’s standard library. >>> >>> I have made the full proposal available on the World Wide Web at: >>> >>> https://wiki.php.net/rfc/sort_direction_enum >>> >>> Yours sincerely >>> Tim Düsterhus >> >> >>That's a good idea, but I wouldn't introduce such class without some usages >>at least. >> >>I'd recommend considering immediately upgrading the proposed functions to use >>SortDirection and redefine the constants in terms of the enum. >> >>I.e. set const SORT_ASC = SortDirection::Ascending; - similar for others like >>the SCANDIR_SORT_DESCENDING etc.. >> >>This is a reasonable BC break, which is also trivially fixed by simply >>accepting int|SortDirection in existing functions. > > > > If its a BC break, it can't go into a 8.× for something that isn't > *necessary*. > > But I also don't see how accepting both int and this new enum for > existing built-in functions is a BC break. > > Changing the existing constants to something else is probably not a > good idea, as other user functions or libraries might have reused them. > > cheers > Derick
I concur. I'd like to see the functions updated now in the RFC, so we get a sense of how many functions will be impacted. Not because I'm concerned about a widened type breaking anything, but more so readers can see the value this brings. The Yii DB layer (at least in v2, I haven't used v3 yet) used SORT_ASC/SORT_DESC for itself, so I agree that redefining those is unwise. Nit: Should we use Asc and Desc, for more compact code? Enums are great, but they can get verbose at times. :-) (SortDirection::Descending is 25 characters long, for what is ultimately a named boolean.) On the whole, though, I'm in favor. --Larry Garfield
