QR-Rechnung: Die Schweizer Zahlungslandschaft wird digitaler

Am 30. Juni 2020 beginnt ein neues Zeitalter im Schweizer Zahlungsverkehr: Die neuen Rechnungen mit QR-Zahlteil können ab sofort anstelle der bisherigen Einzahlungsscheine verwendet werden. Die orangen und roten Einzahlungsscheine bleiben aber bis auf Weiteres gültig.

QR-Rechnung: Die Schweizer Zahlungslandschaft wird digitaler.

Ganze acht Jahre haben sich die Verantwortlichen mit der Einführung einer Nachfolgelösung für die veralteten Einzahlungsscheine herumgeschlagen und dabei die Einführung dreimal verschoben. Erst war der vorgesehene QR-Code zu klein gestaltet, 2018 waren dann die Firmenkunden (oder wohl besser deren Software) nicht rechtzeitig bereit und 2019 wollten einige Teilnehmer plötzlich noch Änderungen an der Gestaltung durchsetzen.

Was hinter der QR-Rechnung steckt, was sich damit ändert und wie Du mit PHP Rechnungen mit QR-Zahlteil erstellst, erfährst Du im heutigen Blogbeitrag. Und wir verraten auch, wie Du am schnellsten an QR-Rechnungen von cyon gelangst.

Was ist die QR-Rechnung?

Die QR-Rechnung ist das neue Format der in der Schweiz genutzten Einzahlungsscheine. Zentraler Bestandteil des neuen Formats ist, der Name verrät es, ein QR-Code. Dieser Code kann mit speziellen Lesegeräten, vor allem aber auch mit jedem Smartphone, gescannt werden. Ist auf dem Smartphone eine entsprechende Banking-App installiert, kann die Zahlung direkt in der App weiterverarbeitet bzw. ausgelöst werden. Alle notwendigen Informationen sind im QR-Code hinterlegt.

Der Zahlteil der neuen QR-Rechnung, der sich auch per Smartphone scannen lässt.

Der Zahlteil der neuen QR-Rechnung, der sich auch per Smartphone scannen lässt.

Was ist neu im Vergleich zum Einzahlungsschein mit Referenznummer (ESR)?

Den orangen Einzahlungsschein mit Referenznummer (ESR) kennst Du vielleicht von unseren Rechnungen. ESR ist in der Schweiz der Standard für Einzahlungen an Unternehmen. Dank der Referenznummer können wir Deine Zahlungen dem gewünschten Kundenkonto zuweisen und den Betrag automatisch verbuchen.

Die QR-Rechnung wird neu auf neutralem Untergrund dargestellt bzw. gedruckt. Für gedruckte Rechnungen ist damit kein anderes Papier mehr nötig. Eine Perforation ist jedoch weiterhin vorgeschrieben, damit die Einzahlungsinformationen weiterhin einfach abgetrennt werden können.

Resultat, wenn der QR-Code in der iOS-App von Postfinance gescannt wird.

Resultat, wenn der QR-Code in der iOS-App von Postfinance gescannt wird.

Im neuen QR-Code sind neben der bisherigen Referenznummer Daten wie Kontonummer, Empfängerin, der Betrag oder Bemerkungen gespeichert. Damit sparst Du Dir das mühsame Abtippen dieser Informationen in Deinem E-Banking und wir können Zahlungen noch besser zuordnen. Gleichzeitig sind die im QR-Code gespeicherten Informationen auch links und rechts vom QR-Code im Klartext sichtbar, mit denen Du die Angaben im E-Banking nochmals vergleichen kannst. Du solltest auch bei QR-Rechnungen immer nochmals prüfen, ob die Angaben der Zahlung in Deinem E-Banking korrekt sind. Grundsätzlich ist es möglich, dass im QR-Code beispielsweise ein anderer Betrag hinterlegt ist. Das ist die Schwachstelle der neuen QR-Rechnung, die sie mit den vielen Vorteilen für Zahlerinnen und Empfänger aber problemlos wettmacht.

Falls du Deine Rechnungen noch am Post- oder Bankschalter bezahlst, sei beruhigt: Mit der QR-Rechnung ändert sich für Dich vorerst nichts am gewohnten Prozess.

