Xdebug Update: May 2022 – Derick Rethans

Xdebug Update: May 2022

In this monthly update I explain what happened with Xdebug development in this past month. These are normally published on the first Tuesday on or after the 5th of each month.

Patreon and GitHub supporters will get it earlier, around the first of each month.

You can become a patron or support me through GitHub Sponsors. I am currently 46% towards my $2,500 per month goal. If you are leading a team or company, then it is also possible to support Xdebug through a subscription.

In May, I spend 25 hours on Xdebug, with 27 hours funded.

Development

I continued my exploration of different set-ups that developers use, and have now merged the branch that adds support for the “pseudo-hosts” xdebug://gateway and xdebug://nameserver, which can be used with the xdebug.client_host setting instead of, and in addition to the Docker specific host.docker.internal. This pseudo-host automatically evaluates to the network gateway address, or name server as defined in /etc/resolv.conf, in the container, which will then allow Xdebug to connect to an IDE on the host machine.

I have not figured out how to do it will all different set-ups, so if you have extra information, or if I am still missing set-ups, feel free to comment on the Google Doc.

In the more complicated set-ups, it would likely be easier to use Xdebug Cloud as it has none of these networking complications.

The other big feature that I have worked on is the introduction of the capture of return values while debugging. This feature allows you to step into the “return value from function” phase, where PHP returns a value to the caller function. In this step, there will only be one variable available, which is the return value of that function.

Right now IDEs will have to opt into this new feature, with PhpStorm and the VS Code Plug-in teams confirming that they will make changes for this.

In this GIF you can see how this is useful with fluent interfaces:

Truncated by Planet PHP, read more at the original (another 657 bytes)

PHP Internals News: Episode 102: Add True Type – Derick Rethans

PHP Internals News: Episode 102: Add True Type

In this episode of “PHP Internals News” I talk with George Peter Banyard (Website, Twitter, GitHub, GitLab) about the “Add True Type” RFC that he has proposed.

The RSS feed for this podcast is https://derickrethans.nl/feed-phpinternalsnews.xml, you can download this episode’s MP3 file, and it’s available on Spotify and iTunes. There is a dedicated website: https://phpinternals.news

Transcript

Derick Rethans 0:00

Hi I’m Derick. Welcome to PHP internals news, the podcast dedicated to explaining the latest developments in the PHP language. This is episode 102. Today I’m talking with George Peter Banyard about the Add True Type RFC that he’s proposing. Hello George Peter, would you please introduce yourself?

George Peter Banyard 0:33

Hello, my name is George Peter Banyard, I work part time for the PHP Foundation. And I work on the documentation.

Derick Rethans 0:40

Very well. We’re co workers really aren’t we?

George Peter Banyard 0:43

Yes, indeed, we all co workers.

Derick Rethans 0:45

Excellent. We spoke in the past about related RFCs. I remember, which one was that again?

George Peter Banyard 0:51

Making null and false stand alone types

Derick Rethans 0:53

That’s the one I was thinking of him. But what is this RFC about?

George Peter Banyard 0:56

So this RFC is about adding true as a single type. So we have false, which is one part of the Boolean type, but we don’t have true. Now the reasons for that are a bit like historical in some sense, although it’s only from PHP 8.0. So talking about something historical. When it’s only a year ago, it’s a bit weird. The main reason was that like PHP has many internal functions, which return false on failure. So that was a reason to include it in the Union types RFC, so that we could probably document these types because I know it would be like, string and Boolean when it could only return false and never true. So which is a bit pointless and misleading, so that was the point of adding false. And this statement didn’t apply to true for the most part. With PHP 8, we did a lot of warning to value error promotions, or type error promotions, and a lot of cases where a lot of functions which used to return false, stopped returning false, and they would throw an exception instead. These functions now always return true, but we can’t type them as true because we don’t have it, and have so they are typed as bool, which is kind of also misleading in the same sense, with the union type is like, well, it only returns false. So no point using the boolean, but these functions always return true. But if you look at the type signature, you can see like, well, I need to cater to the case where the returns true and when returns false.

Derick Rethans 2:19

Do they return true or throw an exception?

George Peter Banyard 2:22

Yeah, so they either return true, or they either throw an exception. If you would design these functions from scratch, you would make them void, but legacy… and we did, I know it was like PHP 8.0, we did change a couple of functions from true to void. But then you get into these weird shenanigans where like, if you use the return value of the function in a in an if statement, null gets because in PHP, any function does return a value, even a void function, which returns null. Null gets coerced to false. So you now get like, basically a BC break, whi

Truncated by Planet PHP, read more at the original (another 18110 bytes)

Liip revolutioniert das Lohnsystem – Liip

