I recently built an SSO login using Entra ID (which was thankfully single-tenant) and I basically had to keep randomly stabbing in the dark until I got it to work with the correct scopes and extra fields returned with the access token.
Trying to search for any kind of Getting started guide just took me to child pages several levels deep full of incomprehensible Microsoft jargon and hyperlinks to helpful-sounding but ultimately similarly useless articles.
While converting arrays to collection-object is a suitable option that does work, it would feel much more "native", if there were extension methods for Iterable / Traversable.
$arr = [
new Widget(tags: ['a', 'b', 'c']),
new Widget(tags: ['c', 'd', 'e']),
new Widget(tags: ['x', 'y', 'a']),
];
$result = $arr
|> fn($x) => array_column($x, 'tags') // Gets an array of arrays
|> fn($x) => array_merge(...$x) // Flatten into one big array
|> array_unique(...) // Remove duplicates
|> array_values(...) // Reindex the array.
;
feels much more complex than writing $result = $arr->column('tags')->flatten()->unique()->values()
having array extension methods for column, flatten, unique and values.1: https://kotlinlang.org/docs/extensions.html#extension-functi...
There’s tons of overlap between the two, and for casual development VSCode will usually be fine. But as a professional I rely on IDEA to make a living, and it rarely lets me down.
95% of everything I could ever need comes out-of-the-box, so I don’t need to go plugin hunting (though there is a broad range of IDEA plugins too). In fact the IDEA plugins are cross-compatible, so plugins for Rider will work in PhpStorm, PyCharm, Rubymine, etc.
The refactoring is outstanding, and leaps beyond what VSCode can do it. Basically it just understands my code like a real developer would. Not just simply checking syntax, but understanding project structure, naming conventions, coding styles, and more.
PhpStorm gives me access to a full debugger, with inline breakpoints and execution step controls. “Find Usages” is incredibly thorough and even understands dynamic symbol names in many cases.
Also I get a full MySQL and Redis client, right there in the UI. I can click on strings which refer to column names in my code, and they’ll appear in the DB panel instantly.
At the end of the day these are power-user features, but I’m glad to have them and feel significantly more productive in a JetBrains IDE. Embracing static analysis and a full IDE was probably the single most beneficial upgrade to my skills and career.
I really hope they move PhpStorm to the same payment model as Rider so I can also use it for my own non-work projects.
On google chrome, all is well. Just for FYI :) very cool project!
It's bad... isn't it? :O It's one of the first articles I wrote, and I posted it here thinking nothing of it, but alas, it hit the first page.
Although it was primarily written to introduce the JuiceShop project to people, so I guess that's good.
https://science.howstuffworks.com/environmental/green-scienc...