QR-Rechnungen mit PHP generieren

Wenn Du PHP-Applikationen entwickelst und QR-Rechnungen erstellen willst, dann solltest Du einen Blick auf die Library «Swiss QR Bill» werfen. Wir nutzen die Open-Source-Bibliothek auch für die Implementation in unser System froox. Manuel Reinhard, Geschäftsführer des Schweizer Ticketing-Anbieters Ticketpark und Entwickler der Library, hat uns dazu ein paar Fragen beantwortet:

Manuel, was war der Auslöser, dass Du Dich für die Entwicklung einer eigenen Library entschieden hast?
Ursprung war das eigene Bedürfnis bei Ticketpark, die QR-Rechnung möglichst früh anbieten zu können. Ich stellte fest, dass es noch keine eigenständige PHP-Library dafür gab. Also entschied ich mich, diese Gelegenheit zu nutzen, um ein hilfreiches Projekt an die Open-Source-Community zurückzugeben, von der wir selbst schon oft profitiert haben.

Kannst Du kurz umreissen, was man mit der Library alles machen kann?
Die Library dient in erster Linie dazu, mit PHP den QR-Code für die QR-Rechnung zu erstellen und dabei sichergehen zu können, dass alle Anforderungen erfüllt werden und der generierte Code valide ist. Zusätzlich kann man die gesamte QR-Rechnungsansicht ausgeben, welche den bisherigen Einzahlungsschein ersetzt. Aktuell kann man dies direkt als PDF mit TcPDF oder dann via HTML, was man flexibel weiterverarbeiten und dann mit Tools wie wkhtmltopdf, PrinceXML oder Docraptor wiederum zu PDFs konvertieren kann.

Was sind Deine Pläne für die Zukunft der Library?
Die Library ist bereits sehr umfassend und kann alle Anwendungsfälle der QR-Rechnung abdecken. Es geht nun darum, die Wünsche der Anwender und die Weiterentwicklung des QR-Rechnungs-Standard im Auge zu behalten. Und es wird natürlich ein Ziel sein, dass die Library in vernünftigem Rahmen mit der Weiterentwicklung von PHP Schritt hält.

Falls Du das Projekt unterstützen möchtest, wirf am besten einen Blick auf eines der offenen Issues bei GitHub. Manuel freut sich über Contributions.

Übrigens: Falls Du Rechnungen nicht selbst in Deiner Applikation generieren möchtest, sind Services wie zum Beispiel qr-invoice.ch eine Möglichkeit, QR-Rechnungen unkompliziert über eine API zu erstellen.

Wann kommt die QR-Rechnung bei cyon?

Bleibt die Frage, ab wann Du bei cyon per QR-Rechnung bezahlen kannst. Wir arbeiten aktiv an der Einführung der Funktion, möchten vorerst aber noch allfällige Kinderkrankheiten des neuen Systems abwarten. Ausserdem optimieren wir an der einen oder anderen Stelle noch unser System. Deshalb wirst Du nicht heute schon die erste cyon-QR-Rechnung in den Händen halten. Mit Hilfe der nun verfügbaren umfangreichen Testmöglichkeiten werden wir das System auf Herz und Nieren prüfen, um Dir dann ein möglichst reibungsloses und fehlerfreies Erlebnis bescheren zu können.

Wenn Du zu den Ersten gehören möchtest, die QR-Rechnungen von uns erhalten werden, stellst Du bereits jetzt den Rechnungsempfang in Deinem my.cyon-Konto auf «Elektronisch als PDF». Unseren Vorrat an Rechnungspapier im alten Format werden wir zuerst noch aufbrauchen, bevor Du dann auch Papierrechnungen im neuen QR-Look erhalten wirst.

Versteckt Google Chrome künftig den URL-Pfad?

Die Darstellung der URL in der Adresszeile des Browsers beschäftigt die Entwicklerinnen und Entwickler von Chrome schon länger. Im Juli 2018 begannen sie, nicht SSL-verschlüsselte Websites mit einem «Nicht sicher»-Hinweis zu brandmarken. Zwei Monate später entfernten sie den «grünen Balken», der bis dahin verschlüsselte Websites markierte, verbannten die Protokollanzeige http:// oder https:// aus der Adresszeile und liessen sogar die Subdomains wie «www.» oder «m.» aus der Anzeige verschwinden. Aus der URL «https://www.cyon.ch/» wurde so also in der Browser-Adresszeile ein simples «cyon.ch».

Versteckt Google Chrome bald URL-Pfade?

Jetzt wollen die Entwicklerinnen und Entwickler der Adresszeile im Browser offenbar erneut an den Kragen. In einer «Canary»-Version von Chrome für Entwicklerinnen und Entwickler ist die Möglichkeit aufgetaucht, die URL weiter zu kürzen. Anstatt des vollständigen Pfades wird so nur noch die Domain angezeigt: Anstelle von «cyon.ch/speedserver/vergleichstabelle» also nur noch «cyon.ch». Erst, wenn man mit der Maus über die Adresszeile fährt, zeigt der Browser die vollständige URL.

Screen-Recording Chrome Canary URL

Entdeckt wurde das Werkeln hinter den Kulissen, weil die Funktion in einem früher verteilten Canary-Build standardmässig aktiviert war. Das aber hätte so nicht veröffentlicht werden sollen, wie ein Google-Engineer twitterte:

In neueren Builds ist die Funktion nun nicht mehr standardmässig aktiv, kann aber in den Einstellungen manuell aktiviert werden.

Der Fall zeigt, dass Google trotz Widerstand aus der Community weiter an einer Vereinfachung der URL-Darstellung arbeitet. Und Chrome befindet sich damit in guter Gesellschaft, denn Apples Safari-Browser zeigt in der Adresszeile bereits seit langem nur noch den Domainnamen an. Erst nach einem Mausklick in die Adresszeile offenbart der Browser die komplette URL.

Und was bringts?

Aber was bringts eigentlich? Während Profis aus diversen Gründen eher an der Darstellung der vollständigen URL hängen, sind die Pfade dahinter für Laien eher kryptisch als hilfreich. Und sie lenken ab: vom eigentlichen Domainnamen. Ein Umstand, der zum Beispiel beim Erkennen von Phishingsites eine entscheidende Rolle spielen könnte. Wird nämlich nur die Domain angezeigt, liegt der Fokus eher auf der Erkennung der korrekten bzw. falschen Domain.

Kommt dazu: Für den Normalsurfer ist es zudem schlicht überflüssig, sich lange Pfade zu merken. Entweder, man gelangt direkt durch das Surfen auf einer Website zum gesuchten Inhalt, oder man wird durch einen Link aus Suchresultaten mit einem Klick dorthin geführt.

Der Trend ist klar: Wir kennen nur eine Hand voll URLs auswendig – den Rest googlen wir. Und wir verlassen uns darauf, dass die Suchmaschinen uns die Inhalte servieren, die wir tatsächlich gesucht haben.

So gesehen haben auch die Kritikerinnen und Kritiker im Netz nicht ganz unrecht, wenn sie Google vorwerfen, die Anzeige von URLs aus purem Eigeninteresse einzuschränken. Denn der Suchmaschinengigant hat ein vitales Interesse daran, die Nutzerinnen und Nutzer möglichst lange auf seinen Seiten zu halten. Wie das geht, zeigt Google bereits heute, beispielsweise auf mobilen Geräten innerhalb der Newssuche. Die Zielseiten führen dort in vielen Fällen auf mobile-optimierte AMP-Seiten, die wiederum bei Google gehostet sind. Die eigentliche Originalwebsite wird erst durch einen weiteren expliziten Klick aufgerufen. Das Resultat: Der Traffic verbleibt bei Google, das dafür verspricht, AMP-Inhalte schneller als das Original ausliefern zu können.

Bilder im Browser bearbeiten: 7 kostenlose Foto-Editoren

Ferienzeit ist Fotozeit. Und da Fotos nicht nur geschossen, sondern auch bearbeitet werden wollen, stellt sich nach den Ferien die Frage: Mit welchem Tool bearbeite ich meine Urlaubsschnappschüsse? Spontan fallen einem da Programme wie Photoshop und Lightroom aus dem Hause Adobe ein. Oder GIMP als kostenlose Open-Source-Alternative zu den teuren Adobe-Tools. Doch es gibt auch Foto-Editoren, die Du direkt im Browser nutzen kannst. Wir haben 7 solche Tools für Dich getestet.

Bilder im Browser bearbeiten: Kostenlose Foto-Editoren

Von Laie bis Profi: 7 kostenlose Tools für jeden Geschmack

Was früher nur mit dem Flash-Plugin möglich war, ist dank HTML5 ohne zusätzliche Plugins möglich: Bildbearbeitung im Browser, die nativen Applikationen in (fast) nichts nachsteht. Auf diese 7 Tools solltest Du einen Blick werfen, wenn Du auf der Suche nach einem Bildbearbeitungs-Tool bist, das sowohl auf Desktop- und Laptop-Geräten aber genauso gut auf mobilen Geräten funktioniert:

Canva Photo-Editor

Screenshot Canva Photo Editor

Der kostenlose Photo-Editor von Canva bietet die allernötigsten Grundfunktionen und eignet sich damit zur schnellen Bearbeitung von Schnappschüssen. Die Bedienung des Editors ist angenehm einfach, was nicht zuletzt der überschaubaren Anzahl an Funktionen zu verdanken ist.

Mit dem Editor lassen sich Filter über das eigene Bild legen, sowie die Helligkeit, der Kontrast und die Sättigung justieren. Ausserdem lässt sich das Bild zuschneiden, vergrössern, verkleinern, rotieren und spiegeln. Anschliessend lässt sich das bearbeitete Bild herunterladen oder im mächtigen Haupt-Tool von Canva weiterverarbeiten.

Fotojet

Screenshot Fotojet

Fotojet erinnert vom Angebot her an Canva, lassen sich neben dem Editieren von Fotos doch auch Collagen kreieren und diverse vorgefertigte Designtemplates zu Social-Media-Posts oder Druckprodukten verarbeiten. Die Editierfunktion für Fotos ist im Gegensatz zu Canva aber um einige Möglichkeiten reicher. So kannst Du zum einen die Belichtung sowie die Farben der Fotos bearbeiten und zum anderen stehen Dir jede Menge Filter zur Auswahl.

Alles in allem bietet Fotojet eine praktische Palette an Funktionen und die Oberfläche wirkt aufgeräumt. Wenn Du gerne etwas mehr Funktionen als beim Canva-Editor möchtest, bist Du bei Fotojet an der richtigen Stelle.

BeFunky

Screenshot BeFunky

Gegenüber dem Photo-Editor von Canva und Fotojet bewegt sich der Editor von BeFunky bereits in etwas professionellerem Territorium. Wie die beiden bereits genannten Tools, bietet BeFunky drei verschiedene Editier-Modi: Den Foto-Editor, einen Collagen-Generator sowie den Modus «Graphic Designer». Der Foto-Editor von BeFunky weiss vor allem mit seinen vielen verschiedenen Effekten zu begeistern, mit dem Du Deinen Fotos einen ganz persönlichen Touch verleihen kannst.

fotor

Screenshot fotor

Der Foto-Editor von fotor wartet mit einer ganzen Palette an Funktionen auf, die in Sektionen wie «Basic», «Effect» oder «Beauty» aufgeteilt sind. Dank einem kurzweiligen Video-Tutorial findest Du Dich in diesem Editor schnell zurecht. Mit fotor lassen sich sogar Bilder im RAW-Format bearbeiten, was sonst meistens den professionellen Tools vorbehalten ist.

Polarr

Screenshot Polarr

Sympathisch: Polarr begrüsst Dich beim ersten Aufruf mit einer kleinen Tour, in der die wichtigsten Funktionen vorgestellt werden. Anschliessend glänzt der Editor mit seiner Schlichtheit. Die Bedienung erfolgt über schlichte Icons am Bildrand, weshalb man dem Tool seinen grossen Funktionsumfang auf den ersten Blick gar nicht zutraut.