Das neue Lohnsystem der selbstorganisierten Digitalagentur Liip gewinnt den Swiss HR Award in der Kategorie “Diversity, Inclusion, Equality”. Der Liip Deal stellt Mitarbeitende ins Zentrum. Ganz nach dem Motto digital, human progress wird die agile Weiterentwicklung zugänglich gemacht, denn viele fortschrittliche Organisationen stehen vor dem Schritt, neue Lohnsysteme einzuführen.

Der Swiss HR Award

Der Swiss HR Award zeichnet jährlich innovative Projekte in der “People-Welt” aus. Die Inhalte der Arbeiten müssen kreativ neue Wege beschreiten, mutig Neues ausprobieren und Wirkung zeigen – mit effektiven Resultaten. Der Swiss HR Award setzt damit Qualitätsstandards für Arbeitsmodelle und zukunftsweisende Ideen im HR Bereich. Die Fachjury beurteilt Projekte in sieben Kategorien. Mit dem neuen Lohnsystem wandelt Liip die Kultur und setzt sich aktiv für ein System ein, welches Diversität, Inklusion und Gleichstellung fördert.

Von link nach rechts: Zahida Huber, Sergio Mendolia, Nadja Perroulaz und Pascal Helfenstein

“Selbstbestimmung, Gleichstellung und Klarheit in der Entschädigung war unser Ziel. Das war nicht immer einfach zu balancieren. Aber wir haben es geschafft, ein System zu kreieren, dass zur Selbstorganisation passt und die Mitarbeitenden ins Zentrum stellt”. So Sergio Mendolia, Fullstack Developer and Salary Process Developer bei Liip.

Das neue Lohnsystem – der Liip Deal

Ein gleichberechtigtes Lohnsystem, das keine Unterschiede zwischen Berufsbildern und möglichst kleine Lohnunterschiede macht, das lebt Liip schon seit der Gründung. Um am Ball zu bleiben, entwickelt das Digitalunternehmen sein Entlöhnungssystem kontinuierlich weiter. Das Lohnsystem wurde 2016 entwickelt und basiert auf dem Konzept der Peer-Evaluation. Seit 2018 sind das System sowie die daraus resultierenden Löhne vollständig transparent: Alle Mitarbeitende wissen, wer was verdient und wie der Lohn berechnet wird; das bleibt auch so. Das neue System basiert auf 2 Kriterien mit jeweils 6 Stufen, Ein Basissalär basierend auf den Lohnrechner bildet die Grundlage. Mitarbeitende schätzen darin selbst ihre Expertise und den erzielten Impact ein, welcher dann von mindestens 2 Kolleg*innen überprüft und kommentiert wird. Das Alter und die Loyalität dazugerechnet, entsteht der individuelle Lohn.

Jurypräsident Jörg Buckmann übergibt den Swiss HR Award an Sergio Mendolia und Pascal Helfenstein

“Agiles Arbeiten gehört auch bei internen Veränderungen zum Standard. Wir teilen unsere Erfahrungen bewusst mit agilen Organisationen und anderen interessierten Unternehmen, denn Open Source ist in unserer DNA. Es macht Spass, mit solchen Projekten aktiv etwas zu bewegen.” sagt Pascal Helfenstein, Software Engineer und Salary Process Developer bei Liip.

Mitarbeitende im Zentrum des neuen Lohnsystems

Was ist revolutionär am neuen Lohnsystem von Liip? Es ist auf agile Organisationen zugeschnitten, impliziert eine hohe Eigenverantwortung und ist Zweck- und Wirkungsorientiert. Ein Lohnsystem also, das nicht verhandelbar ist, auf Selbst- und Peer-Evaluationen basiert und transparent ist. Alle Mitarbeitenden – auch die ehemalige Geschäftsleitung – werden in das System eingebunden. Es gilt die gleiche Bezahlung in allen Funktionen durch das Basissalär. Zusätzlich dazu werden höhere Gehaltsstufen mit der Expertise und Wirkung erreicht. Zudem macht Liip als Arbeitgeberin explizit, dass Mitarbeitende nicht nur mit ihrem monatlichen Gehalt entlöhnt werden, sondern mit einem ganzen Paket, dem “Liip Deal”.

“Mit unserem “Liip Deal” haben wir ein in der Schweiz neues und einzigartiges System entwickelt. Alle Prozesse und Systeme wurden von Grund auf neu definiert und entwickelt. Mit dem Lohnrechner als Basis bleiben die Löhne marktgerecht. Und wir nehmen die Mitarbeitenden in die Verantwortung, denn sie starten eine Lohnveränderung mit der Selbstevaluation”, sagt Nadja Perroulaz, Mitgründerin von Liip.

Die Digitalagentur freut sich sehr über die Auszeichnung am diesjährigen Swiss HR Award.
Mehr zum Thema: liip.ch/de/blog/salary-system-liip
Der Podcast des Agile Breakfast: swissict.ch/agile-breakfast-kompakt-002-mit-nadja-perroulaz