<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/upgrading-phpunit-should-be-boring-og0pexkx1" -->

---
title: Upgrading PHPUnit should be boring | daily.dev
description: Upgrading PHPUnit stays painless when you read its deprecation warnings all year instead of ignoring them. PHPUnit ships a new major version every February,...
canonical: https://daily.dev/posts/upgrading-phpunit-should-be-boring-og0pexkx1
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Upgrading PHPUnit should be boring | daily.dev
og:description: Upgrading PHPUnit stays painless when you read its deprecation warnings all year instead of ignoring them. PHPUnit ships a new major version every February,...
og:url: https://daily.dev/posts/upgrading-phpunit-should-be-boring-og0pexkx1
og:image: https://api.daily.dev/og/posts/oG0pexKx1.png
og:image:alt: Upgrading PHPUnit should be boring
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Upgrading PHPUnit should be boring

**[PHPUnit Expert](https://daily.dev/sources/phpunit-expert)** · 9 min read · 0 upvotes · 0 comments

## Summary

Upgrading PHPUnit stays painless when you read its deprecation warnings all year instead of ignoring them. PHPUnit ships a new major version every February, with minors in between that never break your build; only majors remove features, and removal always follows a hard deprecation from the prior major. Run `--display-phpunit-deprecations` in CI, fix what it reports, and only then bump the composer.json constraint. The any() matcher shows the cycle: soft-deprecated in 12.5, hard-deprecated in PHPUnit 13 (February 2026), removed in PHPUnit 14 (February 2027). PHPUnit 13 also requires PHP 8.4.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://phpunit.expert/articles/upgrading-phpunit-should-be-boring.html>

## Questions this post answers

### What is the difference between --display-deprecations and --display-phpunit-deprecations in PHPUnit?

--display-deprecations shows deprecations your own code triggers, such as E_DEPRECATED from PHP itself or E_USER_DEPRECATED from dependencies, which matters for your next PHP upgrade. --display-phpunit-deprecations shows deprecations in PHPUnit's own API, which is the list relevant for your next PHPUnit major version upgrade. The option has existed since PHPUnit 10.5.32, released September 2024.

_Tracking PHPUnit deprecation flags before a major upgrade is easier with the right technical references on daily.dev._

### When is the any() matcher being removed from PHPUnit?

The any() matcher is being removed in PHPUnit 14, scheduled for the first Friday of February 2027. It was soft-deprecated in PHPUnit 12.5, then hard-deprecated in PHPUnit 13 in February 2026, giving a full year between the first runtime warning and removal.

_Developers planning PHPUnit upgrades can follow matcher deprecation timelines like this one on daily.dev._

### What PHP version does PHPUnit 13 require?

PHPUnit 13 requires PHP 8.4. It was released in February 2026, five weeks after active support for PHP 8.3 ended on 31 December 2025, meaning the PHPUnit requirement aligns with a PHP version that had already lost active support.

_Keeping PHP and PHPUnit version requirements in sync gets easier when developers track releases on daily.dev._

## Similar posts on daily.dev

- [Join the PHPUnit test cleanup for 7.2](https://daily.dev/posts/join-the-phpunit-test-cleanup-for-7-2-pnxhpj9it) · Make WordPress Core · 0 upvotes · 0 comments
- [Precision and Clarity: What is New in PHPUnit 13.2?](https://daily.dev/posts/precision-and-clarity-what-is-new-in-phpunit-13-2--aparnuw4v) · PHPUnit Expert · 0 upvotes · 0 comments
- [PHP Version Migration](https://daily.dev/posts/php-version-migration-c0ycuevnf) · JetBrains · 0 upvotes · 0 comments
- [Leaner, steadier PHPUnit runs for upcoming releases](https://daily.dev/posts/leaner-steadier-phpunit-runs-for-upcoming-releases-ttpmkxduo) · Make WordPress Core · 0 upvotes · 0 comments

---

Tags: [#testing](https://daily.dev/tags/testing), [#php](https://daily.dev/tags/php), [#phpunit](https://daily.dev/tags/phpunit)

[View this post on daily.dev](https://daily.dev/posts/upgrading-phpunit-should-be-boring-og0pexkx1)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Upgrading PHPUnit should be boring","url":"https://daily.dev/posts/upgrading-phpunit-should-be-boring-og0pexkx1","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/upgrading-phpunit-should-be-boring-og0pexkx1"},"datePublished":"2026-10-27T05:16:06.871Z","dateModified":"2026-10-27T05:16:40.631Z","description":"Upgrading PHPUnit stays painless when you read its deprecation warnings all year instead of ignoring them. PHPUnit ships a new major version every February,...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/e9bd2505d85b51494d57cee60b8f029a?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/e9bd2505d85b51494d57cee60b8f029a?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"PHPUnit Expert","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"PHPUnit Expert","logo":"https://media.daily.dev/image/upload/s--FMZoysoG--/f_auto,q_auto/v1774964057/logos/phpunit-expert?_a=BAMAMiWQ0","url":"https://daily.dev/sources/phpunit-expert"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/upgrading-phpunit-should-be-boring-og0pexkx1","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"testing,php,phpunit","timeRequired":"PT9M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"PHPUnit Expert","item":"https://daily.dev/sources/phpunit-expert"},{"@type":"ListItem","position":3,"name":"Upgrading PHPUnit should be boring"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/upgrading-phpunit-should-be-boring-og0pexkx1#faq","mainEntity":[{"@type":"Question","name":"What is the difference between --display-deprecations and --display-phpunit-deprecations in PHPUnit?","acceptedAnswer":{"@type":"Answer","text":"--display-deprecations shows deprecations your own code triggers, such as E_DEPRECATED from PHP itself or E_USER_DEPRECATED from dependencies, which matters for your next PHP upgrade. --display-phpunit-deprecations shows deprecations in PHPUnit's own API, which is the list relevant for your next PHPUnit major version upgrade. The option has existed since PHPUnit 10.5.32, released September 2024. Tracking PHPUnit deprecation flags before a major upgrade is easier with the right technical references on daily.dev."}},{"@type":"Question","name":"When is the any() matcher being removed from PHPUnit?","acceptedAnswer":{"@type":"Answer","text":"The any() matcher is being removed in PHPUnit 14, scheduled for the first Friday of February 2027. It was soft-deprecated in PHPUnit 12.5, then hard-deprecated in PHPUnit 13 in February 2026, giving a full year between the first runtime warning and removal. Developers planning PHPUnit upgrades can follow matcher deprecation timelines like this one on daily.dev."}},{"@type":"Question","name":"What PHP version does PHPUnit 13 require?","acceptedAnswer":{"@type":"Answer","text":"PHPUnit 13 requires PHP 8.4. It was released in February 2026, five weeks after active support for PHP 8.3 ended on 31 December 2025, meaning the PHPUnit requirement aligns with a PHP version that had already lost active support. Keeping PHP and PHPUnit version requirements in sync gets easier when developers track releases on daily.dev."}}]}
```