Schnell zeigt sich jedoch: Die Bedienung von Polarr macht richtig Spass und bietet auch eine deutschsprachige Oberfläche. Die Übersetzungen lassen jedoch noch zu wünschen übrig, weshalb wir hier die englische Variante empfehlen.

Photopea

Screenshot Photopea

Mit Photopea bewegst Du Dich auf professionellem Territorium. Der Editor, der optisch an Tools wie Photoshop oder GIMP erinnert, kann denn auch PSD-, XD-, XCF- und sogar SKETCH-Dateien verarbeiten. Auch RAW oder PDF sind für Photopea kein Problem. Bist Du mit professionellen Tools vertraut, wirst Du Dich auch bei Photopea schnell zurechtfinden.

Pixlr

Screenshot Pixlr

Pixlr geht in Sachen Bedienung in die ähnliche Richtung wie Photopea, orientiert sich also ganz klar an professionellen Bildbearbeitungsprogrammen. Verglichen mit Photopea wirkt die Oberfläche jedoch einen Tick verspielter, ohne dabei an Funktionalität einzubüssen. Dank der Ebenen-Funktion sind auch komplexe Bildbearbeitungen möglich. Ein Blick auf die Tutorials lohnt sich auf jeden Fall.

Unser Fazit: Für alle etwas dabei

Wir sind immer wieder beeindruckt, was heutzutage mit Web-Technologien alles möglich ist. Magst Du es gerne schlicht und einfach, solltest Du Dir Canva Photo-Editor oder Fotojet genauer anschauen. Polarr bietet Dir die perfekte Mischung aus minimalistischem Interface und maximalen Mäglichkeiten. Und wenn Du es gerne ganz professionell magst, sind Pixlr und Photopea die beiden Tools, die einen Platz in Deinen Favoriten verdient haben.

Die cyon-Top-5 der CMS 2020

Es dürfte wohl keine Überraschung sein: Auch dieses Jahr führt WordPress die Top-5 der bei cyon installierten Content-Management-Systeme mit grossem Vorsprung weiter an. Und das wahrscheinlich bekannteste CMS der Welt legt weiterhin zu: Im Vergleich zum Vorjahr hat dessen Nutzung bei uns im Vergleich zu den 4 anderen Top-CMS um weitere 2,8 Prozent zugenommen. WordPress kommt damit auf einen «Marktanteil» von fast 75 Prozent (74,8 Prozent, um genau zu sein).

Die cyon-Top-5 der CMS 2020.

Die Verfolger müssen hingegen weiter Federn lassen. Das zweitmeist genutzte CMS Joomla! kann zwar immerhin noch eine zweistellige Prozentzahl auf sich vereinen, ist mit genau 11 Prozent Anteil (minus 1,3 Prozent im Vergleich zum Vorjahr) am Top-5-Kuchen aber bereits weit abgeschlagen. Auf den Plätzen dahinter liegen Contao mit 6,4 Prozent (minus 0,4 Prozent), gefolgt von TYPO3 (5,2 Prozent, minus 0,7 Prozent) und Drupal (2,6 Prozent, minus 0,4 Prozent).

WordPress: Seit 2014 klarer Spitzenreiter

2013, als wir die Top-5-CMS der cyon-Kundinnen und Kunden zum ersten Mal veröffentlichten, sah die Welt der CMS noch etwas anders aus. Damals lag Joomla mit fast 45 Prozent Anteil noch klar an der Spitze, WordPress folgte mit 34,8 Prozent der Installationen aber bereits auf Platz zwei. Doch nur ein Jahr später hatte WordPress seinen Konkurrenten Joomla bereits überholt und diesen Platz bis heute nicht mehr hergegeben.

PHP 8: Was bringt die nächste Major-Version Neues?

Im Juni 2020 wird PHP 25 Jahre alt. Am 08.06.1995 präsentierte PHP-Erfinder Rasmus Lerdorf erstmals seine «Personal Home Page Tools (PHP Tools)» in einer Newsgroup. 2020 markiert aber nicht nur das 25-jährige Jubiläum, sondern wird auch für die nächste Major-Version der beliebten Skriptsprache sorgen.

PHP 8: Was bringt die nächste Major-Version Neues?

