On February 21, 2023, the time had come: the free development environment NetBeans 17 was released.
NetBeans is celebrating its 26th anniversary this year and still receives four major updates annually. According to the NetBeans IDE Release Notes, NetBeans 17 includes 373 commits (= code changes).
This article mainly focuses on the improvements and innovations surrounding PHP.
Don’t want to read for long and want to try it out immediately? Download here:
Not in the mood for experiments? If you prefer to stick with version 16, you’ll find the article about the release of NetBeans 16 here.
What’s new in NetBeans 17?
Several minor bugs have been fixed.
Case sensitivity with CSS properties
CSS properties (e.g., “background-color”) are case-insensitive. This means that both of the following code samples are correct:
h1 {
background-color: white;
}
h1 {
BackGround-colOR: white;
}
However, up to now, NetBeans marked this as an error (see screenshot):

This bug is now fixed in NetBeans version 17.
Improvements for PHP in NetBeans 17
-
- (Unfortunately no) improved behavior of {@inheritDoc} in DocBlock comments
According to the announcement, {@inheritDoc} should finally also work in DocBlock comments for constants and class variables. In my tests with NetBeans 17, {@inheritDoc} basically doesn’t work at all.
- (Unfortunately no) improved behavior of {@inheritDoc} in DocBlock comments
-
- PHP 8.2 Support: When creating a new PHP project, “PHP 8.2” is now available as a language selection.
-
- PHP 8.2 Support:
null,false, andtrueare now available as standalone typesAt first glance, these types may seem not very useful. However, they help to make typing even more precise. For example, if a function only returns
trueornull,?trueis a better type hint than?bool.
- PHP 8.2 Support:
-
- PHP 8.2 Support: Readonly is now supported
-
- PHP 8.2 Support: Using properties of an enum in const expressions
Until now, it was not possible to use properties of an enum within const expressions – NetBeans marked this as a syntax error:
- PHP 8.2 Support: Using properties of an enum in const expressions

This bug was fixed in NetBeans 17:

-
- PHP 8.2 Support: Constants can now be defined in traits
-
- PHP 8.2 Support: Disjunctive Normal Form types can now be used
Disjunctive Normal Form types allow you to use a combination of different classes and interfaces for the type definition of a variable. NetBeans 16 could not handle this yet:
- PHP 8.2 Support: Disjunctive Normal Form types can now be used

NetBeans 17 has improved in the area of Disjunctive Normal Form types:

-
- Invalid function names in enums are now recognized more reliably
-
- The
booleantype has been removed
- The