PHPackages                             wikimedia/at-ease - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. wikimedia/at-ease

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

wikimedia/at-ease
=================

Safe replacement to @ for suppressing warnings.

v3.0.0(1y ago)1517.9M↑19.9%12GPL-2.0-or-laterPHPPHP &gt;=7.4

Since Jun 10Pushed 2mo ago13 watchersCompare

[ Source](https://github.com/wikimedia/at-ease)[ Packagist](https://packagist.org/packages/wikimedia/at-ease)[ Docs](https://www.mediawiki.org/wiki/at-ease)[ RSS](/packages/wikimedia-at-ease/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (7)Versions (7)Used By (2)

[![Latest Stable Version](https://camo.githubusercontent.com/85de39237ae851d598ae615bc4d0fc1726be283ba24467d4a3bda36a59c9cfa5/68747470733a2f2f706f7365722e707567782e6f72672f77696b696d656469612f61742d656173652f762f737461626c652e737667)](https://packagist.org/packages/wikimedia/at-ease) [![License](https://camo.githubusercontent.com/adb6df61b73e24df73038bb4c79ecf2beabb934959325ac778adfbf4e77ce01c/68747470733a2f2f706f7365722e707567782e6f72672f77696b696d656469612f61742d656173652f6c6963656e73652e737667)](https://packagist.org/packages/wikimedia/at-ease)

at-ease
=======

[](#at-ease)

at-ease is a PHP library that provides a safe alternative to PHP's [@ error control operator](https://php.net/manual/en/language.operators.errorcontrol.php).

`@` 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 `file_exists()` and `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.

Usage
-----

[](#usage)

```
use Wikimedia\AtEase\AtEase;

// Suppress warnings in a block of code:
AtEase::suppressWarnings();
$content = file_get_contents( 'foobar.txt' );
AtEase::restoreWarnings();

// ..or in a callback function:
AtEase::quietCall( 'file_get_contents', 'foobar.txt' );
```

Running tests
-------------

[](#running-tests)

```
composer install --prefer-dist
composer test

```

History
-------

[](#history)

This library was first introduced in [MediaWiki 1.3](https://www.mediawiki.org/wiki/MediaWiki_1.3) ([r4261](https://phabricator.wikimedia.org/rSVN4261)). It was split out of the MediaWiki codebase and published as an independent library during the [MediaWiki 1.26](https://www.mediawiki.org/wiki/MediaWiki_1.26) development cycle.

---

###  Health Score

56

—

FairBetter than 98% of packages

Maintenance64

Regular maintenance activity

Popularity54

Moderate usage in the ecosystem

Community26

Small or concentrated contributor base

Maturity67

Established project with proven stability

 Bus Factor3

3 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~683 days

Recently: every ~829 days

Total

6

Last Release

581d ago

Major Versions

v1.2.0 → v2.0.02018-10-10

v2.1.0 → v3.0.02024-10-15

PHP version history (5 changes)v1.0.0PHP &gt;=5.3.3

v1.2.0PHP &gt;=5.5.9

v2.0.0PHP &gt;=5.6.99

v2.1.0PHP &gt;=7.2.9

v3.0.0PHP &gt;=7.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/b94d9718c06ec7c3fd7a104bc44966fb7464b9ec7411582343ea35a7a6a85f08?d=identicon)[mediawiki](/maintainers/mediawiki)

![](https://www.gravatar.com/avatar/716c86d71cbf921e7912a505f89d799de398fc0a3af0bd4c8862834b2d642bd7?d=identicon)[wikimedia](/maintainers/wikimedia)

![](https://www.gravatar.com/avatar/a91173408bf645b6ff78a309a9e55bde405d29c72e2b1ae8ec9f9df1225f76c3?d=identicon)[Krinkle](/maintainers/Krinkle)

---

Top Contributors

[![jdforrester](https://avatars.githubusercontent.com/u/881572?v=4)](https://github.com/jdforrester "jdforrester (15 commits)")[![legoktm](https://avatars.githubusercontent.com/u/81392?v=4)](https://github.com/legoktm "legoktm (15 commits)")[![reedy](https://avatars.githubusercontent.com/u/67615?v=4)](https://github.com/reedy "reedy (13 commits)")[![umherirrender](https://avatars.githubusercontent.com/u/1174884?v=4)](https://github.com/umherirrender "umherirrender (6 commits)")[![Krinkle](https://avatars.githubusercontent.com/u/156867?v=4)](https://github.com/Krinkle "Krinkle (6 commits)")[![atdt](https://avatars.githubusercontent.com/u/376462?v=4)](https://github.com/atdt "atdt (2 commits)")[![Daimona](https://avatars.githubusercontent.com/u/38216014?v=4)](https://github.com/Daimona "Daimona (2 commits)")[![bd808](https://avatars.githubusercontent.com/u/6469?v=4)](https://github.com/bd808 "bd808 (1 commits)")[![tgr](https://avatars.githubusercontent.com/u/145412?v=4)](https://github.com/tgr "tgr (1 commits)")[![DannyS712](https://avatars.githubusercontent.com/u/46829944?v=4)](https://github.com/DannyS712 "DannyS712 (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/wikimedia-at-ease/health.svg)

```
[![Health](https://phpackages.com/badges/wikimedia-at-ease/health.svg)](https://phpackages.com/packages/wikimedia-at-ease)
```

###  Alternatives

[nsulistiyawan/bpjs

Wrapper for BPJS Indonesia

425.2k](/packages/nsulistiyawan-bpjs)[wujunze/laravel-id-generate

Laravel package to generate and to validate a UUID according to the RFC 4122 standard. Only support for version 1, 3, 4 and 5 UUID are built-in. and generate number id, generate primary key

134.4k](/packages/wujunze-laravel-id-generate)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