Bis Ende Juli 2020 wird noch kräftig an neuen Funktionen gebaut, Anfang Dezember soll dann die erste stabile Version von PHP 8.0 erscheinen. Wir stellen neue Features von PHP 8 vor, die wir besonders interessant finden.

Killerfeature JIT?

Als absoluter Star unter den Neuerungen von PHP 8 gilt die Einführung von JIT. JIT steht für «Just-in-Time». Genauer ist damit der sogenannte Just-in-Time-Compiler gemeint. Just-in-Time-Compiler? Wir erklären’s.

Ein JIT-Compiler kommt höchstwahrscheinlich gerade jetzt zum Einsatz, wenn Du diesen Beitrag liest. JIT-Compiler sind nämlich in allen gängigen Browsern eingebaut, um die Ausführungsgeschwindigkeit von JavaScript zu erhöhen. Was für schnelle JavaScript-Ausführung sorgt, wird es ab Dezember 2020 damit auch in PHP geben.

Bisher: Übersetzer und Caching

PHP ist eine Skriptsprache, wird also von einem Interpreter in maschinenlesbaren Code übersetzt, damit der Server die Anweisungen umsetzen kann. Das geschieht in den meisten Fällen Zeile für Zeile, während eine PHP-Datei aufgerufen wird. Und weil PHP quasi bei jedem neuen Aufruf einer Datei bei Null anfängt, ist das ziemlich zeitaufwendig.

Damit immer wieder gleiche Aufrufe nicht jedes Mal neu berechnet werden müssen, gibt es seit einigen Versionen den OPCache. OPCache legt häufig aufgerufene Code-Teile als sogenannten OPCode (in anderen Sprachen als Bytecode bekannt) im Zwischenspeicher ab, den die Zend-VM danach direkt in Maschinencode umwandelt, der wiederum von der CPU (Prozessor) ausgeführt wird.

Neu: Heisser Code, direkt kompiliert

Im Gegensatz zu Skriptsprachen wie PHP oder JavaScript stehen Sprachen wie Java, C oder Rust. In diesen Sprachen wird der Programmcode komplett kompiliert, also in Maschinencode übersetzt, bevor das entsprechende Programm ausgeführt werden kann. Würde das bei PHP ebenfalls passieren, müsste am Beispiel einer Website bei jeder Änderung die komplette Website neu kompiliert werden.

In den meisten Fällen ist das natürlich nicht sinnvoll, weil damit die Dynamik der Scriptsprache verloren geht. Und hier setzt JIT an: Der JIT-Compiler prüft konstant, welche Programmteile ausgeführt werden. Erkennt der Compiler Stellen, die immer wieder ausgeführt werden und sich dabei nicht verändern, markiert er diese als «heiss» und legt sie als Maschinencode ab. Bei der nächsten Ausführung muss der Code damit nicht mehr interpretiert werden, was einen enormen Geschwindigkeitsgewinn bringt.

Doch Achtung: Im Vergleich zu PHP 7.4 sind mit PHP 8.0 und JIT bei Web-Applikationen keine Quantensprünge zu erwarten. Dazu sind bei den meisten Web-Applikationen die rechenintensiven Operationen schlichtweg vernachlässigbar klein.

Hingegen macht JIT PHP neu auch für Anwendungen attraktiv, für welche die Entwicklergemeinde die Sprache bisher links liegen liess: Machine-Learning, Grafik-Rendering oder Datenanalyse, um nur einige zu nennen. Nicht zuletzt legt JIT auch die Basis für PHP-Erweiterungen, die selbst in PHP geschrieben sind. Bisher musste man dazu auf C als Programmiersprache zurückgreifen, um performante Erweiterungen zu schreiben. Das PHP-Ökosystem werden diese Neuerungen bestimmt weiterbringen.

Kontrovers: Attributes

Eine der Neuerungen, die für kontroverse Diskussionen in der PHP-Community gesorgt hat, sind Attributes. In vielen anderen Sprachen als Annotations bekannt, machen es Attributes möglich, Meta-Daten in einer strukturierten Form mitzugeben. Bis anhin musstest Du dir mit Docblocks behelfen, um Meta-Daten zu hinterlegen. Dass Attributes eine gute Sache sind, darüber ist sich die PHP-Community einig. Für Kontroversen hat viel mehr die Wahl der Syntax gesorgt, an die sich mit der Zeit aber auch die Kritiker gewöhnen werden (müssen).

