at-ease is a PHP library that provides a safe alternative to PHP's @ error control operator.
@ is broken when
E_STRICT is enabled and it causes an unlogged, unexplained error if there is a fatal, which is hard to support. The proper method of handling errors is to actually handle the errors. For example, if you are thinking of using an error suppression operator to suppress an invalid array index warning, you should instead perform an
isset() check on the array index before trying to access it. When possible, always prevent PHP errors rather than catching and handling them afterward. It makes the code more understandable and avoids dealing with slow error suppression methods.
However, there are some cases where warnings are inevitable, even if you check beforehand, like when accessing files. You can check that the file exists by using
is_readable(), but the file could have been deleted by the time you go to read it. In that case, you can use this library to suppress the warnings and prevent PHP from being noisy.
// Suppress warnings in a block of code: \MediaWiki\suppressWarnings(); $content = file_get_contents( 'foobar.txt' ); \MediaWiki\restoreWarnings(); // ..or in a callback function: \MediaWiki\quietCall( 'file_get_contents', 'foobar.txt' );
composer install --prefer-dist composer test