This release drops support for Drupal below 10.1, and embraces PHP 8.1 and Symfony 6 features.
Strong typehinting
All methods in code are now strictly typehinted. This leads to more functional code, but metadata plugin implementations need to be adjusted to comply with the new interface contracts.
Service autowiring and name changes
The services provided by the module have been renamed to their FQNC interfaces following Symfony 6 practices, with the exception of the file_metadata_manager that is still available, albeit deprecated. It will be removed in next major. Where possible, services now leverage Symfony autowiring capabilities vs explicit argument list.
FileMetadataPluginBase constructor is now final
This means that metadata plugin implementations cannot any longer implement the constructor and call its parent, but should rather add additional properties via the create() static method. The Exif plugin provides an example.
PHPStan level 5 compliance
The module is tested with PHPStan and passes level 5 rules.
Requirements
- The module *MUST* be installed using Composer, see Download contributed modules and themes using Composer.
- PHP 8.1 or higher
- Drupal 10.1.0 or higher
Changes
- Issue #3367739 by mondrake: Change lsolesen/pel dependency for fileeye/pel
- Issue #3030820 by mondrake, DieterHolvoet, alayham, juampynr, masterperoo: Stop logging errors when a file does not exist
- Issue #3331751 by mondrake: Make module pass PHPStan-5 rule level
- Issue #3331148 by mondrake: Modernize code for PHP 8.1
- Issue #3331098 by DieterHolvoet: Fix subclassing and stop overriding constructors
- Some modernization of \Drupal\file_mdm\FileMetadata
- Bump Drupal to ^10.1