pact-foundation/pact-php
Enables consumer driven contract testing, following the PACT foundation principles.
10.2.1
2.1M downloads/mo
#2865 most downloaded on Packagist
pact-foundation/pact-php
What this package is like to depend on
Last release 3 months ago
12 May 2026
Ships unpredictably
gaps range from 8 days to 12 months
Rarely documented
notes for 5 of 50 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
62 releases · first in 2017
4 releases in the last 12 months
see the full history below
Release timeline
59 releases · Jul 2017 to May 2026Releases
latest 60 of 62-
11.0.0-alpha212 May 2026 pre-releaseRelease notes
Open source →What's Changed
- chore(deps): update actions/cache digest to cdf6c1f by @renovate[bot] in #775
- chore(deps): update actions/checkout digest to de0fac2 by @renovate[bot] in #776
- style: Fix coding standard return type issue by @tienvx in #780
- refactor(compatibility-suite): Use PHP 8 attributes for hook by @tienvx in #779
- refactor(compatibility-suite): Use Behat attributes for context by @tienvx in #781
- refactor(compatibility-suite): Use Behat Transform attribute by @tienvx in #782
- refactor(compatibility-suite): Convert Behat config from yaml to php by @tienvx in #783
- chore(deps): Update ffi library to 0.5.3 by @tienvx in #784
- chore(deps): Update stub server to 0.7.0 by @tienvx in #785
- chore: fix PHPStan reported issues by @tienvx in #790
- test(xml-example): Test xml generators with multiple examples by @tienvx in #789
- docs: update docs for docusaurus upgrade by @kevinrvaz in #792
- chore(deps): update shivammathur/setup-php digest to accd612 by @renovate[bot] in #787
- chore(deps): update actions/cache digest to 6682284 by @renovate[bot] in #788
- chore(deps): update shivammathur/cache-extensions digest to dde08f6 by @renovate[bot] in #786
- chore(deps): update dependency google/protobuf to v5 by @renovate[bot] in #778
- test(compatibility-suite): Implement sync message by @tienvx in #796
- chore(deps): update shivammathur/cache-extensions digest to 256729b by @renovate[bot] in #797
- chore(deps): update ramsey/composer-install action to v4 by @renovate[bot] in #795
- chore(deps): update actions/cache digest to 27d5ce7 by @renovate[bot] in #793
- test: Add server sent events example by @tienvx in #798
- chore(deps): pin dependencies by @renovate[bot] in #791
New Contributors
- @kevinrvaz made their first contribution in #792
Full Changelog: 11.0.0-alpha1...11.0.0-alpha2
-
11.0.0-alpha125 Jan 2026 pre-releaseRelease notes
Open source →What's Changed
- chore(ci): Drop PHP 8.1, add PHP 8.5 by @tienvx in #763
- chore(deps): Increase php version requirement to ^8.2 by @tienvx in #764
- refactor!: Make properties readonly by @tienvx in #731
- feat: set default pact specification version to 4 by @tienvx in #765
- chore(deps): update actions/cache digest to 8b402f5 by @renovate[bot] in #767
- Merge release/10.x to master by @tienvx in #771
- chore(deps): Update ffi library to 0.5.2 by @tienvx in #760
- test: Update compatibility suite by @tienvx in #772
- feat: Support xml generators by @tienvx in #720
- chore: guzzle - don't throw exceptions by @tienvx in #773
- fix(ci): Fix 'error code -1073741819' on Windows by @tienvx in #774
Full Changelog: 10.2.1...11.0.0-alpha1
-
10.2.117 Jan 2026Release notes
Open source →What's Changed
- fix(ci): Run checks on branch release/10.x by @tienvx in #769
- fix: Fix PHPUnit 11 assertions not working with behat by @tienvx in #768
- chore: Use generated protobuf client by @tienvx in #770
Full Changelog: 10.2.0...10.2.1
-
10.2.007 Jan 2026Release notes
Open source →What's Changed
- ci: Github actions > use ubuntu arm runner by @tienvx in #717
- chore(deps): update coverallsapp/github-action digest to 648a8eb by @renovate[bot] in #718
- chore(deps): update actions/cache digest to 0c907a7 by @renovate[bot] in #721
- chore(deps): update actions/cache digest to d4323d4 by @renovate[bot] in #723
- test: Fix 'offset might not exist on array' errors by @tienvx in #725
- chore(deps): update actions/cache digest to 5a3ec84 by @renovate[bot] in #724
- chore(deps): update shivammathur/setup-php digest to cf4cade by @renovate[bot] in #726
- chore(deps): Update stub server for better performance by @tienvx in #730
- refactor: Replace roadrunner by php's gRPC server by @tienvx in #728
- docs: Add common issues related to loadding ffi to troubleshooting document by @tienvx in #729
- test: Test map matching for protobuf by @tienvx in #602
- fix: Fix syntax error in matching expression by @tienvx in #733
- fix: Fix matching rules not working with protobuf's repeated field by @tienvx in #734
- chore(deps): update shivammathur/setup-php digest to 27853eb by @renovate[bot] in #737
- chore(deps): update shivammathur/setup-php digest to 0f7f1d0 by @renovate[bot] in #738
- test: Test provider state generator for protobuf (with date field) by @tienvx in #736
- test: Test repeated matching for protobuf by @tienvx in #732
- test: Test provider state generator for protobuf by @tienvx in #735
- chore(deps): update shivammathur/setup-php digest to 2282b6a by @renovate[bot] in #740
- chore(deps): update shivammathur/setup-php digest to ccf2c62 by @renovate[bot] in #741
- chore(deps): update actions/cache digest to 0400d5f by @renovate[bot] in #742
- chore(deps): update shivammathur/setup-php digest to 2052987 by @renovate[bot] in #743
- chore(deps): update actions/checkout digest to 08eba0b by @renovate[bot] in #744
- chore(deps): update actions/checkout action to v5 by @renovate[bot] in #745
- chore(deps): update shivammathur/setup-php digest to ec406be by @renovate[bot] in #746
- docs: Add example matching exact query and header by @tienvx in #747
- feat: Support query parameter 'null' by @tienvx in #748
- chore(deps): update shivammathur/setup-php digest to bf6b4fb by @renovate[bot] in #749
- chore(ci): Replace macos 13 runner by @tienvx in #751
- chore(ci): Increase timeout by @tienvx in #752
- chore(deps): update actions/cache digest to 0057852 by @renovate[bot] in #750
- docs: add Alpine (musl) FFI troubleshooting and runtime requirements by @gupta-8 in #753
- chore(deps): update actions/checkout digest to 93cb6ef by @renovate[bot] in #754
- chore(deps): update coverallsapp/github-action digest to 5cbfd81 by @renovate[bot] in #755
- chore(deps): update actions/checkout action to v6 by @renovate[bot] in #756
- chore(deps): update shivammathur/setup-php digest to 44454db by @renovate[bot] in #757
- chore(deps): update actions/cache action to v5 by @renovate[bot] in #759
- fix(deps): update dependency symfony/process to v8 by @renovate[bot] in #758
New Contributors
Full Changelog: 10.1.1...10.2.0
-
10.1.109 Jan 2025Release notes
Open source →What's Changed
- chore(ci): prevent duplicate ci triggers by @JP-Ellis in #714
- chore(deps): update docker/setup-qemu-action digest to 53851d1 by @renovate in #712
- docs: Add use statements by @tienvx in #715
- fix: Revert breaking changes to FFI\Client::call and FFI\Client::get by @tienvx in #716
New Contributors
Full Changelog: 10.1.0...10.1.1
-
10.1.004 Jan 2025Release notes
Open source →What's Changed
- ci: Test PHP 8.4 by @tienvx in #693
- chore: Configure Renovate by @renovate in #695
- style: Fix method return type hint by @tienvx in #697
- deps: Upgrade to PHPStan 2.0 by @tienvx in #694
- chore: Don't validate example value with regex by @tienvx in #696
- feat: Dont allow null as example value by @tienvx in #701
- docs: Add troubleshooting doc (logging) by @tienvx in #704
- deps: Replace pact broker docker image by @tienvx in #706
- deps: Tell renovate to ignore docker-compose.yml by @tienvx in #707
- chore(deps): pin dependencies by @renovate in #698
- chore: Remove unused code by @tienvx in #708
- fix: Fix PHPStan no error to ignore by @tienvx in #709
- chore(deps): update dependency clue/framework-x to ^0.17.0 by @renovate in #710
- chore(deps): update shivammathur/setup-php digest to 9e72090 by @renovate in #711
- chore: Add form urlencoded example by @tienvx in #630
New Contributors
Full Changelog: 10.1.0-beta1...10.1.0
-
10.1.0-beta101 Nov 2024 pre-releaseRelease notes
Open source →What's Changed
- ci: Run all examples at once on windows by @tienvx in #637
- refactor: Split autoload for each example by @tienvx in #633
- feat: Add graphql example by @tienvx in #634
- deps: Allow update to PHPUnit 11.3 by @tienvx in #635
- feat: Add variables to graphql example by @tienvx in #638
- Use body parsing middleware by @tienvx in #639
- refactor: Install rector and auto refactor by @tienvx in #640
- refactor: Use PHP 8.0 constructor property promotion feature by @tienvx in #642
- chore: Add type hint by @tienvx in #643
- refactor: Wrap ffi call > pactffi_with_multipart_file_v2 by @tienvx in #644
- refactor: Wrap ffi call > pactffi_with_binary_file by @tienvx in #645
- refactor: Wrap ffi call > pactffi_with_body by @tienvx in #646
- refactor: Use ffi call wrappers by @tienvx in #647
- refactor: Wrap ffi call > get specification enum methods by @tienvx in #648
- refactor: Use ffi call wrappers by @tienvx in #649
- refactor: FFI client hide get() method by @tienvx in #650
- refactor: Move helper code to new directory by @tienvx in #651
- feat: Add composer test coverage command by @tienvx in #653
- refactor: Wrap ffi call > set interaction attributes methods by @tienvx in #652
- refactor: Wrap ffi call > new interaction methods by @tienvx in #654
- refactor: Wrap ffi call > setup interaction methods by @tienvx in #655
- refactor: Wrap ffi call > setup message interaction methods by @tienvx in #656
- fix: Fix wrong value of env PACT_DO_NOT_TRACK by @tienvx in #658
- refactor: Wrap ffi call > setup pact methods by @tienvx in #657
- refactor: Wrap ffi call > setup mock server methods by @tienvx in #659
- refactor: Wrap ffi call > setup verifier methods by @tienvx in #660
- Wrap ffi call remaining methods by @tienvx in #661
- Ffi client hide call method by @tienvx in #662
- refactor: PHPStan max level > Fix 'expects string, string|null given' by @tienvx in #663
- refactor: PHPStan max level > Fix 'Cannot call method on null' by @tienvx in #664
- refactor: PHPStan max level > Fix 'Property does not accept null' by @tienvx in #665
- refactor: PHPStan max level > Fix wrong return type by @tienvx in #666
- refactor: PHPStan max level > Fix wrong parameter type by @tienvx in #667
- refactor: PHPStan max level > Fix wrong parameter type by @tienvx in #669
- refactor: PHPStan max level > Fix 'Cannot access property on null' by @tienvx in #668
- refactor: PHPStan max level > Fix errors on tests by @tienvx in #670
- chore: Update PHPStan level to max by @tienvx in #671
- refactor: Replace Slim Framework by Framework X by @tienvx in #673
- refactor: Compare strings directly by @tienvx in #674
- refactor: Define enums by @tienvx in #676
- feat: Support string contains single quote in matching expression by @tienvx in #675
- refactor: Merge formatters into matchers by @tienvx in #677
- feat: Support generators in more matchers by @tienvx in #678
- feat: Support fromProviderState generator in matching expression by @tienvx in #679
- refactor: Use 'never' return type by @tienvx in #682
- chore: Add semver generator example by @tienvx in #680
- chore: Add eachValue matcher's complex value example by @tienvx in #681
- docs: Fix running example commands by @tienvx in #683
- docs: Mark version 10 stable by @tienvx in #684
- chore(compatibility-suite): Show log by @tienvx in #686
- fix(compatibility-suite): Clean up mock server by @tienvx in #688
- feat: Allow logging to multiple sinks by @tienvx in #689
- feat: Provider state > allow param mixed value by @tienvx in #691
Full Changelog: 10.0.0...10.1.0-beta1
-
10.0.004 Sep 2024Release notes
Open source →What's Changed
- docs: document multiple interactions by @individual-it in #620
- feat: Allow debug mock server in compatibility suites by @tienvx in #621
- fix: Fix type error in PHPUnit's configuration registry (temporarily) by @tienvx in #622
- Fix wrong content type in protobuf plugin 0.5 by @tienvx in #623
- fix: update pact-ffi to 0.4.22 by @YOU54F in #619
- fix: Fix 'Exception: String could not be parsed as XML' in xml's consumer test by @tienvx in #624
- chore: Update generated pact files by @tienvx in #625
- feat: Allow add custom provider headers by @tienvx in #627
- deps: Update ffi library to 0.4.23 by @tienvx in #629
New Contributors
- @individual-it made their first contribution in #620
Full Changelog: 10.0.0-beta2...10.0.0
-
10.0.0-beta220 Jun 2024 pre-release -
10.0.0-beta118 May 2024 pre-releaseRelease notes
Open source →What's Changed
- deps: Remove repository for pact-foundation/composer-downloads-plugin by @tienvx in #545
- docs: Update badges by @tienvx in #546
- docs: Use table to show supported specifications by @tienvx in #547
- docs: Add PHP Compatibility column to table by @tienvx in #548
- deps: Update ffi library to 0.4.19 by @tienvx in #550
- docs: Add preamble to readme by @tienvx in #553
- feat: Support 'arrayContains' matcher in query and header by @tienvx in #551
- chore: arrayContains and eachValue example for query and header by @tienvx in #552
- docs: Make comments more readable by @tienvx in #554
- docs: Move RELEASING.md to docs/ by @tienvx in #555
- docs: Move additional examples to docs/ by @tienvx in #556
- chore: Use both pactffi_set_comment and pactffi_add_text_comment by @tienvx in #557
- docs: Fix wrong variable by @tienvx in #558
- docs: Reorganize provider usage in readme by @tienvx in #559
- docs: Add Framework Integrations section to readme by @tienvx in #562
- docs: Update links to examples by @tienvx in #561
- deps: Update composer-downloads-plugin to 2.0 by @tienvx in #563
- chore: Use intersection types feature by @tienvx in #565
- chore: Add void return type to tests by @tienvx in #566
- chore: Add parameter type by @tienvx in #567
- chore: Fix bool to int casting errors by @tienvx in #568
- chore: Throw SocketNotOpenException by @tienvx in #569
- chore: Add more void return type by @tienvx in #570
- chore: Fix wrong types by @tienvx in #571
- chore: Specify type of array by @tienvx in #572
- chore: Assert json encoded value is string by @tienvx in #573
- chore: Use class-string PHPdoc by @tienvx in #574
- chore: Fix 'Variable $key might not be defined' by @tienvx in #575
- chore: Fix 'Match expression does not handle remaining value' by @tienvx in #576
- chore: Fix copy paste issues in MinimalFormatterTest by @tienvx in #577
- chore: Fix variable not callable by @tienvx in #579
- chore: Assert variable is string by @tienvx in #581
- chore: Fix call to undefined method by @tienvx in #582
- chore: PHPStan ignore line by @tienvx in #580
- chore: Fix wrong type by @tienvx in #578
- chore: Static code analysis for tests by @tienvx in #564
- docs(chore): remove erroneous span closing tag by @YOU54F in #583
- docs: Update ADDITIONAL-EXAMPLES.md by @YOU54F in #585
- docs(ci): add trigger update to docs.pact.io by @YOU54F in #584
- docs: Fix PHP version in wrong column by @tienvx in #587
- refactor: Use intersection types by @tienvx in #588
- refactor: Apply Visitor pattern for MatchingField matcher by @tienvx in #589
- refactor: Apply Visitor pattern for NotEmpty matcher by @tienvx in #590
- Revert "refactor: Apply Visitor pattern for NotEmpty matcher" by @tienvx in #594
- Revert "refactor: Apply Visitor pattern for MatchingField matcher" by @tienvx in #595
- refactor: Use intersection types by @tienvx in #596
- feat: Allow combining matchers by @tienvx in #597
- refactor: Extract traits by @tienvx in #598
- Formatter factory method by @tienvx in #599
- docs(chore): fix releasing doc heading by @YOU54F in #586
- refactor: Add formatters for Min/Max Type matchers by @tienvx in #601
- docs: Fix missing single quote in comment by @tienvx in #603
- docs: Refactor readme using structure from pact-js by @tienvx in #604
- ci: Upload code coverage to coveralls by @tienvx in #605
- docs: Fix contributors image in readme by @tienvx in #606
- docs: Fix code coverage badge by @tienvx in #607
- docs: Fix link to installation by @tienvx in #608
- deps: Update stub server to 0.6.0 by @tienvx in #610
- deps: Update ffi library to 0.4.20 by @tienvx in #611
- docs: correct pact-js to pact-php post doc refactor by @YOU54F in #612
- docs: Remove empty lines by @tienvx in #614
- Revert "deps: Update ffi library to 0.4.20" by @tienvx in #615
- feat: Support Alpine by @tienvx in #613
- chore: Remove unused Dockerfile by @tienvx in #616
Full Changelog: 10.0.0-alpha7...10.0.0-beta1
Thanks @Lewiscowles1986 @JP-Ellis @YOU54F @mefellows for your contribution to this release
-
10.0.0-alpha726 Mar 2024 pre-releaseNothing published for this version
-
10.0.0-alpha613 Mar 2024 pre-releaseNothing published for this version
-
10.0.0-alpha523 Jan 2024 pre-releaseNothing published for this version
-
10.0.0-alpha425 Dec 2023 pre-releaseNothing published for this version
-
10.0.0-alpha313 Oct 2023 pre-releaseNothing published for this version
-
10.0.0-alpha201 Aug 2023 pre-releaseNothing published for this version
-
10.0.0-alpha125 Jul 2023 pre-releaseNothing published for this version
-
9.1.113 Feb 2024Nothing published for this version
-
9.1.012 Feb 2024Nothing published for this version
-
9.0.014 Jul 2023Nothing published for this version
-
8.1.003 Oct 2022Nothing published for this version
-
8.0.031 Jul 2022Nothing published for this version
-
7.2.026 Jun 2022Nothing published for this version
-
7.1.225 Apr 2022Nothing published for this version
-
7.1.116 Feb 2022Nothing published for this version
-
7.1.022 Aug 2021Nothing published for this version
-
7.0.130 Dec 2020Nothing published for this version
-
7.0.030 Dec 2020Nothing published for this version
-
6.0.315 Oct 2020Nothing published for this version
-
6.0.206 Jul 2020Nothing published for this version
-
6.0.104 Jul 2020Nothing published for this version
-
6.0.0no dateNothing published for this version
-
5.0.7no dateNothing published for this version
-
5.0.610 Dec 2019Nothing published for this version
-
5.0.522 Jun 2019Nothing published for this version
-
5.0.430 May 2019Nothing published for this version
-
5.0.316 Dec 2018Nothing published for this version
-
5.0.216 Nov 2018Nothing published for this version
-
5.0.115 Nov 2018Nothing published for this version
-
5.0.009 Nov 2018Nothing published for this version
-
4.0.206 Jul 2018Nothing published for this version
-
4.0.128 Jun 2018Nothing published for this version
-
4.0.027 Jun 2018Nothing published for this version
-
3.1.118 May 2018Nothing published for this version
-
3.1.008 May 2018Nothing published for this version
-
3.0.318 Apr 2018Nothing published for this version
-
3.0.205 Mar 2018Nothing published for this version
-
3.0.101 Mar 2018Nothing published for this version
-
3.0.028 Feb 2018Nothing published for this version
-
2.2.121 Feb 2018Nothing published for this version
-
2.2.014 Feb 2018Nothing published for this version
-
2.1.006 Dec 2017Nothing published for this version
-
2.0.405 Dec 2017Nothing published for this version
-
2.0.317 Nov 2017Nothing published for this version
-
2.0.210 Nov 2017Nothing published for this version
-
2.0.130 Oct 2017Nothing published for this version
-
1.1.328 Oct 2017Nothing published for this version
-
1.1.006 Oct 2017Nothing published for this version
-
1.0.524 Jul 2017Nothing published for this version
-
1.0.421 Jul 2017Nothing published for this version