Am 21. Februar 2023 war es soweit: Die kostenlose Entwicklungsumgebung Netbeans 17 wurde veröffentlicht.
Netbeans wird dieses Jahr 26 Jahre alt und erhält immer noch 4 große Updates pro Jahr. In Netbeans 17 sind gemäß den Netbeans IDE Release Notes 373 Commits (= Änderungsschritte im Quellcode) eingeflossen.
In diesem Artikel geht es vor allem um die Verbesserungen und Neuerungen rund um PHP.
Nicht lange lesen sondern gleich ausprobieren? Hier geht’s zum Download:
Keine Lust auf Experimente? Wer lieber bei Version 16 bleiben möchte, findet hier den Artikel über das Release von Netbeans 16.
Was ist neu in Netbeans 17?
Es wurden mehrere kleine Fehler behoben.
Groß- / Kleinschreibung bei CSS-Properties
CSS-Properties (z. B. “background-color”) sind case-insensitive. Das heißt, dass beide folgenden Code-Beispiele korrekt sind:
h1 { background-color: white; }
h1 { BackGround-colOR: white; }
Netbeans hatte das aber bisher als Fehler gewertet (s. Screenshot):
In Netbeans Version 17 ist dieser Fehler nun behoben.
Verbesserungen für PHP in Netbeans 17
- (Leider kein) Verbessertes Verhalten von {@inheritDoc} in DocBlock-Kommentaren
Laut Ankündigung sollte der {@inheritDoc} nun endlich in den DocBlock-Kommentaren auch für Konstanten und Klassenvariablen funktionieren. In meinen Tests mit Netbeans 17 funktioniert {@inheritDoc} im Prinzip überhaupt nicht. - PHP 8.2 Support: Beim Anlegen eines neuen PHP-Projektes steht nun bei der Sprachauswahl “PHP 8.2” zur Verfügung.
- PHP 8.2 Support:
null
,false
, undtrue
stehen jetzt als eigenständige Typen zur Verfügung
Auf den ersten Blick erscheinen diese Typen wenig sinnvoll. Sie helfen jedoch noch stärker zu typisieren. Z. B. wenn eine Funktion nurtrue
odernull
zurückgibt, ist?true
besser als Type-Hint geeignet als?bool
- PHP 8.2 Support: Readonly werden nun unterstützt
- PHP 8.2 Support: Verwenden von Eigenschaften eines Enums in const Ausdrücken
Bisher konnte man in Const-Ausdrücken innerhalb eines enums nicht die Eigenschaften des Enums verwenden – bzw. hat Netbeans dies als Syntaxfehler gewertet:
Mit Netbeans 17 wurde dieser Fehler behoben:
- PHP 8.2 Support: In Traits können nun Konstanten definiert werden
- PHP 8.2 Support: Disjunctive Normal Form Types können nun verwendet werden
Disjunctive Normal Form Types ermöglichen es, eine Kombination aus verschiedenen Klassen und Interfaces für die Typdefinition einer Variablen zu verwenden. Netbeans 16 konnte damit noch nicht umgehen:
Netbeans 17 hat im Bereich der Disjunctive Normal Form Types etwas dazugelernt:
- Ungültige Funktionsnamen in Enums werden nun zuverlässiger erkannt
- Der
boolean
-Typ wurde entfernt