<<ExampleAttribute>>
class Foo
{
    <<ExampleAttribute>>
    public const FOO = 'foo';
 
    <<ExampleAttribute>>
    public $x;
 
    <<ExampleAttribute>>
    public function foo(<<ExampleAttribute>> $bar) { }
}

Constructor property promotion

Mit PHP 8 kannst Du die Klassendefinition und den Konstruktor für Wert- oder Datentransferobjekte nun auch kombinieren. Anstatt:

class Money 
{
    public Currency $currency;
 
    public int $amount;
 
    public function __construct(
        Currency $currency,
        int $amount,
    ) {
        $this->currency = $currency;
        $this->amount = $amount;
    }
}

kannst Du neu folgenden Code nutzen:

class Money 
{
    public function __construct(
        public Currency $currency,
        public int $amount,
    ) {}
}

Für die neue Syntax gibt es viele Variationen. Ein genauerer Blick auf den RFC lohnt sich: PHP RFC: Constructor Property Promotion

Neuer Return-Type: static

Bisher konntest Du self als Return-Type verwenden. Neu kannst Du z.B. bei einer Fabrikmethode korrekt static als Return-Type angeben. Das verleiht der Sprache noch ein kleines Stückchen mehr Typsicherheit.

class Test {
    public function createFromWhatever($whatever): static {
        return new static($whatever);
    }
}

::class auf Objekten

Eine kleine, aber feine Neuerung, wie wir finden: Mit PHP 8 kannst Du ::class auch auf Objekte anwenden, anstatt dafür get_class() nutzen zu müssen.

$object = new stdClass;
var_dump($object::class); // "stdClass"

Abschliessendes Komma in Parameterlisten

Abschliessende Kommas sind seit PHP 7.3 bereits für Methoden- und Funktionsaufrufe erlaubt. Mit PHP 8 ist nun auch in Parameterlisten dieses «Trailing Comma» valide. Fazit unseres Software-Engineering-Teams: 🎉

Vorher:

class Uri {
    private function __construct(
        ?string $scheme,
        ?string $user,
        ?string $pass,
        ?string $host,
        ?int $port,
        string $path,
        ?string $query,
        ?string $fragment // <-- 😠
    ) {
        ...
    }
}

Nachher:

class Uri {
    private function __construct(
        ?string $scheme,
        ?string $user,
        ?string $pass,
        ?string $host,
        ?int $port,
        string $path,
        ?string $query,
        ?string $fragment, // <-- 🎉
    ) {
        ...
    }
}

Neue Major-Version, einige Breaking Changes

PHP 8 ist eine neue Major-Version. Das bedeutet, dass einige Änderungen enthalten sind, die mit älterem Code nicht mehr kompatibel sind. Viele der Änderungen sind bereits seit einer der Minor-Versionen von PHP 7 als veraltet markiert, weshalb Du mit dem Wechsel auf PHP 8 generell keine Probleme haben solltest, wenn Du mit den Anpassungen in den vergangenen Versionen vertraut bist. Eine Liste mit allen Breaking Changes findest Du wie gehabt auf der Upgrade-Seite der PHP Group (zurzeit noch nicht auf php.net verfügbar).

Ganz viele neue Features

Neben den erwähnten neuen Funktionen wird PHP 8 noch eine ganze Menge an weiteren Neuerungen bieten. Im Blog des Entwicklers Brent Roose findest Du eine tolle Übersicht zu allen bereits feststehenden Änderungen in PHP 8.

Wie zu Beginn erwähnt, ist der «Feature Freeze» für Ende Juli 2020 geplant. Bis dahin wird bestimmt noch die eine oder andere neue Funktion hinzukommen, die es in die Version 8.0 schaffen wird. Wie zum Beispiel der ganz frische «Nullsafe Operator», über dessen Einzug in Version 8 die PHP Group in den nächsten Wochen abstimmen wird.