WordPress Entwickler für Programmierung Ihrer Webprojekte
WordPress Entwickler für Programmierung Ihrer Webprojekte
  • Start
  • Unser Angebot
  • Blog
  • Kontakt
Avatar (Thumbnail) zum Blogeintrag

Statisch Self-Callable und Warnungen ab PHP 8.2. – array( ’self‘, ’name_einer_funktion‘ ) wird ab PHP 8.2. zum Problem

Künstlerische Leitung: wp-entwickler | 9. September 2024

deprecated PHP 8.2 Versionsabhängig

Die Ausgangslage

Für WordPress-Code verwendet man häufig so genannte Callables, also Konstrukte, um Methoden einer Klasse aufzurufen, zb so:

Darüber haben wir hier schon etwas ausführlicher geschrieben:

https://wp-entwickler.at/3189/callables-in-php-oder-wie-man-klassen-und-methoden-funktionen-aufrufen-kann/

Im Code kann man also auf diesem Wege eine statische Methode aufrufen:

    Inhalt auf dieser Seite:

  1. Die Ausgangslage
  2. Self und Php 8.2
  3. Umfangreiche Ausführungen zum Thema & Exkurs: Hach Gutenberg...
  4. Die Lösung? zb self::class
  5. Links

Self und Php 8.2

Das „self“ in dieser Notierung wird ab PHP 8.2 zum Problem!

Auf der offiziellen PHP-Seite ist folgendes zu lesen:

(Wer sich tiefer einlesen will kann sich hier das ursprüngliche RFC zu Gemüte führen: https://wiki.php.net/rfc/deprecate_partially_supported_callables )

Ab PHP 8.2. wird eine Warnung geworfen:

Und geplant ist ab PHP 9, dass PHP einen Fehler wirft und damit den Programmablauf abbricht.

 

Telefon+436603100000
E-Mailsouri@wp-entwickler.at
AdresseWP-Entwickler
Safenauer-Straße 62,
8230 Hartberg

Umfangreiche Ausführungen zum Thema & Exkurs: Hach Gutenberg…

Wer sich genauer in die Thematik einlesen will, kann das in einem gut aufbereitetem Git-Issue machen.

Das Issue ist wirklich lesenswert für interessierte PHP-Entwickler.

Leider zeichnet das Issue aber auch das übliche Bild, wenn es um die Entwicklung von Gutenberg, bzw den WordPress-Blocks, geht:

Es ist Sand im Getriebe – um es milde zu formulieren. Genauer möchte ich hier im Blog nicht darauf eingehen. Wer hier fleißig mitliest weiß um unsere Kritik am Blockeditor.

Mir fällt bei solch trivialen Programmierer-Fehlern dann immer dieses Meme ein, und es passt einfach zu gut:

Aber hey, es ist ein normaler Prozess, dass sich Dinge ändern. Man kann nicht alles perfekt machen.

Mit jedem Versionssprung gibt es Anpassungsdruck, das ist 100% normal und es trifft auch andere wie hier https://github.com/aws/aws-sdk-php/issues/2467 oder hier   https://www.drupal.org/project/unused_modules/issues/3404077

 

Die Lösung? zb self::class

Statt einem String übergibt man nun die Klassen-Referenz!

Eine Möglichkeit wäre also self::class zu notieren, aber nicht in Anführungszeichen!

Es wird hier reine Referenz notiert und nicht der String. In der ersten Zeile sieht man die Lösung, in der zweiten das Problem :)

Links

  • https://www.php.net/manual/en/migration82.deprecated.php
  • https://github.com/WordPress/gutenberg/issues/44536
  • https://php.watch/versions/8.2/partially-supported-callable-deprecation

Navigation

Start Unser Angebot Blog

Impressum & Kontakt

wp-entwickler.at wird betrieben von

  • wp-entwickler Rene Souri
  • UID: ATU60950509
  • Safenauer-Straße 62
  • 8230 Hartberg

Wir lieben WordPress und freuen uns, mit Ihnen ein Projekt entwickeln zu können!

  • Impressum
  • AGB

wp-entwickler.at ist eine indit.at Division