PHPUnit

The de facto standard, programmer-oriented unit testing framework for PHP.

Framework
Composer
v13.4.3
20,072 stars
BSD 3-Clause License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
92 /100 Excellent
Development Activity 100
Maintenance 84
Community 84
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
88 /100 Excellent
Architecture 92
Code Quality 96
Innovation 82
Learning Curve 80

PHPUnit is the most widely used testing framework in the PHP ecosystem, an instance of the xUnit architecture that gives developers a structured way to write, organize, and run automated tests. It provides a TestCase base class, a comprehensive assertion API, test doubles (mocks and stubs), data providers, and fixtures, plus a full-featured command-line runner for executing suites and reporting results.

Beyond running tests, PHPUnit integrates code-coverage analysis, rich event and logging subsystems, and configuration via XML, making it the backbone of continuous-integration pipelines for millions of PHP projects.

What You Get

  • A TestCase base class with a large, expressive assertion API
  • Built-in test doubles: mocks, stubs, and spies
  • Data providers and fixtures for parameterized and shared-setup tests
  • A powerful CLI runner with filtering, grouping, and parallel-friendly output
  • Integrated code-coverage reporting and multiple logging/result formats

Common Use Cases

  • Writing and running unit tests for PHP classes and functions
  • Enforcing test coverage thresholds in CI pipelines
  • Mocking collaborators to test units in isolation
  • Driving test-driven development for PHP applications and libraries

Under The Hood

Architecture - PHPUnit is organized into clear subsystems under src/: Framework holds TestCase, assertions, and constraints; Runner and TextUI implement test discovery, configuration, and the CLI entry point (bin/phpunit); Event provides a typed event bus that decouples the runner from logging and reporting; Metadata parses attributes and annotations; and Logging emits JUnit/TestDox and other report formats. Tests are collected into suites and executed through the runner, which dispatches lifecycle events consumed by subscribers.

Tech Stack - Pure PHP requiring PHP >= 8.4.1 and a set of extensions (dom, libxml, mbstring, xmlwriter). It composes many focused sebastian/* and phpunit/* packages (php-code-coverage, comparator, diff, exporter, global-state), reflecting a strongly modular design where each concern is its own library.

Code Quality - The project is exceptionally mature and rigorously tested against its own suite, with codecov-tracked coverage, strict typing, and a large contributor base. Its long history (an instance of xUnit dating back over two decades) and disciplined release cadence make it a reference example of PHP engineering quality.

API Design - The public API is highly ergonomic and consistent: assertions read naturally (assertSame, assertInstanceOf), test doubles are created through a fluent builder, and attributes now express metadata cleanly. Extensive official documentation and near-universal community familiarity make the learning curve gentle for basic use, though advanced features like custom constraints and the event system reward deeper study.

Used by 34 apps in this directory

PHP
99%
MIT

Shlink

Developer Tools · Marketing

5,366

Self-hosted PHP URL shortener with a full REST API, dynamic redirect rules, and real-time visit analytics under your own domain.

View details
84
Repo Health
83
Technical
73
Dependency
Built with
PHP 99%
Updated 1 weeks ago
PHP
47%
AGPL 3.0

solidtime

Invoicing Finance · Productivity

9,027

Modern open-source time tracker for freelancers and agencies with invoicing, multi-org support, and Toggl/Clockify migration built in.

View details
84
Repo Health
81
Technical
67
Dependency
Built with
PHP 47%
TypeScript 28%
Vue 22%
Updated 1 weeks ago
Rust
46%
MIT

Svix

Automation · Developer Tools

3,463

Open source, self-hostable webhook infrastructure that handles delivery, retries, HMAC signing, and multi-tenant event management so you never have to build a webhooks system from scratch.

View details
91
Repo Health
77
Technical
67
Dependency
Built with
Rust 46%
C# 16%
Updated 6 days ago
PHP
83%
AGPL 3.0

tirreno

Monitoring · Security

1,552

Embed security inside your product — detect threats, fraud, and abuse in real time at the application layer

View details
67
Repo Health
73
Technical
82
Dependency
Built with
PHP 83%
Updated 3 weeks ago
PHP
84%
MIT

wallabag

Bookmarks Archiving

13,023

Self-hosted read-it-later app that saves clean, ad-free articles from any webpage for distraction-free reading across all your devices.

View details
93
Repo Health
81
Technical
60
Dependency
Built with
PHP 84%
Twig 13%
Updated 6 days ago
PHP
64%
Other

WordPress

Blogging · CMS

21,501

The world's most popular open-source CMS — now with a built-in AI client SDK, 196 native blocks, and full-site editing for PHP-powered publishing at any scale.

View details
88
Repo Health
58
Technical
59
Dependency
Built with
PHP 64%
JavaScript 21%
CSS 14%
Updated 5 days ago
PHP
71%
MIT

Yaffa

Invoicing Finance

112

Self-hosted personal finance app for long-term financial planning with AI-powered transaction parsing and investment tracking.

View details
80
Repo Health
78
Technical
67
Dependency
Built with
PHP 71%
Vue 24%
Updated 6 days ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers