From 529c043067d4acb40cdc72c5511311a23c975641 Mon Sep 17 00:00:00 2001 From: Elizabeth Barron Date: Tue, 26 May 2026 16:04:52 -0400 Subject: [PATCH 1/4] Publishing impact report 2025 blog post and image --- ...-27-impact-and-transparency-report-2025.md | 459 ++++++++++++++++++ .../php_foundation_stats_2025.png | Bin 0 -> 67123 bytes 2 files changed, 459 insertions(+) create mode 100644 source/_posts/2026-05-27-impact-and-transparency-report-2025.md create mode 100644 source/assets/post-images/2026/impact-report-2025/php_foundation_stats_2025.png diff --git a/source/_posts/2026-05-27-impact-and-transparency-report-2025.md b/source/_posts/2026-05-27-impact-and-transparency-report-2025.md new file mode 100644 index 00000000..5cf16da1 --- /dev/null +++ b/source/_posts/2026-05-27-impact-and-transparency-report-2025.md @@ -0,0 +1,459 @@ +--- +title: The PHP Foundation Impact and Transparency Report 2025 +layout: post +tags: + - report +author: + name: Elizabeth Barron + url: https://www.linkedin.com/in/elizabethn/ +published_at: 27 May 2026 +--- +## Executive Summary + +PHP turned 30 in 2025. With the Foundation’s support, the PHP project marked the year by shipping PHP 8.5. The Foundation also launched PIE 1.0, advanced a modernization of PHP's stream layer project, and authored roughly 42% of all commits to PHP's core. This work was supported by 536 sponsors and individual contributors, and it could not have happened without them. + +At the end of 2025, The PHP Foundation consisted of 8 volunteer board members, an Executive Director sponsored by JetBrains, and 11 contracted developers who worked part- and full-time to strengthen and improve the core PHP language through bug and security fixes, feature development, and contributing to the RFC process through discussion and development of new RFCs. + +The total contributions received from sponsors and individual donors was $730,534, which enabled The Foundation to advance its mission in a meaningful way. + + +### About the Foundation + +The Foundation’s main focus is to ensure the sustainability and long term viability of the PHP language. Our priorities continue to be: + +* Improving the language for users +* Providing high-quality maintenance +* Improving the project to retain current contributors and integrate new ones +* Promoting the public image of PHP + +It should be noted that The PHP Foundation does not control the decisions made by the PHP community regarding the language, nor does it assume any governance over the language itself. PHP has always been, and will continue to be a community-owned Open Source project. + + +## What we shipped in 2025 + +Leadership at The PHP Foundation coordinated several high-level initiatives, including: + +* The completion of a [Security Audit](https://thephp.foundation/blog/2025/04/10/php-core-security-audit-results/) by Open Source Technology Improvement Fund (OSTIF), funded by the Sovereign Tech Agency through the Sovereign Tech Fund (STF), and sustained security advisory work across the team +* The [addition of FrankenPHP](https://thephp.foundation/blog/2025/05/15/frankenphp/) to the PHP GitHub organization +* The development of the [official PHP SDK for MCP](https://thephp.foundation/blog/2025/09/05/php-mcp-sdk/), in collaboration with the Symfony Team and Anthropic + +In addition, in 2025, eleven Foundation-funded contractors collectively logged thousands of hours advancing PHP's language, runtime, security posture, ecosystem tooling, and community reach. + +Key achievements included: + +* Successful delivery of PHP 8.5 +* Launch of PIE 1.0 and initiation of the formal PECL deprecation process +* Launch of the STF Streams modernization project (530 hours) +* PHP Foundation representation at the OpenSSF Open Regulatory Compliance Working Group on the EU Cyber Resilience Act + + +## The PHP Foundation Staff + +Our 2025 team was stable and productive, and worked very well together. We ended 2025 by adding one more contractor to the team in H2: [Joe Watkins](https://thephp.foundation/blog/2025/09/25/joe-watkins/). + +Therefore, as of January 1, 2026, 11 Foundation developers work on PHP: + +* Arnaud Le Blanc [@arnaud-lb](https://github.com/arnaud-lb) +* David Carlier [@devnexen](https://github.com/devnexen) +* Derick Rethans [@derickr](https://github.com/derickr) +* Gina P. Banyard [@Girgias](https://github.com/Girgias) +* Ilija Tovilo [@iluuu1994](https://github.com/iluuu1994) +* Jakub Zelenka [@bukka](https://github.com/bukka) +* James Titcumb [@asgrim](https://github.com/asgrim) +* Joe Watkins [@krakjoe](https://github.com/krakjoe) +* Máté Kocsis [@kocsismate](https://github.com/kocsismate) +* Saki Takamachi [@SakiTakamachi](https://github.com/SakiTakamachi) +* Shivam Mathur [@shivammathur](https://github.com/shivammathur) + + +### Team Achievements +PHP Foundation 2025 contribution statistics infographic showing key metrics: Foundation developers contributed 2,929 commits and 662 merged PRs across 9 PHP repositories; 1,685 community PRs reviewed in php-src; Foundation developers authored 42% of commits, 32% of merged PRs, and 25% of bug-fix PRs in php-src; Foundation leads 90%+ of activity in php/pie, php/php-windows-builder, and php/web-downloads; 14 PIE releases shipped including version 1.0; team delivered 40+ international conference talks throughout 2025. The infographic presents these accomplishments in an organized, visually hierarchical layout highlighting the foundation teams productive year. + + +We acknowledge the limitations in providing any metrics; very rarely do metrics accurately represent the full scenario (for instance, a 1-line commit and a 100-line commit are counted equally in the overall number of commits). Additionally, some metrics are more difficult to capture than others. Therefore, we offer this set of obtainable metrics to collectively demonstrate the team’s impact. To clarify the data points above: + +* PRs merged = PRs that were authored by a contractor that were merged by anyone +* Community PR Reviews = PRs from other people that were reviewed/commented on by contractors +* % of Bug Fixes = the percent of all bug fix PRs that were authored by a contractor but merged by anyone in the community. PRs were considered “fixes” if they included the words “fix,” “resolve,” or “bug” in the title of the PR + + +#### Language & runtime + +* **URL/URI parsing RFC** (Máté Kocsis) passed in May after a multi-year effort, representing PHP 8.5's most significant standard-library addition in years, including upstream contributions to the uriparser C library. +* **Gina P. Banyard** drove the entire PHP 8.5 deprecations and warnings RFC across 173 merged PRs to php-src — roughly 16% of all merged PRs to php-src in 2025. +* **Arnaud Le Blanc's** Tail Call VM technique merged in August, removing PHP's dependency on a single compiler for peak performance; he also co-developed Partial Function Applications v2 and Context Managers with Larry Garfield. +* **Ilija Tovilo** was the team's leading committer to php-src (565 commits) and advanced the Pattern Matching RFC alongside deep performance work on zend_op size and TMP|VAR consolidation. +* **Saki Takamachi** delivered BCMath optimizations and created xsse, a portable SIMD abstraction library already in use in php-src. +* **Jakub Zelenka** progressed with implementation of JsonSchema support for the JSON extension. + +#### Security + +Jakub Zelenka led sustained multi-month investigations on multiple security advisories, which included the handling of PHP security releases. Jakub also represented the Foundation in the OpenSSF working group shaping EU Cyber Resilience Act compliance. David Carlier delivered a steady stream of overflow, double-free, and memory leak fixes across GD, ZIP, intl, PDO_SQLite, sodium, and Fiber, upstreaming several directly to libgd. Shivam Mathur is responsible for security upgrades to Windows PHP builds addressing 50+ CVEs/security issues, and continues to support builds for 100+ extensions for Windows. Derick Rethans patched an XSS in php.net and ran an emergency CVE response for the rsync server. + +#### Streams modernization (Sovereign Tech Fund) + +The STF underwrote a 530-hour modernization of PHP's stream layer, delivering a new Polling API, TLS 1.3 improvements with session resumption (PSK, tickets, early data), redesigned stream error handling, an io_uring/IOCP abstraction, modernized copy infrastructure (copy_file_range, splice, sendfile), filter seeking improvements, and socket option enhancements. This is an ongoing project and will see more progress in 2026. + +#### Ecosystem & infrastructure + +The Foundation has demonstrated meaningful contributions in several areas: + +* **PIE (the new PHP extension installer)**: James Titcumb authored 482 of 537 commits to php/pie (roughly 90% of the codebase) and 109 of 156 merged PRs. He shipped 14 PIE releases including 1.0 in June, formally initiated PECL's deprecation, and delivered five conference talks evangelizing the project. +* **Windows infrastructure**: Shivam Mathur authored 95% of commits to php/php-windows-builder and 98% of commits to php/web-downloads. Without his work, PHP would have no Windows distribution maintainer. +* **French documentation**: 38% of commits and 47% of merged PRs to php/doc-fr in 2025 came from David Carlier, a community-facing impact that is often invisible in English-language reporting but reaches Francophone PHP developers worldwide. +* **Infrastructure:** Derick Rethans migrated nearly every php.net property (wiki, downloads, qa, pecl, bugs, docs, www, and more) to modern Ansible-managed infrastructure, expanded WebAssembly support for interactive examples in the manual, and contributed alongside Shivam and Roman on the redesigned downloads page. Máté Kocsis and Ilija built statistical benchmarking infrastructure (Welch T-Test, Wilcoxon, Valgrind, variance reduction) underpinning the team's performance work. + +#### Strategic R&D + +Joe Watkins joined in H2 and delivered ORT, a PHP tensor library with backends for SSE2/SSE4.1/AVX2/AVX512, NEON, CUDA, RISC-V64, and WebAssembly (including a custom IEEE 754-2008 float16 implementation in C) reaching 97% test coverage and positioning PHP to participate in AI/ML workloads. Arnaud explored generational and Boehm GC, plus Modules and Snapshots PoCs. + +#### Maintenance & stewardship + +Beyond headline projects, the team spent a large percentage of their time carrying PHP's day-to-day weight: continuous bug triage (Ilija's largest recurring line item every month), monthly release management across 8.3.x and 8.4.x, cross-platform fixes spanning Windows, macOS, FreeBSD, Solaris, Haiku, and i386, French (David) and Japanese (Saki) documentation contributions, mailing list moderation, and dozens of code reviews monthly across virtually every PHP subsystem. Additionally, the team spent time on maintenance and stable releases of external extensions including imagick and GnuPG, and PHP-FPM. + + +### RFCs + +The following list covers RFCs authored or co-authored by PHP Foundation contractors in 2025, along with their RFCs that changed status in 2025. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RFC + Author + Status +
URL Parsing API (ext/uri) + Máté Kocsis + Implemented in PHP 8.5 +
PHP 8.5 Deprecations + Gina P. Banyard + Implemented in PHP 8.5 +
PHP 8.5 Warnings + Gina P. Banyard + Implemented in PHP 8.5 +
Add get_error_handler(), get_exception_handler() + Arnaud Le Blanc + Implemented in PHP 8.5 +
Stream Error Handling + Jakub Zelenka + Vote started +
TLS Session Resumption + Jakub Zelenka + Passed +
Make round() behave correctly as float + Saki Takamachi + Draft +
Policy Release Process Update + Jakub Zelenka + Passed +
Context Managers + Arnaud Le Blanc & Larry Garfield + In Discussion +
Partial Function Application v2 + Arnaud Le Blanc & Larry Garfield + In Implementation +
URI Followup + Máté Kocsis + Vote started +
Deprecate PECL / Adopt PIE + James Titcumb + Passed +
Pattern Matching + Ilija Tovilo & Larry Garfield + In Discussion +
JSON Validation Schema Support + Jakub Zelenka + In Discussion +
Void as Null + Gina P. Banyard + In Discussion +
TidyException Type for Tidy + David Carlier + In Discussion +
Deprecate Type Juggling + Gina P. Banyard + Declined +
+ + +
+ + + +## The PHP Foundation Sponsors + +Our sponsors and individual contributors are the lifeblood of The PHP Foundation, for without their continued support, we would not be able to continue making meaningful contributions and improvements to the PHP language. + +Our highest level sponsors for 2025 were [Sovereign Tech Agency,](https://www.sovereign.tech/) [JetBrains](https://www.jetbrains.com/), [Automattic](https://automattic.com/), [GoDaddy.com](GoDaddy.com), [Passbolt](https://www.passbolt.com/), [Sentry](https://sentry.io/welcome/), [Les-Tilleuls.coop](http://Les-Tilleuls.coop), [Craft CMS](https://craftcms.com/), [Private Packagist](https://packagist.com/), [Cybozu](https://cybozu.co.jp/en/company/), [Tideways](https://tideways.com/), [Manychat](https://manychat.com/), [Zend by Perforce](https://www.perforce.com/products/zend), [CH Studio](https://chstudio.fr/), and [Aternos GmbH](https://aternos.gmbh/en/). + +Overall, 536 organizations and individuals sponsored the foundation in 2025, which is substantially less than the previous year. This is an indication of an increasingly challenging fundraising space in the open source ecosystem, a reality our peers at other Foundations and Open Source projects are also navigating. + +We are incredibly grateful for all those who have financially supported and continue to support The PHP Foundation. + + +## The PHP Foundation Financial Report + +In 2025, The PHP Foundation was financially backed by organizations and individuals with the goal of paying a competitive salary to as many core developers as possible. These numbers represent figures in USD. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ 2021-2022 + 2023 + 2024 + 2025** +
Total donated + $ 712,484 + $ 478,767 + $ 683,550 + $ 730,534 +
Fees * + $ 90,273 + $ 60,098 + $ 83,110 + $ 85,343 +
Total received + $ 622,211 + $ 418,669 + $ 600,440 + $ 645,191 +
Expenses + $ 133,285 + $ 275,181 + $ 635,487 + $ 784,376 +
+ + +*Fees include a 10% Open Source Collective fiscal host fee (dealing with contracts, expense reviews and payments, bank account management, official registrations and dealing with government requirements, open collective platform development etc), and 1-5% percent of payment processing fees, depending on the payment method used. + +**Starting in 2025, some funds were donated and paid in Euro; please allow for small rounding variance due to conversion rates. + +All incoming and outgoing transactions of The PHP Foundation are publicly available to view for anyone: [https://opencollective.com/phpfoundation#category-BUDGET](https://opencollective.com/phpfoundation#category-BUDGET) + + +## The PHP Foundation Brand & Public Channels + +The PHP Foundation represents a community of core PHP developers and advocates for the PHP programming language. The PHP Foundation used the channels listed below for public communication: + +* 24.8K LinkedIn page followers: [https://www.linkedin.com/company/phpfoundation](https://www.linkedin.com/company/phpfoundation) +* 13.7K X followers: [https://x.com/thephpf](https://twitter.com/thephpf) +* 1.2K Mastodon followers: [https://phpc.social/@thephpf](https://phpc.social/@thephpf) +* 1.2K Bluesky followers: [https://bsky.app/profile/thephpf.bsky.social](https://bsky.app/profile/thephpf.bsky.social) +* 3390 Subscribers to the Foundation Newsletter + +We will continue to grow our social media presence as a means of connecting with the broader PHP community. + + +## Looking Back: Goals for 2025 + +In the previous report, we outlined a few organizational and technical goals. Let’s take a look at how we did. + + +### Organization Goals + + +* **Secure funding to support core development and marketing initiatives.** ✅ + + The Foundation received funds as noted above to continue our focus on core development and the marketing of PHP and The PHP Foundation. + +* **Launch the "PHP 30" anniversary campaign in collaboration with JetBrains.** ✅ + + The Foundation celebrated [30 years of PHP](https://thephp.foundation/blog/2025/06/08/php-30/) at the PHPVerse conference hosted by JetBrains. + +* **Consolidate and grow social media presence across multiple platforms. ✅** + + The reach and engagement for our social media accounts grew in every platform. + + +* **Increase website traffic through improved documentation and resources. ❓** + + We only added tracking to the [php.net](php.net) website toward the end of 2024, so we did not have a baseline for comparison. This is something we can measure moving forward. + +* **Develop an Ambassador Program. ❌** + + This was discussed, but not launched. Look for a version of this in 2026. + +* **Begin preparation for the "PHP Next" marketing campaign to highlight PHP's modernization. ❌** + + This was discussed, but not launched. Look for a version of this in 2026. + +* **Modernize PHP's website with updated downloads page, documentation, and homepage. ⚠️ Partial** + + This was partially completed and included a [redesigned page for the 8.5 release](https://www.php.net/releases/8.5/en.php) and a clearer and more functional Downloads page. There is still work to be done on the homepage and in the documentation. + + +### Technical Goals + +* **Continue on-going maintenance and development of the PHP core. ✅** + + As demonstrated in this report, our contractors continue to focus on improving the PHP core. + +* **Establish a working group for integrating modern HTTP server capabilities into PHP core. ✅** + + Instead, the PHP project incorporated the FrankenPHP project into its GitHub organization, offering a modern solution to running PHP in an HTTP server. + +* **Address key developer experience pain points, particularly for first-time users. ⚠️ Partial** + + This was partially completed with the improvements on the Downloads page, but there is still much work and research to be done here. + + +## Looking Ahead: Goals for 2026 + +2026 brings its own challenges but we are committed to continuing to make a measurable difference in the PHP language and ecosystem. + + +### Organization Goals + +* Complete the executive transition initiated in Q4 2025 +* Complete the onboarding of a Director of Fundraising +* Expand support for the PHP Ecosystem +* Improve Foundation communication, transparency, and internal documentation +* Build a plan to improve public perception of PHP +* Balance spending with funding and creating a systematic approach to fundraising + +### Technical Goals + +* Create Cryptography working group +* Explore support for continued security-focused work + + +## Budget plan for 2026 + +Total expenses exceeded total received donations by approximately $139,000 in 2025, which was a deliberate choice to maintain investment in technical headcount while we strengthen relationships with sponsors and individual contributors. The Foundation remains financially solvent with healthy reserves, and reducing this gap is a 2026 priority. + +We will also continue to utilize [Open Collective](https://opencollective.com/phpfoundation) as our fiscal host, as they provide transparency and a suite of valuable financial services for The Foundation. + + +## Outro + +The work in this report is the runway for what's next. We head into 2026 with real momentum and a clear sense of what the community has asked of us. None of the technical leadership, the security work, the new partnerships ahead, and the support for the PHP ecosystem happens without the people who fund us. [With your help](https://thephp.foundation/sponsor/), together we can keep PHP thriving in a changing open source world. diff --git a/source/assets/post-images/2026/impact-report-2025/php_foundation_stats_2025.png b/source/assets/post-images/2026/impact-report-2025/php_foundation_stats_2025.png new file mode 100644 index 0000000000000000000000000000000000000000..2badd771b4f452d00a254a1421b9f215c8defc53 GIT binary patch literal 67123 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

-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 Date: Wed, 27 May 2026 15:16:09 -0400 Subject: [PATCH 2/4] Update 2026-05-27-impact-and-transparency-report-2025.md Numerous changes made based on feedback from The PHPF community --- ...-27-impact-and-transparency-report-2025.md | 98 +++++++++++-------- 1 file changed, 57 insertions(+), 41 deletions(-) diff --git a/source/_posts/2026-05-27-impact-and-transparency-report-2025.md b/source/_posts/2026-05-27-impact-and-transparency-report-2025.md index 5cf16da1..238d7698 100644 --- a/source/_posts/2026-05-27-impact-and-transparency-report-2025.md +++ b/source/_posts/2026-05-27-impact-and-transparency-report-2025.md @@ -10,16 +10,16 @@ published_at: 27 May 2026 --- ## Executive Summary -PHP turned 30 in 2025. With the Foundation’s support, the PHP project marked the year by shipping PHP 8.5. The Foundation also launched PIE 1.0, advanced a modernization of PHP's stream layer project, and authored roughly 42% of all commits to PHP's core. This work was supported by 536 sponsors and individual contributors, and it could not have happened without them. +PHP turned 30 in 2025. With The PHP Foundation's support, the PHP project marked the year by shipping PHP 8.5. The PHP Foundation also launched PIE 1.0, initiated a project to modernize PHP's stream layer, and authored roughly 42% of all commits to PHP's core. This work was supported by 536 sponsors and individual contributors, and it could not have happened without them. -At the end of 2025, The PHP Foundation consisted of 8 volunteer board members, an Executive Director sponsored by JetBrains, and 11 contracted developers who worked part- and full-time to strengthen and improve the core PHP language through bug and security fixes, feature development, and contributing to the RFC process through discussion and development of new RFCs. +At the end of 2025, The PHP Foundation consisted of 8 volunteer board members, an Executive Director sponsored by [JetBrains](https://www.jetbrains.com/), and 11 contracted developers who worked part- and full-time to strengthen and improve the core PHP language through bug and security fixes, feature development, and contributing to the RFC process through discussion and development of new RFCs. -The total contributions received from sponsors and individual donors was $730,534, which enabled The Foundation to advance its mission in a meaningful way. +The total contributions received from sponsors and individual donors was $730,534, which enabled The PHP Foundation to advance its mission in a meaningful way. -### About the Foundation +### About the PHP Foundation -The Foundation’s main focus is to ensure the sustainability and long term viability of the PHP language. Our priorities continue to be: +The PHP Foundation's main focus is to ensure the sustainability and long term viability of the PHP language. Our priorities continue to be: * Improving the language for users * Providing high-quality maintenance @@ -33,9 +33,9 @@ It should be noted that The PHP Foundation does not control the decisions made b Leadership at The PHP Foundation coordinated several high-level initiatives, including: -* The completion of a [Security Audit](https://thephp.foundation/blog/2025/04/10/php-core-security-audit-results/) by Open Source Technology Improvement Fund (OSTIF), funded by the Sovereign Tech Agency through the Sovereign Tech Fund (STF), and sustained security advisory work across the team -* The [addition of FrankenPHP](https://thephp.foundation/blog/2025/05/15/frankenphp/) to the PHP GitHub organization -* The development of the [official PHP SDK for MCP](https://thephp.foundation/blog/2025/09/05/php-mcp-sdk/), in collaboration with the Symfony Team and Anthropic +* The completion of a [Security Audit](https://thephp.foundation/blog/2025/04/10/php-core-security-audit-results/) by [Open Source Technology Improvement Fund (OSTIF)](https://ostif.org/), funded by the [Sovereign Tech Agency](https://www.sovereign.tech/) through the Sovereign Tech Fund (STF), and sustained security advisory work across the team +* The [addition of FrankenPHP](https://thephp.foundation/blog/2025/05/15/frankenphp/) to the PHP GitHub organization, in collaboration with [Les-Tilleuls.coop](https://les-tilleuls.coop/en/) +* The development of the [official PHP SDK for MCP](https://thephp.foundation/blog/2025/09/05/php-mcp-sdk/), in collaboration with the [Symfony](https://symfony.com/) Team and [Anthropic](https://www.anthropic.com/) In addition, in 2025, eleven Foundation-funded contractors collectively logged thousands of hours advancing PHP's language, runtime, security posture, ecosystem tooling, and community reach. @@ -43,8 +43,8 @@ Key achievements included: * Successful delivery of PHP 8.5 * Launch of PIE 1.0 and initiation of the formal PECL deprecation process -* Launch of the STF Streams modernization project (530 hours) -* PHP Foundation representation at the OpenSSF Open Regulatory Compliance Working Group on the EU Cyber Resilience Act +* Launch of the STF Streams modernization project +* PHP Foundation representation at the OpenSSF [Open Regulatory Compliance Working Group](https://orcwg.org/) on the EU Cyber Resilience Act ## The PHP Foundation Staff @@ -67,10 +67,10 @@ Therefore, as of January 1, 2026, 11 Foundation developers work on PHP: ### Team Achievements -PHP Foundation 2025 contribution statistics infographic showing key metrics: Foundation developers contributed 2,929 commits and 662 merged PRs across 9 PHP repositories; 1,685 community PRs reviewed in php-src; Foundation developers authored 42% of commits, 32% of merged PRs, and 25% of bug-fix PRs in php-src; Foundation leads 90%+ of activity in php/pie, php/php-windows-builder, and php/web-downloads; 14 PIE releases shipped including version 1.0; team delivered 40+ international conference talks throughout 2025. The infographic presents these accomplishments in an organized, visually hierarchical layout highlighting the foundation teams productive year. +PHP Foundation 2025 contribution statistics infographic showing key metrics: Foundation developers contributed 2,929 commits and 662 merged PRs across 9 PHP repositories; 1,685 community PRs reviewed in php-src; Foundation developers authored 42% of commits, 32% of merged PRs, and 25% of bug-fix PRs in php-src; Foundation leads 90%+ of activity in php/pie, php/php-windows-builder, and php/web-downloads; 14 PIE releases shipped including version 1.0; team delivered 40+ international conference talks throughout 2025. The infographic presents these accomplishments in an organized, visually hierarchical layout highlighting The PHP Foundation team's productive year. -We acknowledge the limitations in providing any metrics; very rarely do metrics accurately represent the full scenario (for instance, a 1-line commit and a 100-line commit are counted equally in the overall number of commits). Additionally, some metrics are more difficult to capture than others. Therefore, we offer this set of obtainable metrics to collectively demonstrate the team’s impact. To clarify the data points above: +We acknowledge the limitations in providing any metrics; very rarely do metrics accurately represent the full scenario (for instance, a 1-line commit and a 100-line commit are counted equally in the overall number of commits). Additionally, some metrics are more difficult to capture than others. Therefore, we offer this set of obtainable metrics to collectively demonstrate the team's impact. To clarify the data points above: * PRs merged = PRs that were authored by a contractor that were merged by anyone * Community PR Reviews = PRs from other people that were reviewed/commented on by contractors @@ -79,8 +79,8 @@ We acknowledge the limitations in providing any metrics; very rarely do metrics #### Language & runtime -* **URL/URI parsing RFC** (Máté Kocsis) passed in May after a multi-year effort, representing PHP 8.5's most significant standard-library addition in years, including upstream contributions to the uriparser C library. -* **Gina P. Banyard** drove the entire PHP 8.5 deprecations and warnings RFC across 173 merged PRs to php-src — roughly 16% of all merged PRs to php-src in 2025. +* **URL/URI parsing RFC** (Máté Kocsis) passed in May, representing PHP's most significant standard-library addition in years, including upstream contributions to the uriparser C library. +* **Gina P. Banyard** drove the entire PHP 8.5 deprecations and warnings RFC to php-src and authored 173 merged PRs (roughly 16% of all merged PRs to php-src in 2025). * **Arnaud Le Blanc's** Tail Call VM technique merged in August, removing PHP's dependency on a single compiler for peak performance; he also co-developed Partial Function Applications v2 and Context Managers with Larry Garfield. * **Ilija Tovilo** was the team's leading committer to php-src (565 commits) and advanced the Pattern Matching RFC alongside deep performance work on zend_op size and TMP|VAR consolidation. * **Saki Takamachi** delivered BCMath optimizations and created xsse, a portable SIMD abstraction library already in use in php-src. @@ -88,7 +88,7 @@ We acknowledge the limitations in providing any metrics; very rarely do metrics #### Security -Jakub Zelenka led sustained multi-month investigations on multiple security advisories, which included the handling of PHP security releases. Jakub also represented the Foundation in the OpenSSF working group shaping EU Cyber Resilience Act compliance. David Carlier delivered a steady stream of overflow, double-free, and memory leak fixes across GD, ZIP, intl, PDO_SQLite, sodium, and Fiber, upstreaming several directly to libgd. Shivam Mathur is responsible for security upgrades to Windows PHP builds addressing 50+ CVEs/security issues, and continues to support builds for 100+ extensions for Windows. Derick Rethans patched an XSS in php.net and ran an emergency CVE response for the rsync server. +Jakub Zelenka led sustained multi-month investigations on multiple security advisories, which included the handling of PHP security releases. Jakub also represented the PHP Foundation in the OpenSSF working group shaping EU Cyber Resilience Act compliance. David Carlier delivered a steady stream of overflow, double-free, and memory leak fixes across GD, ZIP, intl, PDO_SQLite, sodium, and Fiber, upstreaming several directly to libgd. Shivam Mathur is responsible for security upgrades to Windows PHP builds addressing 50+ CVEs/security issues, and continues to support builds for 100+ extensions for Windows. Derick Rethans patched an XSS in php.net and ran an emergency CVE response for the rsync server. #### Streams modernization (Sovereign Tech Fund) @@ -96,7 +96,7 @@ The STF underwrote a 530-hour modernization of PHP's stream layer, delivering a #### Ecosystem & infrastructure -The Foundation has demonstrated meaningful contributions in several areas: +The PHP Foundation has demonstrated meaningful contributions in several areas: * **PIE (the new PHP extension installer)**: James Titcumb authored 482 of 537 commits to php/pie (roughly 90% of the codebase) and 109 of 156 merged PRs. He shipped 14 PIE releases including 1.0 in June, formally initiated PECL's deprecation, and delivered five conference talks evangelizing the project. * **Windows infrastructure**: Shivam Mathur authored 95% of commits to php/php-windows-builder and 98% of commits to php/web-downloads. Without his work, PHP would have no Windows distribution maintainer. @@ -105,11 +105,11 @@ The Foundation has demonstrated meaningful contributions in several areas: #### Strategic R&D -Joe Watkins joined in H2 and delivered ORT, a PHP tensor library with backends for SSE2/SSE4.1/AVX2/AVX512, NEON, CUDA, RISC-V64, and WebAssembly (including a custom IEEE 754-2008 float16 implementation in C) reaching 97% test coverage and positioning PHP to participate in AI/ML workloads. Arnaud explored generational and Boehm GC, plus Modules and Snapshots PoCs. +Joe Watkins joined in H2 and published ORT, a PHP tensor library with backends for SSE2/SSE4.1/AVX2/AVX512, NEON, CUDA, RISC-V64, and WebAssembly (including a custom IEEE 754-2008 float16 implementation in C) reaching 97% test coverage and positioning PHP to participate in AI/ML workloads. Arnaud explored generational and Boehm GC, plus Modules and Snapshots PoCs. #### Maintenance & stewardship -Beyond headline projects, the team spent a large percentage of their time carrying PHP's day-to-day weight: continuous bug triage (Ilija's largest recurring line item every month), monthly release management across 8.3.x and 8.4.x, cross-platform fixes spanning Windows, macOS, FreeBSD, Solaris, Haiku, and i386, French (David) and Japanese (Saki) documentation contributions, mailing list moderation, and dozens of code reviews monthly across virtually every PHP subsystem. Additionally, the team spent time on maintenance and stable releases of external extensions including imagick and GnuPG, and PHP-FPM. +Beyond headline projects, the team spent a large percentage of their time carrying PHP's day-to-day weight: continuous bug triage (Ilija's largest recurring line item every month), monthly release management across 8.3.x and 8.4.x, cross-platform fixes spanning Windows, macOS, FreeBSD, Solaris, and Haiku, French (David) and Japanese (Saki) documentation contributions, mailing list moderation, and dozens of code reviews monthly across virtually every PHP subsystem. Additionally, the team spent time on maintenance and stable releases of external extensions including imagick and GnuPG, and tools like PHP-FPM that are part of PHP core. ### RFCs @@ -137,7 +137,7 @@ The following list covers RFCs authored or co-authored by PHP Foundation contrac PHP 8.5 Deprecations - Gina P. Banyard + Gina P. Banyard, Christoph M. Becker*, Daniel Scherzer*, Tim Düsterhus*, Theodore Brown*, Jorg Sowa*, David Carlier, Jakub Zelenka, Nicolas Grekas*, Volker Dusch*, Calvin Buckle* Implemented in PHP 8.5 @@ -159,11 +159,11 @@ The following list covers RFCs authored or co-authored by PHP Foundation contrac - Stream Error Handling + Stream Error Handling Jakub Zelenka - Vote started + Accepted @@ -171,7 +171,7 @@ The following list covers RFCs authored or co-authored by PHP Foundation contrac Jakub Zelenka - Passed + Accepted @@ -187,13 +187,13 @@ The following list covers RFCs authored or co-authored by PHP Foundation contrac Jakub Zelenka - Passed + Accepted Context Managers - Arnaud Le Blanc & Larry Garfield + Arnaud Le Blanc & Larry Garfield* In Discussion @@ -201,7 +201,7 @@ The following list covers RFCs authored or co-authored by PHP Foundation contrac Partial Function Application v2 - Arnaud Le Blanc & Larry Garfield + Arnaud Le Blanc & Larry Garfield* In Implementation @@ -219,13 +219,13 @@ The following list covers RFCs authored or co-authored by PHP Foundation contrac James Titcumb - Passed + Accepted Pattern Matching - Ilija Tovilo & Larry Garfield + Ilija Tovilo & Larry Garfield* In Discussion @@ -263,16 +263,32 @@ The following list covers RFCs authored or co-authored by PHP Foundation contrac - + Make OPcache a non-optional part of PHP - + Tim Düsterhus*, Arnaud Le Blanc, Ilija Tovilo - + Implemented in 8.5 + + + + Asymmetric Visibility for Static Properties + + Ilija Tovilo & Larry Garfield* + + Implemented in 8.5 + + + + Followup Improvements for ext/uri + + Máté Kocsis + + Accepted - +*This person was not a contractor for The PHP Foundation at time of authorship, but is acknowledged here for their contribution to the RFC ## The PHP Foundation Sponsors @@ -280,7 +296,7 @@ Our sponsors and individual contributors are the lifeblood of The PHP Foundation Our highest level sponsors for 2025 were [Sovereign Tech Agency,](https://www.sovereign.tech/) [JetBrains](https://www.jetbrains.com/), [Automattic](https://automattic.com/), [GoDaddy.com](GoDaddy.com), [Passbolt](https://www.passbolt.com/), [Sentry](https://sentry.io/welcome/), [Les-Tilleuls.coop](http://Les-Tilleuls.coop), [Craft CMS](https://craftcms.com/), [Private Packagist](https://packagist.com/), [Cybozu](https://cybozu.co.jp/en/company/), [Tideways](https://tideways.com/), [Manychat](https://manychat.com/), [Zend by Perforce](https://www.perforce.com/products/zend), [CH Studio](https://chstudio.fr/), and [Aternos GmbH](https://aternos.gmbh/en/). -Overall, 536 organizations and individuals sponsored the foundation in 2025, which is substantially less than the previous year. This is an indication of an increasingly challenging fundraising space in the open source ecosystem, a reality our peers at other Foundations and Open Source projects are also navigating. +Overall, 536 organizations and individuals sponsored The PHP Foundation in 2025, which is substantially less than the previous year. This is an indication of an increasingly challenging fundraising space in the open source ecosystem, a reality our peers at other Foundations and Open Source projects are also navigating. We are incredibly grateful for all those who have financially supported and continue to support The PHP Foundation. @@ -366,17 +382,17 @@ All incoming and outgoing transactions of The PHP Foundation are publicly availa The PHP Foundation represents a community of core PHP developers and advocates for the PHP programming language. The PHP Foundation used the channels listed below for public communication: * 24.8K LinkedIn page followers: [https://www.linkedin.com/company/phpfoundation](https://www.linkedin.com/company/phpfoundation) -* 13.7K X followers: [https://x.com/thephpf](https://twitter.com/thephpf) +* 13.7K X followers: [https://x.com/thephpf](https://x.com/thephpf) * 1.2K Mastodon followers: [https://phpc.social/@thephpf](https://phpc.social/@thephpf) * 1.2K Bluesky followers: [https://bsky.app/profile/thephpf.bsky.social](https://bsky.app/profile/thephpf.bsky.social) -* 3390 Subscribers to the Foundation Newsletter +* 3390 Subscribers to The PHP Foundation Newsletter We will continue to grow our social media presence as a means of connecting with the broader PHP community. ## Looking Back: Goals for 2025 -In the previous report, we outlined a few organizational and technical goals. Let’s take a look at how we did. +In the previous report, we outlined a few organizational and technical goals. Let's take a look at how we did. ### Organization Goals @@ -384,11 +400,11 @@ In the previous report, we outlined a few organizational and technical goals. Le * **Secure funding to support core development and marketing initiatives.** ✅ - The Foundation received funds as noted above to continue our focus on core development and the marketing of PHP and The PHP Foundation. + The PHP Foundation received funds as noted above to continue our focus on core development and the marketing of PHP and The PHP Foundation. * **Launch the "PHP 30" anniversary campaign in collaboration with JetBrains.** ✅ - The Foundation celebrated [30 years of PHP](https://thephp.foundation/blog/2025/06/08/php-30/) at the PHPVerse conference hosted by JetBrains. + The PHP Foundation celebrated [30 years of PHP](https://thephp.foundation/blog/2025/06/08/php-30/) at the PHPverse conference hosted by JetBrains. * **Consolidate and grow social media presence across multiple platforms. ✅** @@ -397,7 +413,7 @@ In the previous report, we outlined a few organizational and technical goals. Le * **Increase website traffic through improved documentation and resources. ❓** - We only added tracking to the [php.net](php.net) website toward the end of 2024, so we did not have a baseline for comparison. This is something we can measure moving forward. + We only added tracking to the [php.net](https://php.net) website toward the end of 2024, so we did not have a baseline for comparison. This is something we can measure moving forward. * **Develop an Ambassador Program. ❌** @@ -420,7 +436,7 @@ In the previous report, we outlined a few organizational and technical goals. Le * **Establish a working group for integrating modern HTTP server capabilities into PHP core. ✅** - Instead, the PHP project incorporated the FrankenPHP project into its GitHub organization, offering a modern solution to running PHP in an HTTP server. + Instead, the PHP project incorporated the FrankenPHP project into its GitHub organization, offering a modern solution to running PHP in an HTTP server. This change was initiated by engineers at [Les-Tilleuls.coop](https://les-tilleuls.coop/en/), and implemented in partnership with the PHP Foundation. * **Address key developer experience pain points, particularly for first-time users. ⚠️ Partial** @@ -449,9 +465,9 @@ In the previous report, we outlined a few organizational and technical goals. Le ## Budget plan for 2026 -Total expenses exceeded total received donations by approximately $139,000 in 2025, which was a deliberate choice to maintain investment in technical headcount while we strengthen relationships with sponsors and individual contributors. The Foundation remains financially solvent with healthy reserves, and reducing this gap is a 2026 priority. +Total expenses exceeded total received donations by approximately $139,000 in 2025, which was a deliberate choice to maintain investment in technical headcount while we strengthen relationships with sponsors and individual contributors. The PHP Foundation remains financially solvent with healthy reserves, and reducing this gap is a 2026 priority. -We will also continue to utilize [Open Collective](https://opencollective.com/phpfoundation) as our fiscal host, as they provide transparency and a suite of valuable financial services for The Foundation. +We will also continue to utilize [Open Collective](https://opencollective.com/phpfoundation) as our fiscal host, as they provide transparency and a suite of valuable financial services for The PHP Foundation. ## Outro From 41ef8c08c58f8b8a2bb96df95e2eadf4e2e2fc92 Mon Sep 17 00:00:00 2001 From: Elizabeth Barron Date: Wed, 27 May 2026 15:23:27 -0400 Subject: [PATCH 3/4] Change float value and size of image --- source/_posts/2026-05-27-impact-and-transparency-report-2025.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_posts/2026-05-27-impact-and-transparency-report-2025.md b/source/_posts/2026-05-27-impact-and-transparency-report-2025.md index 238d7698..0b8dd3f0 100644 --- a/source/_posts/2026-05-27-impact-and-transparency-report-2025.md +++ b/source/_posts/2026-05-27-impact-and-transparency-report-2025.md @@ -67,7 +67,7 @@ Therefore, as of January 1, 2026, 11 Foundation developers work on PHP: ### Team Achievements -PHP Foundation 2025 contribution statistics infographic showing key metrics: Foundation developers contributed 2,929 commits and 662 merged PRs across 9 PHP repositories; 1,685 community PRs reviewed in php-src; Foundation developers authored 42% of commits, 32% of merged PRs, and 25% of bug-fix PRs in php-src; Foundation leads 90%+ of activity in php/pie, php/php-windows-builder, and php/web-downloads; 14 PIE releases shipped including version 1.0; team delivered 40+ international conference talks throughout 2025. The infographic presents these accomplishments in an organized, visually hierarchical layout highlighting The PHP Foundation team's productive year. +PHP Foundation 2025 contribution statistics infographic showing key metrics: Foundation developers contributed 2,929 commits and 662 merged PRs across 9 PHP repositories; 1,685 community PRs reviewed in php-src; Foundation developers authored 42% of commits, 32% of merged PRs, and 25% of bug-fix PRs in php-src; Foundation leads 90%+ of activity in php/pie, php/php-windows-builder, and php/web-downloads; 14 PIE releases shipped including version 1.0; team delivered 40+ international conference talks throughout 2025. The infographic presents these accomplishments in an organized, visually hierarchical layout highlighting The PHP Foundation team's productive year. We acknowledge the limitations in providing any metrics; very rarely do metrics accurately represent the full scenario (for instance, a 1-line commit and a 100-line commit are counted equally in the overall number of commits). Additionally, some metrics are more difficult to capture than others. Therefore, we offer this set of obtainable metrics to collectively demonstrate the team's impact. To clarify the data points above: From f9ffd1f8033f3f60dda06629c3dfa9cd8d804d47 Mon Sep 17 00:00:00 2001 From: Elizabeth Barron Date: Wed, 27 May 2026 15:29:53 -0400 Subject: [PATCH 4/4] Fixes size of the image for better viewing on desktop --- source/_posts/2026-05-27-impact-and-transparency-report-2025.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_posts/2026-05-27-impact-and-transparency-report-2025.md b/source/_posts/2026-05-27-impact-and-transparency-report-2025.md index 0b8dd3f0..7ee03ee1 100644 --- a/source/_posts/2026-05-27-impact-and-transparency-report-2025.md +++ b/source/_posts/2026-05-27-impact-and-transparency-report-2025.md @@ -67,7 +67,7 @@ Therefore, as of January 1, 2026, 11 Foundation developers work on PHP: ### Team Achievements -PHP Foundation 2025 contribution statistics infographic showing key metrics: Foundation developers contributed 2,929 commits and 662 merged PRs across 9 PHP repositories; 1,685 community PRs reviewed in php-src; Foundation developers authored 42% of commits, 32% of merged PRs, and 25% of bug-fix PRs in php-src; Foundation leads 90%+ of activity in php/pie, php/php-windows-builder, and php/web-downloads; 14 PIE releases shipped including version 1.0; team delivered 40+ international conference talks throughout 2025. The infographic presents these accomplishments in an organized, visually hierarchical layout highlighting The PHP Foundation team's productive year. +PHP Foundation 2025 contribution statistics infographic showing key metrics: Foundation developers contributed 2,929 commits and 662 merged PRs across 9 PHP repositories; 1,685 community PRs reviewed in php-src; Foundation developers authored 42% of commits, 32% of merged PRs, and 25% of bug-fix PRs in php-src; Foundation leads 90%+ of activity in php/pie, php/php-windows-builder, and php/web-downloads; 14 PIE releases shipped including version 1.0; team delivered 40+ international conference talks throughout 2025. The infographic presents these accomplishments in an organized, visually hierarchical layout highlighting The PHP Foundation team's productive year. We acknowledge the limitations in providing any metrics; very rarely do metrics accurately represent the full scenario (for instance, a 1-line commit and a 100-line commit are counted equally in the overall number of commits). Additionally, some metrics are more difficult to capture than others. Therefore, we offer this set of obtainable metrics to collectively demonstrate the team's impact. To clarify the data points above: