Great news! PHP is going to humiliate all its haters.
kriz9•7mo ago
I feel like if you treat temporary variables as documentation they feel less icky. All these examples with the pipeline operator cause way more mental overhead than reading temporary variable names.
V__•7mo ago
I think it really depends on what operations you are applying. Having one succinct named variable like $slug with a few simple pipeline calls like in the example is "self-documenting" and easy to read. However, some lambdas and non-standard function are definitely a place for nicely named temporary variables in my opinion.
xdfgh1112•7mo ago
Kind of a clunky and verbose syntax at the moment. I wonder what languages get pipe syntax right?
Obligatory: Raku supports pipe in both directions, passing input as the last parameter instead of requiring the function to take only one parameter. It also has a shorthand:
my @array = <7 8 9 0 1 2 4 3 5 6 7 8 9>;
my @final-array = @array.unique.sort.reverse;
say @final-array;
moebrowne•7mo ago
There is a complementary Partial Function Application RFC which, among other things, solves the one-parameter limitation. It allows a question mark to be substituted in for the piped value:
Based on the examples given in the blog post, this appears to be a massive step backwards for PHP. The language has been making an effort to clean itself up for years. The author claims that the temporary variable solution "feels icky". If we ultimately care about readability and performance, temporary variables seem ideal even with this change in the language. Modern compilers look for things like temporary variables when performing optimizations. PHP's compiler probably already does this, and if it doesn't, adding support for that would make more sense than adding some new syntax.
phendrenad2•7mo ago
I'm not complaining, and I respect the PHP team for continuing to try to improve the language, but I think that we might have passed the point where new additions to the language actually make it worse.
phplovesong•7mo ago
Still no unicode support? What in the hell are the devs doing? Looks like they still force that nasty mb_real_uppercase and pals on you.
syndeo•7mo ago
Maybe waiting for a major version, perhaps 9.0… hopefully.
Not that I have any skin in that game anymore; I moved my stack from PHP years ago.
kassner•7mo ago
What do you mean? It was released with PHP 6.0 /s
phendrenad2•7mo ago
And yet millions of websites built on PHP happily serve unicode content to billions of users. Strange.
phplovesong•6mo ago
I have seen many cases of weird casing on web pages (not critical, but usually embarrasing), not knowing the backend tech, but i always hard bet its php.
phendrenad2•6mo ago
I do think it's an issue, but a much, much smaller one than is immediately obvious. Most people aren't doing weird text processing on the fly in PHP.
moebrowne•7mo ago
HackerThemAll•7mo ago
kriz9•7mo ago
V__•7mo ago
xdfgh1112•7mo ago
Obligatory: Raku supports pipe in both directions, passing input as the last parameter instead of requiring the function to take only one parameter. It also has a shorthand:
my @array = <7 8 9 0 1 2 4 3 5 6 7 8 9>; my @final-array = @array.unique.sort.reverse; say @final-array;
moebrowne•7mo ago
$foo |> str_replace('hello', 'hi', ?);
https://wiki.php.net/rfc/partial_function_application_v2
tslocum•7mo ago
phendrenad2•7mo ago