<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title><![CDATA[The PHP Foundation]]></title>
    <link href="https://thephp.foundation/atom.xml" rel="self"/>
    <link href="https://thephp.foundation/"/>
    <updated>2024-02-28T06:21:02+00:00</updated>
    <id>https://thephp.foundation/</id>
        <generator uri="http://sculpin.io/">Sculpin</generator>
            <entry>
            <title type="html"><![CDATA[The PHP Foundation: Impact and Transparency Report 2023]]></title>
            <link href="https://thephp.foundation/blog/2024/02/26/transparency-and-impact-report-2023/"/>
            <updated>2024-02-26T00:00:00+00:00</updated>
            <id>https://thephp.foundation/blog/2024/02/26/transparency-and-impact-report-2023/</id>
            <content type="html"><![CDATA[<h2 id="executive-summary">Executive Summary</h2>

<p>At the beginning of 2024, The PHP Foundation is a collective of <strong>9 volunteer board members</strong>, <strong>1 full-time operations manager</strong> sponsored by JetBrains, and <strong>10 developers</strong> paid part-time/full-time who make more than half of the contributions to the PHP language and its extensions.</p>

<p>In 2023, The PHP Foundation received <strong>$418,669 in financial contributions</strong> from organizations and individuals.</p>

<p>The PHP Foundation’s main focus in 2023 was strengthening the maintenance of PHP core, the project that lives in the <a href="https://github.com/php/php-src">php/php-src</a> GitHub repository. This project is the home of the PHP language, where PHP’s interpreter is developed. Everyone who uses PHP benefits in one way or another from the work that is done in this repository.</p>

<p>The PHP Foundation demonstrates its growing impact on the language through an increased volume and velocity of code contributions and reviews. The 6 part-time and full-time developers contracted by The PHP Foundation were responsible for nearly half of the commits and reviews made in the PHP language.</p>

<p>Moreover, the foundation's presence and activities have led to heightened interest and activity in the PHP project overall, with the total number of <strong>contributions to the language growing by 79% compared to 2022</strong>.</p>

<p>At the end of 2023, the German government’s <strong>Sovereign Tech Fund chose to invest in The PHP Foundation’s mission</strong> by providing funding for a security audit and other long outstanding projects critical for the PHP ecosystem.</p>

<p>The foundation is <strong>expanding its development efforts in 2024</strong> by contracting 4 additional developers and increasing the number of hours that current contracted developers are working.</p>

<p>The foundation plans to spend up to $1,045,000, including compensation and fees. We are looking for additional sponsor contributions to allow us to continue these efforts in the next years.</p>

<p>In 2024, we aim to achieve the following strategic goals:</p>

<ul>
<li>Ensure sustainable sponsorship for the foundation.</li>
<li>Ensure that foundation developers focus on valuable tasks.</li>
<li>Promote PHP within the web development ecosystem.</li>
</ul>

<h2 id="the-php-foundation-mission">The PHP Foundation Mission</h2>

<p>The PHP Foundation was initiated by JetBrains, Automattic, Laravel, Acquia, Zend, Private Packagist, Symfony, Craft CMS, and Tideways. It was publicly <a href="https://blog.jetbrains.com/phpstorm/2021/11/the-php-foundation/">launched</a> on November 22, 2021.</p>

<p>Since 2021, many companies and individuals have joined the initiative. To make the priorities of the foundation more clear and aligned, we’ve <strong>updated the mission statement</strong>:</p>

<blockquote>
  <p>The PHP Foundation’s mission is to ensure the long-term prosperity of the PHP language. The PHP Foundation focuses on providing financial support and guidance to PHP language developers to support its goals of improving the language for its users, providing high-quality maintenance, and improving the PHP language project to retain current contributors and to integrate new contributors. The PHP Foundation aims to promote the public image of the PHP language in the interest of retaining existing and gaining new users and contributors.</p>
</blockquote>

<p><br>
So it defines 4 priorities of the foundation:</p>

<ol>
<li>Improve the language for users.</li>
<li>Provide high-quality maintenance.</li>
<li>Improve the project to retain current contributors and to integrate new contributors.</li>
<li>Promote the public image of PHP.</li>
</ol>

<h2 id="organizational-growth">Organizational Growth</h2>

<p>Many companies with a vested interest in PHP’s prosperity made a major financial contribution during the year. These are the companies that contributed $10,000 or more in 2023:</p>

<p><strong>JetBrains, Automattic, Private Packagist, Craft CMS, Tideways, pixiv Inc., Mercari Inc., Symfony Corp, Aternos GmbH, Sentry, Ardennes-étape, Zend by Perforce, Les-Tilleuls.coop, Cybozu.</strong></p>

<p>Overall, 718 organizations and individuals sponsored the foundation in 2023 <a href="https://opencollective.com/phpfoundation">on Open Collective</a> and <a href="https://github.com/sponsors/ThePHPF">GitHub Sponsors</a>.</p>

<h3 id="quotes">Quotes</h3>

<p>Here is what some of the prominent folks say about the foundation.</p>

<p><figure class="max-w-screen-md mx-auto text-center" id="quote-brandon-kelly">
    <svg class="w-10 h-10 mx-auto mb-3 text-gray-400" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 18 14">
        <path d="M6 0H2a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h4v1a3 3 0 0 1-3 3H2a1 1 0 0 0 0 2h1a5.006 5.006 0 0 0 5-5V2a2 2 0 0 0-2-2Zm10 0h-4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h4v1a3 3 0 0 1-3 3h-1a1 1 0 0 0 0 2h1a5.006 5.006 0 0 0 5-5V2a2 2 0 0 0-2-2Z"/>
    </svg>
    <blockquote>
        <p class="text-xl italic text-gray-900">“We’re proud supporters of the PHP Foundation here at Craft CMS. PHP has played such a huge role in our careers, and it’s an honor to be a part of its story.”</p>
    </blockquote>
    <figcaption class="flex items-center justify-center mt-3 space-x-3 rtl:space-x-reverse">
        <img class="w-10 h-10 rounded-full" src="/assets/post-images/2024/report-2023/brandon_kelly.jpg" alt="profile picture">
        <div class="flex items-center">
            <cite class="pl-0.5 font-medium text-gray-900">Brandon Kelly, </cite>
            <cite class="pl-0.5 text-gray-500">CEO at Craft CMS</cite>
        </div>
    </figcaption>
</figure>
</p>

<p><figure class="max-w-screen-md mx-auto text-center" id="quote-ben-marks">
    <svg class="w-10 h-10 mx-auto mb-3 text-gray-400" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 18 14">
        <path d="M6 0H2a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h4v1a3 3 0 0 1-3 3H2a1 1 0 0 0 0 2h1a5.006 5.006 0 0 0 5-5V2a2 2 0 0 0-2-2Zm10 0h-4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h4v1a3 3 0 0 1-3 3h-1a1 1 0 0 0 0 2h1a5.006 5.006 0 0 0 5-5V2a2 2 0 0 0-2-2Z"/>
    </svg>
    <blockquote>
        <p class="text-xl italic text-gray-900">“So much of our world - the content we consume (blogs, ecommerce, social media) -  is delivered via PHP applications, enabled by the continuing efforts of the PHP Foundation and the ecosystem it enables. The PHP ecosystem&#039;s success has a significant impact on all of our lives, and we at Shopware are therefore proud supporters of the PHP Foundation.”</p>
    </blockquote>
    <figcaption class="flex items-center justify-center mt-3 space-x-3 rtl:space-x-reverse">
        <img class="w-10 h-10 rounded-full" src="/assets/post-images/2024/report-2023/ben_marks.jpg" alt="profile picture">
        <div class="flex items-center">
            <cite class="pl-0.5 font-medium text-gray-900">Ben Marks, </cite>
            <cite class="pl-0.5 text-gray-500">Director Global Market Development at shopware AG</cite>
        </div>
    </figcaption>
</figure>
</p>

<p><figure class="max-w-screen-md mx-auto text-center" id="quote-kevin-dunglas">
    <svg class="w-10 h-10 mx-auto mb-3 text-gray-400" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 18 14">
        <path d="M6 0H2a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h4v1a3 3 0 0 1-3 3H2a1 1 0 0 0 0 2h1a5.006 5.006 0 0 0 5-5V2a2 2 0 0 0-2-2Zm10 0h-4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h4v1a3 3 0 0 1-3 3h-1a1 1 0 0 0 0 2h1a5.006 5.006 0 0 0 5-5V2a2 2 0 0 0-2-2Z"/>
    </svg>
    <blockquote>
        <p class="text-xl italic text-gray-900">“Les-Tilleuls.coop is proud to support the PHP Foundation. By maintaining the language, the foundation is ensuring the future of PHP and the web. By adding innovative new features, it simplifies knowledge sharing and, in the spirit of free software, makes it easier than ever for everyone to create independent sites and applications.”</p>
    </blockquote>
    <figcaption class="flex items-center justify-center mt-3 space-x-3 rtl:space-x-reverse">
        <img class="w-10 h-10 rounded-full" src="/assets/post-images/2024/report-2023/kevin_dunglas.png" alt="profile picture">
        <div class="flex items-center">
            <cite class="pl-0.5 font-medium text-gray-900">Kevin Dunglas, </cite>
            <cite class="pl-0.5 text-gray-500">Les-Tilleuls.coop, FrankenPHP</cite>
        </div>
    </figcaption>
</figure>
</p>

<p><figure class="max-w-screen-md mx-auto text-center" id="quote-matthew-weier-o&#039;phinney">
    <svg class="w-10 h-10 mx-auto mb-3 text-gray-400" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 18 14">
        <path d="M6 0H2a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h4v1a3 3 0 0 1-3 3H2a1 1 0 0 0 0 2h1a5.006 5.006 0 0 0 5-5V2a2 2 0 0 0-2-2Zm10 0h-4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h4v1a3 3 0 0 1-3 3h-1a1 1 0 0 0 0 2h1a5.006 5.006 0 0 0 5-5V2a2 2 0 0 0-2-2Z"/>
    </svg>
    <blockquote>
        <p class="text-xl italic text-gray-900">“As longtime contributors to the PHP project, both financially as well as by employing developers on the project, Zend by Perforce is pleased to sponsor the PHP Foundation and support its mission. Expanding the pool of maintainers and developers capable of evolving the language will help keep PHP relevant, and expand its reach in the web development ecosystem.”</p>
    </blockquote>
    <figcaption class="flex items-center justify-center mt-3 space-x-3 rtl:space-x-reverse">
        <img class="w-10 h-10 rounded-full" src="/assets/post-images/2024/report-2023/mwop.jpg" alt="profile picture">
        <div class="flex items-center">
            <cite class="pl-0.5 font-medium text-gray-900">Matthew Weier O&#039;Phinney, </cite>
            <cite class="pl-0.5 text-gray-500">Senior Product Manager, Zend by Perforce</cite>
        </div>
    </figcaption>
</figure>
</p>

<p><br></p>

<h2 id="the-sovereign-tech-fund-investment">The Sovereign Tech Fund Investment</h2>

<p>The <a href="https://sovereigntechfund.de/en/">Sovereign Tech Fund</a> (STF) supports the development, improvement, and maintenance of open digital infrastructure in the public interest. Its goal is to strengthen the open-source ecosystem sustainably, focusing on security, resilience, technological diversity, and the people behind the code. STF is funded by the German Federal Ministry for Economic Affairs and Climate Action (BMWK) and supported by the German Federal Agency for Disruptive Innovation GmbH (SPRIND).</p>

<p>We have collaborated with STF to create work plans for these specific projects:</p>

<h4 id="pecl-overhaul">PECL overhaul</h4>

<p>The current system for distributing PHP extensions, PECL/PEAR, is outdated and prone to supply-chain attacks, making it unreliable for average developers. This leads to the creation of redundant tools and new security issues.</p>

<p>We proposed to rewrite the PECL installer, replacing the messy pear code and the inefficient website.</p>

<p>Follow the progress of <strong>the new tool 🥧PIE</strong> here: <a href="https://github.com/ThePHPF/pie-design">https://github.com/ThePHPF/pie-design</a>.</p>

<h4 id="testing-tool-for-fpm">Testing tool for FPM</h4>

<p>Currently, the PHP project's testing framework lacks more specialized support for the automated testing of the FastCGI Process Manager (FPM), especially for issues that require higher load. We propose to develop an FPM/SAPI testing tool that can execute all applications and set expectations on the produced logs and server responses. This tool will be connected with a load testing tool (e.g., wrk) to simulate real-world usage and load.</p>

<p>The work has started in the <a href="https://github.com/bukka/wst">https://github.com/bukka/wst</a> repository with the plan to move it to the PHP GitHub organization when ready.</p>

<h4 id="security-audit">Security Audit</h4>

<p>PHP, like any other language, has its share of security issues. We are going to collaborate with a security research group for a comprehensive codebase audit and address the discovered issues. This will significantly improve the security of PHP and make it more reliable for developers and businesses.</p>

<p>The audit is being organized in partnership with <a href="https://ostif.org/">OSTIF</a>.</p>

<h4 id="documentation-improvements">Documentation improvements</h4>

<p>The current PHP documentation has several blind spots, with many functions and methods not covered at all. We propose to update and modernize the English PHP documentation, review and remove user comments, integrate 3v4l.org for interactive examples, and simplify the maintenance process. This will make PHP more accessible to new developers and serve as a reliable reference for experienced ones.</p>

<h2 id="the-php-foundation-governance">The PHP Foundation Governance</h2>

<p>In 2023, we renamed the Administration group to the <strong>Governing Board</strong> to avoid confusions and better align with industry standards.</p>

<p><a href="https://thephp.foundation/structure/#admins">The lineup</a> of the group has not changed and consists of veteran PHP community leaders, representatives of the founding companies, and other key stakeholders.</p>

<p>One notable change compared to the previous year is a full-time operations manager sponsored by JetBrains in addition to the financial contribution.</p>

<p>We aim to establish a level of involvement for other key stakeholders from the PHP world through the Advisory Board and other initiatives.</p>

<h2 id="the-advisory-board">The Advisory Board</h2>

<p>To keep major sponsors of PHP abreast of the latest happenings in the foundation and allow them to see the direct impact of their support, we announced the advisory board initiative <a href="https://thephp.foundation/blog/2023/03/31/php-foundation-update-march-2023/#a-new-benefit-for-major-sponsors-%E2%80%93-advisory-board-membership">in March</a>.</p>

<p>In addition to the <a href="https://thephp.foundation/structure/">Governing Board</a> representatives from Automattic, JetBrains, Private Packagist, Symfony, Tideways, and Zend by Perforce, the <strong>Advisory Board includes members from</strong> Moodle, Shopware, Laravel, Ardennes-étape, Les-Tilleuls.coop / API Platform, Aternos GmbH, PrestaShop, CraftCMS.</p>

<p>Your company can <strong><a href="https://thephp.foundation/join/">become a member</a></strong> by contributing a minimum of $12,000 to The PHP Foundation as at least a Silver Sponsor.</p>

<h2 id="the-php-foundation-staff">The PHP Foundation Staff</h2>

<h3 id="renewing-contracts">Renewing contracts</h3>

<p>In 2023, we had a team of 6 developers. All of them demonstrated a high quality of work and dedication to the mission of the foundation. We were happy to renew the contracts for 2024 as well as extend the total number of hours for developers requesting it.</p>

<p>We have also adjusted the compensation rates for developers to better reflect the market, as the rates had not changed since 2021.</p>

<p>We aim to review the rates every year based on the available funding and priorities.</p>

<h3 id="team-extension">Team extension</h3>

<p>As was mentioned in the previous transparency report, we aimed to extend the team. It did not happen in 2023 because one of the prospective developers could not join the team for personal reasons, and had to step down from PHP core development entirely. Again, this is <a href="https://blog.jetbrains.com/phpstorm/2021/11/the-php-foundation/#the_bus_factor">the Bus Factor at its worst</a>. However, we were able to extend the team starting with 2024.</p>

<p>We accepted applications for developer positions from September through October 2023. We received about 200 resumes, and we’ve chosen 4 developers with a proven track record of contributions to the PHP language and ecosystem.</p>

<p>We offered the new developers 6-month trial contracts so that the developers and the Governing Board can evaluate the results and then decide whether to continue the engagements.</p>

<h3 id="the-team-as-of-2024">The team as of 2024</h3>

<p>Starting from January, we now contract 10 developers to work on PHP:</p>

<ul>
<li><strong>Arnaud Le Blanc</strong> <a href="https://github.com/arnaud-lb">@arnaud-lb</a></li>
<li><strong>David Carlier</strong> <a href="https://github.com/devnexen">@devnexen</a></li>
<li><strong>Derick Rethans</strong> <a href="https://github.com/derickr">@derickr</a></li>
<li><strong>Gina Peter Banyard</strong> <a href="https://github.com/Girgias">@Girgias</a></li>
<li><strong>Ilija Tovilo</strong> <a href="https://github.com/iluuu1994">@iluuu1994</a></li>
<li><strong>Jakub Zelenka</strong> <a href="https://github.com/bukka">@bukka</a></li>
<li><strong>James Titcumb</strong> <a href="https://github.com/asgrim">@asgrim</a></li>
<li><strong>Máté Kocsis</strong> <a href="https://github.com/kocsismate">@kocsismate</a></li>
<li><strong>Saki Takamachi</strong> <a href="https://github.com/SakiTakamachi">@SakiTakamachi</a></li>
<li><strong>Shivam Mathur</strong> <a href="https://github.com/shivammathur">@shivammathur</a></li>
</ul>

<h3 id="team-timeline">Team timeline</h3>

<p>We established the following timeline for team review.</p>

<ul>
<li>January 2024: Developers start work according to the new contracts.</li>
<li>May 2024: Evaluate new developers, contracts are extended, expanded, or terminated after the first 6 months.</li>
<li>September 2024: Open applications for new developers, evaluate performance of the current group of developers.</li>
<li>October 2024: Evaluate applications, work out updates to compensation, decide on a budget.</li>
<li>November 2024: Renew contracts with existing developers, potentially sign contracts with new developers.</li>
</ul>

<p>And in 2025 we start the cycle again.</p>

<h2 id="retrospective%3A-goals-of-2023">Retrospective: Goals of 2023</h2>

<p>In the previous report, we outlined a few organizational and technical goals. Let’s look back and evaluate the results.</p>

<h3 id="organization-goals">Organization goals</h3>

<ul>
<li><strong>Extend the foundation developers team. ✅</strong><br/>
We did not grow in 2023 strictly speaking, but the work done in 2023 helped to build the ground for two contracted developers to go full-time, as well as to hire 4 new developers.<br/><br/></li>
<li><strong>Grow the community of the foundation. ✅</strong><br/>
The foundation’s Slack became a hub for the community and helped to move initiatives.<br/><br/></li>
<li><strong>Improve communication and provide clear benefits for sponsors. ✅</strong> <br/>
We created a <a href="https://thephp.foundation/join/#membership-deck">deck with benefits for sponsors</a> and started the advisory board initiative. <br/><br/></li>
<li><strong>Explore strategic partnerships and marketing opportunities. ✅ / ❌</strong><br/>
We received investment from the Sovereign Tech Fund and started collaboration with OSTIF.<br/>
We did not explore any marketing opportunities. And there is a room for many more strategic partnerships.</li>
</ul>

<h3 id="technical-goals">Technical goals</h3>

<ul>
<li><strong>Ongoing maintenance and development of the PHP core.  ✅</strong> <br/><br/></li>
<li><strong>Improve the quality of the ideas and RFCs coming from the foundation. ✅</strong><br/>
One of the examples here could be <a href="https://wiki.php.net/rfc/property-hooks">Property Hooks RFC</a>. Although it has not been voted on yet, we have put amazing work into it and consulted many different parties to make it as good as possible.<br/><br/></li>
<li><strong>Develop a high-level roadmap and vision for PHP changes sponsored by the foundation. ❌</strong><br/>
The roadmap and vision need further development and discussion. However, we conducted several pieces of research, both quantitative and qualitative. Some of these findings were shared at conferences where we participated, including PHPCon Poland, SymfonyCon, and Laracon EU. We plan to continue this work.</li>
</ul>

<h2 id="php-language-impact">PHP Language Impact</h2>

<p>On a daily basis, the PHP Foundation staff team contributes to the open-source repositories of the <a href="https://github.com/php">PHP GitHub organization</a>. The foundation team contributes in many forms: filing issues, reviewing pull requests, participating in discussions on mailing lists, triaging issues, submitting RFC proposals.</p>

<p>In this document, four categories of contributions are presented in more detail: commits to php-src, reviews of pull requests on php-src, submitted RFC documents, and documentation work.</p>

<h3 id="commits-to-php">Commits to PHP</h3>

<p>The following chart summarizes the number of commits made to the <a href="https://github.com/php/php-src">php/php-src</a> repository in 2023.</p>

<table>
<thead>
<tr>
  <th></th>
  <th>2022</th>
  <th>2023</th>
</tr>
</thead>
<tbody>
<tr>
  <td>Total by The PHP Foundation</td>
  <td>683</td>
  <td>784</td>
</tr>
<tr>
  <td>Total other</td>
  <td>885</td>
  <td>1588</td>
</tr>
</tbody>
</table>

<p><img src="/assets/post-images/2024/report-2023/commits.png" alt="Commits" /></p>

<p>Note that the number of commits does not fairly represent the level of effort or the scope of the work. However, it can demonstrate the foundation's relative level of contribution to the PHP core through an objective metric.</p>

<h3 id="reviews">Reviews</h3>

<p>The diagram summarizes the number of pull request reviews made in the <a href="https://github.com/php/php-src">php/php-src</a> repository from January 1 to December 31, 2023.</p>

<table>
<thead>
<tr>
  <th></th>
  <th>2022</th>
  <th>2023</th>
</tr>
</thead>
<tbody>
<tr>
  <td>Total by The PHP Foundation</td>
  <td>283</td>
  <td>702</td>
</tr>
<tr>
  <td>Total other</td>
  <td>551</td>
  <td>416</td>
</tr>
</tbody>
</table>

<p><img src="/assets/post-images/2024/report-2023/reviews.png" alt="Reviews" /></p>

<h3 id="rfcs">RFCs</h3>

<p>Below are the RFC proposals authored or co-authored by The PHP Foundation developers in 2023 (random order).</p>

<table>
<thead>
<tr>
  <th>RFC</th>
  <th>Proposed</th>
  <th>Status</th>
</tr>
</thead>
<tbody>
<tr>
  <td><a href="https://wiki.php.net/rfc/deprecate-implicitly-nullable-types">Deprecate implicitly nullable parameter types</a></td>
  <td>2023-12-20</td>
  <td>Under Discussion</td>
</tr>
<tr>
  <td><a href="https://wiki.php.net/rfc/deprecate_functions_with_overloaded_signatures">Deprecate functions with overloaded signatures</a></td>
  <td>2023-01-31</td>
  <td>Implemented</td>
</tr>
<tr>
  <td><a href="https://wiki.php.net/rfc/datetime-exceptions">More Appropriate Date/Time Exceptions</a></td>
  <td>2023-02-08</td>
  <td>Implemented</td>
</tr>
<tr>
  <td><a href="https://wiki.php.net/rfc/proper-range-semantics">Define proper semantics for range() function</a></td>
  <td>2023-03-13</td>
  <td>Implemented</td>
</tr>
<tr>
  <td><a href="https://wiki.php.net/rfc/typed_class_constants">Typed class constants</a></td>
  <td>2020-07-06</td>
  <td>Implemented</td>
</tr>
<tr>
  <td><a href="https://wiki.php.net/rfc/assert-string-eval-cleanup">Deprecate remains of string evaluated code assertions</a></td>
  <td>2023-05-31</td>
  <td>Implemented</td>
</tr>
<tr>
  <td><a href="https://wiki.php.net/rfc/saner-array-sum-product">Saner array_(sum&#124;product)()</a></td>
  <td>2023-01-14</td>
  <td>Implemented</td>
</tr>
<tr>
  <td><a href="https://wiki.php.net/rfc/saner-inc-dec-operators">Path to Saner Increment/Decrement operators</a></td>
  <td>2022-11-21</td>
  <td>Implemented</td>
</tr>
<tr>
  <td><a href="https://wiki.php.net/rfc/rfc1867-non-post">RFC1867 for non-POST HTTP verbs</a></td>
  <td>2023-10-06</td>
  <td>Implemented</td>
</tr>
<tr>
  <td><a href="https://wiki.php.net/rfc/unbundle_imap_pspell_oci8">Unbundle ext/imap, ext/pspell, ext/oci8, and ext/PDO_OCI</a></td>
  <td>2023-10-03</td>
  <td>Accepted</td>
</tr>
<tr>
  <td><a href="https://wiki.php.net/rfc/policy-repository">Policy Repository</a></td>
  <td>2023-12-04</td>
  <td>Implemented</td>
</tr>
<tr>
  <td><a href="https://wiki.php.net/rfc/access_scope_from_magic_accessors">Access Scope from Magic Accessors</a></td>
  <td>2023-01-19</td>
  <td>Withdrawn</td>
</tr>
<tr>
  <td><a href="https://wiki.php.net/rfc/deprecations_php_8_4">Deprecations for PHP 8.4</a></td>
  <td>2023-07-25</td>
  <td>Draft</td>
</tr>
<tr>
  <td><a href="https://wiki.php.net/rfc/file-descriptor-function">Add file_descriptor() function</a></td>
  <td>2023-01-16</td>
  <td>Under Discussion</td>
</tr>
<tr>
  <td><a href="https://wiki.php.net/rfc/core-autoloading">New core autoloading mechanism with support for function autoloading</a></td>
  <td>2023-04-03</td>
  <td>Under Discussion</td>
</tr>
<tr>
  <td><a href="https://wiki.php.net/rfc/property-hooks">Property hooks</a></td>
  <td>2023-01-03</td>
  <td>Under discussion</td>
</tr>
<tr>
  <td><a href="https://wiki.php.net/rfc/release_cycle_update">Release cycle update</a></td>
  <td>2023-11-05</td>
  <td>Under Discussion</td>
</tr>
</tbody>
</table>

<h3 id="release-maintenance">Release Maintenance</h3>

<p>Jakub Zelenka, one of the foundation developers, also volunteered to be a release manager for PHP 8.3. The PHP Foundation supported such an initiative.</p>

<h2 id="the-php-foundation-brand-%26-public-channels">The PHP Foundation brand &amp; public channels</h2>

<p>The PHP Foundation represents a community of core PHP developers and advocates for the PHP programming language. The channels listed below were used by the PHP Foundation for public communication:</p>

<ul>
<li>11,481 Twitter followers <a href="https://twitter.com/thephpf">https://twitter.com/thephpf</a></li>
<li>10,320 LinkedIn page followers <a href="https://www.linkedin.com/company/phpfoundation">https://www.linkedin.com/company/phpfoundation</a></li>
<li>684 Mastodon followers <a href="https://phpc.social/@thephpf">https://phpc.social/@thephpf</a></li>
</ul>

<p>The PHP Foundation members gave talks at multiple conferences throughout the year:</p>

<ul>
<li><a href="https://www.phpconference.co.uk/">PHP UK Conference</a> – Derick Rethans</li>
<li><a href="https://phpconference.com/">International PHP Conference</a> – Nils Adermann, Benjamin Eberlei</li>
<li><a href="https://froscon.org/en/">FrOSCon</a> – Sebastian Bergmann</li>
<li><a href="https://tek.phparch.com/">php&#91;tek&#93;</a> – Derick Rethans</li>
<li><a href="https://events.drupal.org/lille2023/session/php-foundation-0">DrupalCon Lille</a> - Nils Adermann</li>
<li><a href="https://php.bettercode.eu/">betterCode(PHP)</a> – Jakub Zalenka</li>
<li><a href="https://event.afup.org/">ForumPHP</a> – Gina P. Banyard</li>
<li><a href="https://2023.phpcon.pl/en/">PHPCon Poland</a> – Roman Pronskiy</li>
<li><a href="https://live.symfony.com/2023-brussels-con/">SymfonyCon</a> – Nicolas Grekas</li>
</ul>

<h2 id="official-recognition-on-the-php-website">Official Recognition on the PHP website</h2>

<p>The PHP Foundation is now officially endorsed on the php.net website. This was the result of a community vote on <a href="https://wiki.php.net/rfc/promote_php_foundation">RFC Promote the PHP Foundation</a>. Big thanks to Jim Winstead and the PHP community for this.</p>

<h2 id="financial-report">Financial report</h2>

<p>In 2023, 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.</p>

<table>
<thead>
<tr>
  <th></th>
  <th>2021 - 2022</th>
  <th>2023</th>
</tr>
</thead>
<tbody>
<tr>
  <td>Total contributed to The PHP Foundation</td>
  <td>$ 712,484</td>
  <td>$ 478,767</td>
</tr>
<tr>
  <td>Fees *</td>
  <td>$ 90,273</td>
  <td>$ 60,098</td>
</tr>
<tr>
  <td>Total received</td>
  <td>$ 622,211</td>
  <td>$ 418,669</td>
</tr>
<tr>
  <td>Paid to developers</td>
  <td>$ 133,285</td>
  <td>$ 275,181</td>
</tr>
</tbody>
</table>

<p><br>
<em>* 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.</em></p>

<p>All incoming and outgoing <strong>transactions of The PHP Foundation are publicly available</strong> to view for anyone: <a href="https://opencollective.com/phpfoundation#category-BUDGET">https://opencollective.com/phpfoundation#category-BUDGET</a></p>

<p><img src="/assets/post-images/2024/report-2023/budget.png" alt="Budget" /></p>

<h3 id="expenses">Expenses</h3>

<p><a href="https://opencollective.com/phpfoundation/expenses">https://opencollective.com/phpfoundation/expenses</a></p>

<p><img src="/assets/post-images/2024/report-2023/expenses.png" alt="Expenses" /></p>

<h2 id="goals-for-2024">Goals for 2024</h2>

<p>Our foremost mission remains the same: <strong>maintain and develop the PHP language</strong>. We’d like PHP to be the best platform for users and for businesses creating web applications and APIs.</p>

<p>The main challenge for continuing the work of The PHP Foundation is to ensure sustainable sponsorship.</p>

<p>From a technical standpoint, the goal is to ensure that foundation developers work on valuable tasks.</p>

<h3 id="organization-goals">Organization goals</h3>

<ul>
<li>Onboard new major sponsors.</li>
<li>Explore strategic partnerships and marketing opportunities.</li>
<li>Further develop the Advisory Board initiative.</li>
<li>Grow the foundation's community.</li>
</ul>

<h3 id="technical-goals">Technical goals</h3>

<ul>
<li>Ongoing maintenance and development of the PHP core.</li>
<li>Deliver the STF projects.</li>
<li>Improve the quality of the ideas and RFCs coming from the foundation.</li>
<li>Conduct research and surveys to define priorities.</li>
<li>Develop a high-level roadmap for PHP changes sponsored by the foundation.</li>
</ul>

<h2 id="budget-plan-for-2024">Budget plan for 2024</h2>

<p>In 2024, two of our part-time developers extended commitment to go full-time, and we contracted 4 new developers.</p>

<p>We have also adjusted the compensation rates for developers to better reflect the market, as the rates had not changed since 2021. As a result, our budget significantly increased.</p>

<p>With this plan, we estimate our annual spending cap at approximately <strong>$840,000</strong> for developer compensation.</p>

<p>Additionally, we anticipate receiving <strong>€205,000</strong> from the STF investment. These funds will be allocated to developer reimbursements and our partnership with OSTIF.org for an external security audit.</p>

<p>Our collaboration with the OpenCollective platform has been positive, and we plan to continue operating under the umbrella of the Open Source Collective in 2024. This means that sponsorships we receive are reduced by 10% for Open Source Collective fees and 1–5% for payment processing fees.</p>

<h2 id="outro">Outro</h2>

<p>The PHP language is a living entity and, as such, requires continuous support to address developer issues, resolve security vulnerabilities, and has to evolve to meet the needs of the future.</p>

<p>Based on the strong second year of the foundation, we are excited to continue and multiply the efforts in the next years.</p>

<p>With your help, we continue the mission to support, advance, and develop the PHP language.</p>

<section class="text-center mt-6">
    <div class="mb-14">
        <a href="/join" target="_blank" class="inline-block text-xl py-2 no-underline px-6 !text-white bg-[#7f52ff] rounded-3xl hover:bg-[rgba(127,82,255,.8)]">
            Join The PHP Foundation
        </a>
    </div>
</section>
]]></content>
        </entry>
            <entry>
            <title type="html"><![CDATA[The PHP Foundation
Team Update 2024]]></title>
            <link href="https://thephp.foundation/blog/2024/01/03/the-php-foundation-team-update-2024/"/>
            <updated>2024-01-03T00:00:00+00:00</updated>
            <id>https://thephp.foundation/blog/2024/01/03/the-php-foundation-team-update-2024/</id>
            <content type="html"><![CDATA[<p>Now in our third year, we're gearing up to grow our impact. This year, four more developers are joining the PHP Foundation to further advance PHP.</p>

<p>Since April 2022, the PHP Foundation has contracted six outstanding developers:</p>

<ul>
<li>Arnaud Le Blanc <a href="https://github.com/arnaud-lb">@arnaud-lb</a></li>
<li>Derick Rethans <a href="https://github.com/derickr">@derickr</a></li>
<li>Gina Peter Banyard <a href="https://github.com/Girgias">@Girgias</a></li>
<li>Ilija Tovilo <a href="https://github.com/iluuu1994">@iluuu1994</a></li>
<li>Jakub Zelenka <a href="https://github.com/bukka">@bukka</a></li>
<li>Máté Kocsis <a href="https://github.com/kocsismate">@kocsismate</a></li>
</ul>

<p>All of them started as part-time contributors, and since then have significantly grown their capacity and dedication to PHP core tasks. We consider it a big achievement that the team continues to collaborate effectively, accumulating more experience and knowledge, and expanding their PHP Core involvement.</p>

<h2 id="team-update-2024">Team Update 2024</h2>

<p>We are happy to announce a team expansion. Four talented developers are joining as part-time team members of the foundation.</p>

<ul>
<li>David Carlier <a href="https://github.com/devnexen">@devnexen</a></li>
<li>James Titcumb <a href="https://github.com/asgrim">@asgrim</a></li>
<li>Saki Takamachi <a href="https://github.com/SakiTakamachi">@SakiTakamachi</a></li>
<li>Shivam Mathur <a href="https://github.com/shivammathur">@shivammathur</a></li>
</ul>

<p>Please give them a warm welcome! We are looking forward to the great things we will accomplish together.</p>

<p>Happy New Year! 🎉🐘💜</p>
]]></content>
        </entry>
            <entry>
            <title type="html"><![CDATA[PHP Foundation Update, November 2023]]></title>
            <link href="https://thephp.foundation/blog/2023/11/27/php-foundation-update-november-2023/"/>
            <updated>2023-11-27T00:00:00+00:00</updated>
            <id>https://thephp.foundation/blog/2023/11/27/php-foundation-update-november-2023/</id>
            <content type="html"><![CDATA[<p><code>&lt;?php echo 'Hello world!';</code></p>

<p>This post provides insights into The PHP Foundation's recent activities.</p>

<blockquote>
  <p>My name is Roman Pronskiy. I’m employed by <a href="https://jetbrains.com/">JetBrains</a> to manage operations at the PHP Foundation. Reach out to me at pronskiy@thephp.foundation.</p>
  
  <p>You can find the full foundation structure <a href="https://thephp.foundation/structure/">here</a>, including all board members, developers, and the community.</p>
</blockquote>

<h2 id="team-growth">Team Growth</h2>

<p>In September, we initiated an open call for new developers to join the PHP Foundation by launching an <a href="https://thephp.foundation/blog/2023/09/06/application-form-2023/">application form</a>.</p>

<p>We received a total of 207 applications. From this pool, we selected a shortlist of 12 qualified candidates. Following a comprehensive review and input from existing foundation members, we further refined our selection to 4 outstanding individuals. We will soon announce the new members.</p>

<p>The primary focus for the new developers will be on the maintenance and modernization of PHP’s infrastructure — a critical step towards ensuring PHP being a robust and forward-looking language.</p>

<p>The public work undertaken by our developers can be followed in our monthly <a href="https://thephp.foundation/blog/tag/roundup/">"PHP Core Roundup"</a> series, which highlights the ongoing progress and developments within PHP core.</p>

<h2 id="advisory-board">Advisory Board</h2>

<p>For our major sponsors, we offer exclusive insights through occasional digests that provide a deeper dive into discussions, debates, and early-stage developments. This not only keeps our sponsors abreast of the latest happenings but also allows them to see the direct impact of their support. This is one of the benefits of being an Advisory Board member.</p>

<p>We announced the advisory board initiative <a href="https://thephp.foundation/blog/2023/03/31/php-foundation-update-march-2023/#a-new-benefit-for-major-sponsors-%E2%80%93-advisory-board-membership">in March</a>. Since then, 9 companies have joined the initiative with their representatives.</p>

<p>In addition to the <a href="https://thephp.foundation/structure/">Governing Board</a> that includes Automattic, JetBrains, Private Packagist, Symfony, Tideways, Zend by Perforce, and PHP fellows, we now welcome the Advisory Board members: Moodle, Shopware, Laravel, Ardennes-étape, Les-Tilleuls.coop / API Platform, Aternos GmbH, PrestaShop, CraftCMS.</p>

<p>There were several useful discussions within the group. Specifically, we’d like to highlight the one around <a href="https://wiki.php.net/rfc/property-hooks">Property Hooks RFC</a>. The Advisory Board feedback helped to shape the proposal design significantly.</p>

<p>By the way, you can already try property hooks on <a href="https://3v4l.org/">3v4l.org</a>, thanks to <a href="https://github.com/sponsors/SjonHortensius">Sjon Hortensius</a>.
<a href="https://3v4l.org/Y4KZn/rfc#vrfc.property-hooks"><img src="/assets/post-images/2023/3v4l-property-hooks.png"></a></p>

<h2 id="sovereign-tech-fund-invests-in-php">Sovereign Tech Fund invests in PHP</h2>

<p>The <a href="https://sovereigntechfund.de/en/">Sovereign Tech Fund</a> is an organization that supports the development, improvement, and maintenance of open digital infrastructure in the public interest. Its goal to strengthen the open-source ecosystem sustainably, focusing on security, resilience, technological diversity, and the people behind the code. STF is funded by the German Federal Ministry for Economic Affairs and Climate Action (BMWK) and supported by the German Federal Agency for Disruptive Innovation GmbH (SPRIND).</p>

<p>We have collaborated with STF to create work plans for these specific projects: PECL overhaul, Testing tool for FPM, Security Audit, and Documentation improvements.</p>

<p>We’ll share more details on each project early next year, and for now we are thrilled and grateful to the Sovereign Tech Fund for trusting us.</p>

<h2 id="security-audit-of-php-is-coming">Security audit of PHP is coming</h2>

<p>As mentioned above, STF is investing in PHP, and we are going to commission an audit of PHP's C code base. We expect security issues to be found. To mitigate possible bad perception, we aim to publish and fix the revealed security issues at the same time.</p>

<p>For this security audit, we are partnering with <a href="https://ostif.org/">The Open Source Technology Improvement Fund, Inc</a> (OSTIF), a corporate non-profit dedicated to securing critical open-source projects. They have a proven track record of audits for <a href="https://github.com/ostif-org/OSTIF/blob/main/Completed-Engagements.md">popular open-source projects</a> such as cURL, Git, Linux Kernel, OpenSSL, Node.js, and others.</p>

<h2 id="reports-schedule">Reports schedule</h2>

<p>Although we promised to prepare quarterly reports, that unfortunately did not happen to be feasible. So for 2023, we fall back to one yearly report. The 2023 transparency report will be published in December.</p>

<h2 id="meet-us-at-the-conferences">Meet us at the conferences</h2>

<p>You can meet our team at the following conferences in late 2023:</p>

<p><strong><a href="https://php.bettercode.eu/">betterCode(PHP)</a> – Nov 27</strong></p>

<p>Jakub Zalenka will give a talk: "PHP 8.3: Changes and future plans". <br> 
Besides Jakub, there will be talks from Niels Dossche and Sebastian Bergmann.</p>

<p><strong><a href="https://live.symfony.com/2023-brussels-con/">SymfonyCon Brussels</a> – Dec 7–8</strong></p>

<p>You’ll be able to meet and talk to our board members: Nils Adermann, Sebastian Bergmann, Nicolas Grekas, and Roman Pronskiy.</p>

<h2 id="thank-you-to-our-sponsors">Thank you to our sponsors</h2>

<p>Check out the <a href="https://thephp.foundation/#sponsors">Sponsors section</a> on our <a href="https://thephp.foundation/">website</a>. It shows all major contributors sorted by donation amount.</p>

<p>Big thanks to the <strong><a href="https://sentry.io/">Sentry</a></strong> team for sponsoring the PHP foundation!</p>

<p>Sentry is a popular application performance monitoring &amp; error tracking tool, and they <a href="https://blog.sentry.io/we-just-gave-500-000-dollars-to-open-source-maintainers/?utm_source=linkedin&amp;utm_content=blog-fundfest23-learnmore">just gave $500,000 to multiple open source maintainers</a>.</p>

<p><strong>Shout-out to non-financial sponsors</strong></p>

<p><a href="https://www.digitalocean.com/">Digital Ocean</a> has been supporting the PHP project for ages – <a href="https://www.php.net/">php.net</a> servers run on DigitalOcean boxes. We would like to express our gratitude to DigitalOcean for their ongoing support.</p>

<p>Big thanks to <a href="https://thephp.foundation/#sponsors">everyone</a> for your continued support – the PHP Foundation is all of us!</p>

<hr />

<p>That’s all for today. Follow us on Twitter <a href="https://twitter.com/thephpf">@ThePHPF</a> or Mastodon <a href="https://phpc.social/@thephpf">phpc.social/@thephpf</a> to get the latest updates from the PHP Foundation.
💜🐘</p>
]]></content>
        </entry>
            <entry>
            <title type="html"><![CDATA[PHP 8.3 Released!]]></title>
            <link href="https://thephp.foundation/blog/2023/11/23/php-83/"/>
            <updated>2023-11-23T00:00:00+00:00</updated>
            <id>https://thephp.foundation/blog/2023/11/23/php-83/</id>
            <content type="html"><![CDATA[<p><br /></p>

<object data="/assets/post-images/2023/php83/php83-fireworks.svg" type="image/svg+xml">
  <img src="/assets/post-images/2023/php83/php83-fireworks.svg" />
</object>

<p><br /></p>

<p><a href="https://www.php.net/releases/8.3">PHP 8.3</a> is here! Bringing a handful of new features, performance and functionality improvements, and a healthy amount of deprecations, PHP 8.3 was released today.</p>

<p>PHP 8.3 will continue to receive active support for two years, followed by one year of security updates. Similar to the PHP 8.2 upgrade, the PHP 8.3 upgrade will be smooth as backward compatiblity is maintained. While some functionality is deprecated, there are no syntax, API*, and remove functionality in this release.</p>

<h2 id="what%27s-in-php-8.3">What's in PHP 8.3</h2>

<p>Some of the major new features in PHP 8.3 include support for declaring a type for class constants, improvements to support deep-cloning of <code>readonly</code> properties, improvements to the new Random extension introduced in PHP 8.2, new <a href="https://www.php.net/manual/en/function.json-validate.php"><code>json_validate()</code></a>,<a href="https://www.php.net/manual/en/function.str-increment.php"><code>str_increment()</code></a>, and <a href="https://www.php.net/manual/en/function.str-decrement.php"><code>str_decrement()</code></a>, functions, and a noticeable amount of improvements in DateTime, DOM, and Intl extensions.</p>

<p>See the <a href="https://www.php.net/releases/8.3">PHP 8.3 release page</a> for what's new and changed in PHP 8.3.</p>

<blockquote>
  <p>(*) Note that some of the PHP core extensions now declare types for built-in class constants. This is technically a BC break in case child classes declare the same constants without type declaration, which is only supported in PHP 8.3.</p>
</blockquote>

<h2 id="upgrade-to-php-8.3">Upgrade to PHP 8.3</h2>

<p>PHP packages on software repositories such as Debian and Ubuntu repos maintained by <a href="https://launchpad.net/~ondrej">Ondřej Surý</a>, <a href="https://github.com/remicollet">Remi Collet</a> for Fedora/RHEL/EL already contain PHP 8.3 builds ready to install.</p>

<p>Windows builds for PHP 8.3 are available on <a href="https://windows.php.net/download/">windows.php.net</a></p>

<p><a href="https://hub.docker.com/_/php">Docker images</a> with PHP 8.3 will also be available on Docker hub in the coming days.</p>

<h2 id="php-8.3-release-in-numbers">PHP 8.3 Release in Numbers</h2>

<p>The PHP 8.3 release contains <strong>over 1200 code commits</strong> from <strong>114 awesome contributors</strong> to the <code>php-src</code> repository, and several more contributions to the documentation and its translations.</p>

<p>Contributions from the <strong>PHP Foundation members</strong> consist of over <strong>280 commits</strong>.</p>

<p>During the period from the PHP 8.2 release date and today, the <strong>PHP Internals mailing list has received over 2800 emails</strong>.</p>

<p>PHP RFCs, where major changes to PHP are proposed, discussed, and voted on, PHP 8.3 received <strong>23 RFCs that went to a vote</strong>, and <strong>18 RFCs passed</strong>. This includes a number includes "catch-all" RFCs such as Deprecations for PHP 8.3, where multiple changes were voted at the same time. Out of the 23 RFCs with votes, <strong>13 RFCs</strong> were either proposed or implemented by the <strong>PHP Foundation</strong> members.</p>

<p>The PHP documentation and php.net web site contributors have also made several impactful contributions to document the new features in PHP 8.3, prepare release pages, and more.</p>

<h2 id="%F0%9F%92%9C-thank-you-%F0%9F%92%9C">💜 Thank you 💜</h2>

<p>On behalf of the PHP Foundation, we take this post to thank everyone from this milestone in PHP. Your contributions to the PHP Foundation, code and documentation contributions, and several other ways of involvement and contributions help shape PHP to continue to be an exciting, feature-rich, and versatile programming language.</p>

<p>Thank you 💜</p>

<h2 id="php-8.4-outlook">PHP 8.4 Outlook</h2>

<p>PHP 8.4, scheduled for the end of 2024 is already taking shape. Even at the moment PHP 8.3 is released, there are three active RFC votes, and some major changes such as JIT-IR, a brand-new HTML 5 parser in the DOM extension based on <a href="https://github.com/lexbor/lexbor">Lexbor</a>, and Bcrypt default cost increasing already been implemented for PHP 8.4</p>

<p>We look forward to bringing you updates on our <a href="https://thephp.foundation/blog/tag/roundup/">PHP Core Roundup series</a> and our newsletter:</p>

<p><div class="px-4 pt-3 border-b border-t -mx-4 border-gray-200">
    <div class="bg-white py-8">
        <div class="mx-auto grid max-w-7xl grid-cols-1 gap-10 lg:grid-cols-12 lg:gap-8">
            <div class="max-w-xl text-4xl font-medium tracking-tight text-gray-900 lg:col-span-6">
                Subscribe to PHP Core Roundup newsletter
            </div>
            <form method="POST"
                  action="https://php-foundation.mailcoach.app/subscribe/9be4e2bd-f9d8-475c-b00e-2dcc4cf90056"
                  class="w-full max-w-md lg:col-span-6">
                <div class="flex gap-x-4">
                    <label for="email-address" class="sr-only">Email address</label>
                    <input id="email-address" name="email" type="email" autocomplete="email" required
                           class="min-w-0 flex-auto rounded-md border-0 px-3.5 py-2 text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm sm:leading-6"
                           placeholder="Enter your email">
                    <button type="submit"
                            class="inline-block py-2 no-underline px-6 !text-white bg-[#7f52ff] rounded-3xl hover:bg-[rgba(127,82,255,.8)]">
                        Subscribe
                    </button>
                </div>
                <div class="mt-4 text-sm leading-6 text-gray-900">
                    We care about your data.
                    Read our <a href="https://thephp.foundation/privacy-policy"
                                class="font-semibold text-indigo-600 hover:text-indigo-500 no-underline">privacy policy</a>.
                </div>
            </form>
        </div>
    </div>
</div>
</p>

<hr />

<p>💜️ 🐘</p>

<blockquote>
  <p>PHP Roundup is prepared by Ayesh Karunaratne from <strong><a href="https://php.watch">PHP.Watch</a></strong>, a source for PHP News, Articles, Upcoming Changes, and more.</p>
</blockquote>
]]></content>
        </entry>
            <entry>
            <title type="html"><![CDATA[PHP Core Roundup #18]]></title>
            <link href="https://thephp.foundation/blog/2023/11/01/php-core-roundup-18/"/>
            <updated>2023-11-01T00:00:00+00:00</updated>
            <id>https://thephp.foundation/blog/2023/11/01/php-core-roundup-18/</id>
            <content type="html"><![CDATA[<p>Welcome back to <a href="/blog/tag/roundup/">PHP Core Roundup</a> series! This is where we highlight and celebrate the improvements made to PHP during the month past by the PHP development team and members of the PHP Foundation.</p>

<blockquote>
  <p>The PHP Foundation is a collective of PHP contributors, veterans, and companies that collaborate to ensure the long-term sustainability of the PHP programming language. The foundation currently supports six contributors focused on PHP's maintenance, debt reduction, and feature development. These contributors work closely with others on coding, documentation, and discussions.</p>
  
  <p>Started over a year ago, the PHP Core Roundup series offers a summary of the latest developments, discussions, and news about PHP Core, contributed by both PHP Foundation members and other participants. This post is the thirteenth in the PHP Core Roundup series.</p>
</blockquote>

<p><div class="px-4 pt-3 border-b border-t -mx-4 border-gray-200">
    <div class="bg-white py-8">
        <div class="mx-auto grid max-w-7xl grid-cols-1 gap-10 lg:grid-cols-12 lg:gap-8">
            <div class="max-w-xl text-4xl font-medium tracking-tight text-gray-900 lg:col-span-6">
                Subscribe to PHP Core Roundup newsletter
            </div>
            <form method="POST"
                  action="https://php-foundation.mailcoach.app/subscribe/9be4e2bd-f9d8-475c-b00e-2dcc4cf90056"
                  class="w-full max-w-md lg:col-span-6">
                <div class="flex gap-x-4">
                    <label for="email-address" class="sr-only">Email address</label>
                    <input id="email-address" name="email" type="email" autocomplete="email" required
                           class="min-w-0 flex-auto rounded-md border-0 px-3.5 py-2 text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm sm:leading-6"
                           placeholder="Enter your email">
                    <button type="submit"
                            class="inline-block py-2 no-underline px-6 !text-white bg-[#7f52ff] rounded-3xl hover:bg-[rgba(127,82,255,.8)]">
                        Subscribe
                    </button>
                </div>
                <div class="mt-4 text-sm leading-6 text-gray-900">
                    We care about your data.
                    Read our <a href="https://thephp.foundation/privacy-policy"
                                class="font-semibold text-indigo-600 hover:text-indigo-500 no-underline">privacy policy</a>.
                </div>
            </form>
        </div>
    </div>
</div>
</p>

<h2 id="releases">Releases</h2>

<p>The PHP development team released two new versions in October 2023:</p>

<p><strong><a href="https://www.php.net/ChangeLog-8.php#8.2.12">PHP 8.2.12</a></strong> and <strong><a href="https://www.php.net/ChangeLog-8.php#8.1.25">PHP 8.1.25</a></strong></p>

<p>These releases include several bug fixes and improvements, notably in areas such as Core, CLI, CType, DOM, Fileinfo, Filter, Hash, Intl, MySQLnd, Opcache, PCRE, SimpleXML, Streams, XML, and XSL.</p>

<h2 id="recent-rfcs-and-mailing-list-discussions">Recent RFCs and Mailing List Discussions</h2>

<blockquote>
  <p>Changes and improvements to PHP are discussed, reported, and voted on by the PHP Foundation Team, the PHP development team, and contributors. Bug reports are made to the PHP <a href="https://github.com/php/php-src/issues">issue tracker</a>, changes are discussed in <a href="https://www.php.net/mailing-lists.php">mailing lists</a>, minor code changes are proposed as <a href="https://github.com/php/php-src/issues">pull requests</a>, and major changes are discussed in detail and voted on as <a href="https://wiki.php.net/rfc">PHP RFCs</a>. <a href="https://github.com/php/doc-en/">Documentation</a> and the <a href="https://github.com/php/web-php">php.net website</a> changes are also discussed and improved at their relevant Git repositories on GitHub.</p>
</blockquote>

<p><br>
Hundreds of awesome PHP contributors put their efforts into improvements to the PHP code base, documentation, and the php.net website. Here is a summary of some changes made by the people behind PHP. Things marked with 💜 are done by the PHP Foundation team.</p>

<h2 id="php-8.3-ga-to-be-released-this-month%21">PHP 8.3 GA to be released this month!</h2>

<p>PHP 8.3.0 GA is scheduled to be released on November 23rd. PHP 8.3.0 RC5 is already released, and RC6 (the last one) is scheduled for November, 9.</p>

<p>PHP 8.3.0 RC versions are available in <a href="https://rpms.remirepo.net/">Remi’s</a> repos for Fedora/RHEL, <a href="https://deb.sury.org/#php-packages">Ondrej's</a> repos for Debian/Ubuntu LTS, <a href="https://hub.docker.com/_/php/tags?page=1&amp;name=8.3">Docker images</a> on Docker Hub, and compiled Windows binaries on <a href="https://windows.php.net/">windows.php.net</a>.</p>

<h2 id="php-8.0-will-reach-eol">PHP 8.0 will reach EOL</h2>

<p>PHP 8.0 will reach its End of Life (EOL) and will no longer receive security updates after November 26, 2023. You can always check the release and support schedule at <a href="https://www.php.net/supported-versions.php">php.net/supported-versions.php</a>:</p>

<p><img src="/assets/post-images/2023/roundup-18/supported_versions_php.png" alt="" /></p>

<h2 id="rfc-updates">RFC Updates</h2>

<p>Following are the RFCs and major pull-requests discussed, voted, and implemented since our last update.</p>

<h3 id="in-voting%3A-straw-poll---how-to-name-the-process-resource-after-it-is-converted-to-an-object-by-m%C3%A1t%C3%A9-kocsis-%F0%9F%92%9C">In Voting: Straw poll - How to name the Process resource after it is converted to an object by Máté Kocsis 💜</h3>

<p>As part of PHP's efforts in gradually phrasing out <code>resource</code> objects (<a href="https://github.com/php/php-tasks/issues/6">php-tasks#6</a>, <a href="https://php.watch/articles/resource-object">article on PHP.Watch</a>), this RFC polls the proposed names for the resource object class name that replaces <code>Process</code> resources. This ranked-choice poll (following <a href="https://en.wikipedia.org/wiki/Single_transferable_vote#Example">STV</a>) intends to pick a name from <code>\Process</code>, <code>\ProcessHandle</code>, and <code>\OS\Process</code>.</p>

<h3 id="implemented%3A-increasing-the-default-bcrypt-cost-by-tim-d%C3%BCsterhus">Implemented: <a href="https://wiki.php.net/rfc/bcrypt_cost_2023">Increasing the default BCrypt cost</a> by Tim Düsterhus</h3>

<p>RFC was approved unanimously, but in the second vote, where a new cost value had to be determined, opinions were divided.</p>

<p>The cost will be increased to 12 in PHP 8.4.</p>

<h3 id="implemented%3A-xml_option_parse_huge-by-niels-dossche">Implemented: <a href="https://wiki.php.net/rfc/xml_option_parse_huge">XML_OPTION_PARSE_HUGE</a> by Niels Dossche</h3>

<p>A new option will be added to the event-driven (SAX) <code>XmlParser</code> that would allow it to parse large documents.</p>

<h3 id="accepted%3A-dom-html5-parsing-and-serialization-by-niels-dossche">Accepted: <a href="https://wiki.php.net/rfc/domdocument_html5_parser">DOM HTML5 parsing and serialization</a> by Niels Dossche</h3>

<p>PHP 8.4 will get new classes: <code>DOM\HTMLDocument</code> and <code>DOM\XMLDocument</code> to the <code>dom</code> extension. Existing <code>dom</code> classes in the global namespace get an alias in the new <code>DOM</code> namespace.</p>

<p>The <code>HTMLDocument</code> class will add support for HTML5 document parsing and serializing. The <code>XMLDocument</code> class serves as a modern alternative to <code>\DOMDocument</code>, which is retained for compatibility. These new classes also provide a more misuse-resistant API for loading documents.</p>

<h3 id="accepted%3A-a-new-jit-implementation-based-on-ir-framework-by-dmitry-stogov">Accepted: <a href="https://wiki.php.net/rfc/jit-ir">A new JIT implementation based on IR Framework</a> by Dmitry Stogov</h3>

<p>RFC proposed a new JIT implementation based on a separately developed <a href="https://github.com/dstogov/ir">IR Framework</a>. The main advantage of the new approach is that PHP source code will be freed from the low-level details of JIT compilation. The downside is a longer JIT-compilation time.</p>

<p>The proposal was accepted, so Dmitry Stogov <a href="https://github.com/php/php-src/pull/12079">merged</a> the new JIT into the <code>master</code> which means it will be available in PHP 8.4.</p>

<h3 id="under-discussion%3A-rfc1867-for-non-post-http-verbs-by-ilija-tovilo-%F0%9F%92%9C">Under discussion: <a href="https://wiki.php.net/rfc/rfc1867-non-post">RFC1867 for non-POST HTTP verbs</a> by Ilija Tovilo 💜</h3>

<p>Now PHP supports the parsing of <code>multipart/form-data</code> content type natively, but only for POST requests. If POST request has the <code>multipart/form-data</code> content type, the request body is immediately consumed before starting the PHP script and populated into the <code>$_POST</code> and <code>$_FILES</code> superglobals.</p>

<p>RFC proposes to add a new function <code>request_parse_body()</code> to expose the existing functionality to userland so that it may be used for other HTTP verbs.</p>

<h3 id="under-discussion%3A-rounding-integers-as-int-by-marc-bennewitz">Under discussion: <a href="https://wiki.php.net/rfc/integer-rounding">Rounding Integers as int</a> by Marc Bennewitz</h3>

<p>Currently <code>round()</code>, <code>ceil()</code> and <code>floor()</code> functions return float numbers, but when using integers above <code>2^53</code> you get unexpected results due to loss of precision.</p>

<p>RFC proposes to perform rounding for a given integer and returning the resulting integer if possible.</p>

<h3 id="under-discussion%3A-unbundle-ext%2Fimap%2C-ext%2Fpspell%2C-ext%2Foci8%2C-and-ext%2Fpdo_oci-by-derick-rethans-%F0%9F%92%9C">Under discussion: <a href="https://wiki.php.net/rfc/unbundle_imap_pspell_oci8">Unbundle ext/imap, ext/pspell, ext/oci8, and ext/PDO_OCI</a> by Derick Rethans 💜</h3>

<p>RFC proposes to unbundle these extensions: remove them from the PHP source distribution, and move them to PECL.</p>

<h3 id="under-discussion%3A-multibyte-for-trim-function-mb_trim%2C-mb_ltrim-and-mb_rtrim-by-yuya-hamada">Under discussion: <a href="https://wiki.php.net/rfc/mb_trim">Multibyte for trim function mb_trim, mb_ltrim and mb_rtrim</a> by Yuya Hamada</h3>

<p>RFC proposes to add multibyte support for trim functions.</p>

<h3 id="under-discussion%3A-change-the-edge-case-of-round-by-saki-takamachi">Under discussion: <a href="https://wiki.php.net/rfc/change_the_edge_case_of_round">Change the edge case of round()</a> by Saki Takamachi</h3>

<p>RFC proposes to change the <code>round()</code> behavior, and stop expecting decimal behavior to float point and start expecting floating point to behave as floating point.</p>

<p><br></p>

<h2 id="documentation">Documentation</h2>

<p>While PHP 8.3 is just around the corner, the documentation available on <a href="https://php.net">php.net</a>, requires updating.</p>

<p>Gina P. Banyard 💜 is tracking the progress for PHP 8.3 related changes in <a href="https://github.com/php/doc-en/issues/2796">php/doc-en#2796</a>, and also triaged issues in the docs and marked several of them as "<a href="https://github.com/php/doc-en/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22">good first time</a>", which are ideal easy picks if you would like to start contributing to PHP docs. You can find the full list on <a href="https://github.com/php/doc-en/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22">GitHub</a>.</p>

<p><br></p>

<h2 id="merged-prs-and-commits">Merged PRs and Commits</h2>

<p>Following are some changes that did not go through an RFC process because they are either planned, bug fixes, or progressive enhancements.</p>

<hr />

<h3 id="full-list-of-commits--since-php-core-roundup-%2317">Full list of commits  since <a href="/blog/2023/10/01/php-core-roundup-17/">PHP Core Roundup #17</a></h3>

<p>Commits are in the order they were added, grouped by author in alphabetical order.</p>

<details>

<summary>Click here to expand</summary>

<h3 id="alex-dowad">Alex Dowad</h3>

<ul>
<li>Add fast <code>mb_strcut</code> implementation for UTF-16 in <a href="https://github.com/php/php-src/commit/d04854b38c">d04854b38c</a></li>
<li>Fix infinite loop when <code>mb_detect_encoding</code> is used on UTF-8 BOM in <a href="https://github.com/php/php-src/commit/81e236cde5">81e236cde5</a></li>
<li><code>PHP_HAVE_BUILTIN_USUB_OVERFLOW</code> macro is defined even if __builtin_usub_overflow not available in <a href="https://github.com/php/php-src/commit/0c22276888">0c22276888</a></li>
<li>Add fast <code>mb_strcut</code> implementation for UTF-8 in <a href="https://github.com/php/php-src/commit/1f0cf133db">1f0cf133db</a></li>
<li>Add test cases for <code>mb_strcut</code> in <a href="https://github.com/php/php-src/commit/3fa836f711">3fa836f711</a></li>
<li>Add tests to document behavior of UTF7-IMAP conversion in obscure corner case in <a href="https://github.com/php/php-src/commit/9aa4b2bbad">9aa4b2bbad</a></li>
<li>Add assertion to mb_utf7imap_to_wchar to catch buffer overrun in <a href="https://github.com/php/php-src/commit/a57fdea149">a57fdea149</a></li>
</ul>

<h3 id="anatol-belski">Anatol Belski</h3>

<ul>
<li>NEWS: Add note about <a href="https://github.com/php/php-src/issues/11891">GH-11891</a> in <a href="https://github.com/php/php-src/commit/31a44c8ca7">31a44c8ca7</a></li>
<li>NEWS: Added note about <a href="https://github.com/php/php-src/issues/11891">GH-11891</a> in <a href="https://github.com/php/php-src/commit/1934da0a81">1934da0a81</a></li>
<li>NEWS: Added note about <a href="https://github.com/php/php-src/issues/11891">GH-11891</a> in <a href="https://github.com/php/php-src/commit/a1225f35bb">a1225f35bb</a></li>
<li>fileinfo: Backport svg detection patch in <a href="https://github.com/php/php-src/commit/bd24c56207">bd24c56207</a></li>
</ul>

<h3 id="ayesh-karunaratne">Ayesh Karunaratne</h3>

<ul>
<li>Minor fix in <code>NEWS</code> alignment in <a href="https://github.com/php/php-src/commit/f8433a5100">f8433a5100</a></li>
</ul>

<h3 id="ben-ramsey">Ben Ramsey</h3>

<ul>
<li>Add instructions for updating security.txt in web-php in <a href="https://github.com/php/php-src/pull/12316">GH-12316</a></li>
</ul>

<h3 id="coppolafab">coppolafab</h3>

<ul>
<li><code>php_cli_server</code>: ensure single date header is present in <a href="https://github.com/php/php-src/commit/f6ac08c6a3">f6ac08c6a3</a></li>
</ul>

<h3 id="cristian-rodr%C3%ADguez">Cristian Rodríguez</h3>

<ul>
<li>opcache: Use O_TMPFILE file lock if available in <a href="https://github.com/php/php-src/pull/8634">GH-8634</a></li>
</ul>

<h3 id="daniil-gentili">Daniil Gentili</h3>

<ul>
<li>Fix <a href="https://github.com/php/php-src/issues/11121">GH-11121</a>: ReflectionFiber segfault in <a href="https://github.com/php/php-src/commit/71f14510f6">71f14510f6</a></li>
<li>Report warning if JIT cannot be enabled in <a href="https://github.com/php/php-src/commit/7177461141">7177461141</a></li>
<li>Trigger JIT tracing&amp;compilation more often in <a href="https://github.com/php/php-src/commit/098d9ca720">098d9ca720</a></li>
</ul>

<h3 id="david-carlier">David CARLIER</h3>

<ul>
<li>cleanup inet_ntoa usage in <a href="https://github.com/php/php-src/commit/1c8943bc78">1c8943bc78</a></li>
<li><code>ext/pdo_pgsql</code>: cleanup the 3rd protocol is supported since circa 2010. in <a href="https://github.com/php/php-src/pull/12464">GH-12464</a></li>
<li><code>ext/pgsql</code>: cleanup the 3rd protocol is supported since circa 2010. in <a href="https://github.com/php/php-src/pull/12465">GH-12465</a></li>
<li>CODEOWNERS: adding myself for the pdo_pgsql extension in <a href="https://github.com/php/php-src/pull/12456">GH-12456</a></li>
<li>Fix 12424 PDO_PGSQL unit test unexistent variables in <a href="https://github.com/php/php-src/pull/12446">GH-12446</a></li>
<li>opcache posix creating special shared segments for FreeBSD 13 and above in <a href="https://github.com/php/php-src/commit/2e0ca4718b">2e0ca4718b</a></li>
<li>zend call stack for DragonFlyBSD. in <a href="https://github.com/php/php-src/pull/12325">GH-12325</a></li>
</ul>

<h3 id="dmitry-stogov">Dmitry Stogov</h3>

<ul>
<li>Backport fix for incorrect assumption about in-memory zval type in <a href="https://github.com/php/php-src/commit/455a967934">455a967934</a></li>
<li>Backport implementation of iterative Pearce&#039;s SCC finding algoritm in <a href="https://github.com/php/php-src/pull/12528">GH-12528</a></li>
<li>Add reference to IR framework in <a href="https://github.com/php/php-src/commit/c282e2080f">c282e2080f</a></li>
<li>Fixed codegeneration for NOT in <a href="https://github.com/php/php-src/commit/ed37ab9d14">ed37ab9d14</a></li>
<li>Fixed <a href="https://github.com/php/php-src/issues/12511">GH-12511</a>: Use must be in next opline assertion with patched infection in <a href="https://github.com/php/php-src/commit/b3b46a44c5">b3b46a44c5</a></li>
<li>Fix memory leak after GC inside a foreach loop in <a href="https://github.com/php/php-src/pull/12572">GH-12572</a></li>
<li>Fixed <a href="https://github.com/php/php-src/issues/12560">GH-12560</a>: Assertion `0 &amp;&amp; &quot;too long jmp distance&quot;&#039; failed with new JIT on AArch64 in <a href="https://github.com/php/php-src/commit/93c57af778">93c57af778</a></li>
<li>Fixed codegeneration for PRE_DEC in <a href="https://github.com/php/php-src/commit/411b6fb4e6">411b6fb4e6</a></li>
<li>Fixed incorrect assumption about in-memory zval type in <a href="https://github.com/php/php-src/commit/52480b3a79">52480b3a79</a></li>
<li>Fixed codegeneration for MATCH in <a href="https://github.com/php/php-src/commit/bd183a4069">bd183a4069</a></li>
<li>Fixed codegeneration for FETCH_DIM_IS in <a href="https://github.com/php/php-src/commit/e482785886">e482785886</a></li>
<li>Fixed codegenertion for FETCH_DIM_W in <a href="https://github.com/php/php-src/commit/c8cb68ad0a">c8cb68ad0a</a></li>
<li>Fixed incorrect trace type inference in <a href="https://github.com/php/php-src/commit/c19347a0d3">c19347a0d3</a></li>
<li>Implement iterative Pearce&#039;s SCC finding algoritm in <a href="https://github.com/php/php-src/pull/12528">GH-12528</a></li>
<li>Fixed <a href="https://github.com/php/php-src/issues/12509">GH-12509</a>: JIT assertion when running php-parser tests in <a href="https://github.com/php/php-src/commit/5f46d86955">5f46d86955</a></li>
<li>Fixed codegeneration for IDENTICAL in <a href="https://github.com/php/php-src/commit/e95faaeebd">e95faaeebd</a></li>
<li>Fixed code generation for DETCH_DIM_R in <a href="https://github.com/php/php-src/commit/ce269178a9">ce269178a9</a></li>
<li>Fixed regression introduced by <a href="https://github.com/php/php-src/commit/4ae483af36a86aeccbdae29af31213ba13cddb12">4ae483af</a> in <a href="https://github.com/php/php-src/commit/8eda3151eb">8eda3151eb</a></li>
<li>Fixed regression intoduced by <a href="https://github.com/php/php-src/commit/76c41d27f9277eb8210d0058f19d0a7cfa7d7a66">76c41d27</a> in <a href="https://github.com/php/php-src/commit/fbf4e196da">fbf4e196da</a></li>
<li>Fixed codegeneration for INC_OBJ in <a href="https://github.com/php/php-src/commit/a96ea5d235">a96ea5d235</a></li>
<li>Fixed code generation for MOD in <a href="https://github.com/php/php-src/commit/9f5a4c3799">9f5a4c3799</a></li>
<li>Fixed code generation for CMP in <a href="https://github.com/php/php-src/commit/c2b704b63e">c2b704b63e</a></li>
<li>Fixed code generation for ASSIGN_DIM in <a href="https://github.com/php/php-src/commit/c163ff68da">c163ff68da</a></li>
<li>Invalidate &quot;memory&quot; type of zval if a register was stored in memory to call a helper function in <a href="https://github.com/php/php-src/commit/accc1e6c67">accc1e6c67</a></li>
<li>Fixed compilation of &quot;switch&quot; with undefined input in <a href="https://github.com/php/php-src/commit/8fc3615a7a">8fc3615a7a</a></li>
<li>Fixed compilation of dead code after assignment property to non object in <a href="https://github.com/php/php-src/commit/3a8767b0d1">3a8767b0d1</a></li>
<li>Update IR in <a href="https://github.com/php/php-src/commit/894a7594aa">894a7594aa</a></li>
<li>Update IR in <a href="https://github.com/php/php-src/commit/1068a5f758">1068a5f758</a></li>
<li>Fixed selection candidates for register allocation in <a href="https://github.com/php/php-src/commit/4ae483af36">4ae483af36</a></li>
<li>Fixed compilation of match with undefined input in <a href="https://github.com/php/php-src/commit/23e4e3b18b">23e4e3b18b</a></li>
<li>Fixed incorrect type inference in <a href="https://github.com/php/php-src/commit/aa45df4849">aa45df4849</a></li>
<li>Fixed <a href="https://github.com/php/php-src/issues/12482">GH-12482</a>: Abortion with tracing JIT in <a href="https://github.com/php/php-src/commit/76c41d27f9">76c41d27f9</a></li>
<li>Remove old JIT implementation in <a href="https://github.com/php/php-src/pull/12498">GH-12498</a></li>
<li>memory_consumption must be page aligned in <a href="https://github.com/php/php-src/commit/e270ee3008">e270ee3008</a></li>
<li>Fixed <a href="https://github.com/php/php-src/issues/12494">GH-12494</a>: Zend/tests/arginfo_zpp_mismatch.phpt causes a segfault withJIT + <code>--repeat</code> 2 in <a href="https://github.com/php/php-src/commit/e0ca4dca5b">e0ca4dca5b</a></li>
<li>Fix possible NULL dereference (crash on Zend/tests/arginfo_zpp_mismatch.phpt) in <a href="https://github.com/php/php-src/commit/25cb2a40d6">25cb2a40d6</a></li>
<li>A new PHP JIT implementation based on IR JIT framework in <a href="https://github.com/php/php-src/pull/12079">GH-12079</a></li>
<li>Fixed <a href="https://github.com/php/php-src/issues/11917">GH-11917</a>: primitives seem to be passed via reference instead of by value under some conditions when JIT is enabled on windows in <a href="https://github.com/php/php-src/pull/12451">GH-12451</a></li>
<li>Fixed <a href="https://github.com/php/php-src/issues/12428">GH-12428</a>: Assertion with function/tracing JIT in <a href="https://github.com/php/php-src/commit/dabced0fbb">dabced0fbb</a></li>
<li>Fixed possible use-after-free in <a href="https://github.com/php/php-src/commit/2297e8c143">2297e8c143</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/12364">GH-12364</a>: JIT leak in Symfony TranslationDebugCommandTest in <a href="https://github.com/php/php-src/pull/12394">GH-12394</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/12364">GH-12364</a>: JIT leak in Symfony TranslationDebugCommandTest in <a href="https://github.com/php/php-src/pull/12394">GH-12394</a></li>
<li>Fix incorrect trace type inference in <a href="https://github.com/php/php-src/commit/44a7016049">44a7016049</a></li>
<li>Fixed <a href="https://github.com/php/php-src/issues/12382">GH-12382</a>: JIT Index invalid or out of range error in <a href="https://github.com/php/php-src/commit/5a8f96b0bb">5a8f96b0bb</a></li>
<li>Fixed <a href="https://github.com/php/php-src/issues/12262">GH-12262</a>: Tracing JIT assertion crash when using phpstan in <a href="https://github.com/php/php-src/commit/54452b4811">54452b4811</a></li>
</ul>

<h3 id="eric-mann">Eric Mann</h3>

<ul>
<li>Prepare NEWS for PHP 8.3.0RC5 in <a href="https://github.com/php/php-src/commit/cd71ab33c4">cd71ab33c4</a></li>
</ul>

<h3 id="gina-peter-banyard-%F0%9F%92%9C">Gina Peter Banyard 💜</h3>

<ul>
<li>PDO: Clean-up tests so it&#039;s easier to see if they use default test table in <a href="https://github.com/php/php-src/pull/12552">GH-12552</a></li>
<li><code>ext/xml</code>: Refactor extension to use FCC instead of zvals for handlers in <a href="https://github.com/php/php-src/pull/12340">GH-12340</a></li>
<li><code>ext/spl</code>: Use new F ZPP modifier in <a href="https://github.com/php/php-src/commit/e41598c7fc">e41598c7fc</a></li>
<li><code>ext/libxml</code>: Use new F ZPP modifier in <a href="https://github.com/php/php-src/commit/52de0950f4">52de0950f4</a></li>
<li>Zend: Add ZPP F type check for callables that do not free trampolines in <a href="https://github.com/php/php-src/commit/d86314939c">d86314939c</a></li>
<li>Add some const qualifiers in HashTable foreach macros in <a href="https://github.com/php/php-src/pull/8671">GH-8671</a></li>
</ul>

<h3 id="icy17">icy17</h3>

<ul>
<li>Fix null pointer dereferences in case of allocation failure in <a href="https://github.com/php/php-src/commit/900f0cab9f">900f0cab9f</a></li>
</ul>

<h3 id="ilija-tovilo-%F0%9F%92%9C">Ilija Tovilo 💜</h3>

<ul>
<li>Add <code>zend_worklist.h</code> to <code>PHP_INSTALL_HEADERS</code> in <a href="https://github.com/php/php-src/pull/12571">GH-12571</a></li>
<li>Attempt to fix pdo_mysql conflict on CircleCI in <a href="https://github.com/php/php-src/pull/12563">GH-12563</a></li>
<li>Run FreeBSD on push in <a href="https://github.com/php/php-src/commit/b280f1f964">b280f1f964</a></li>
<li>Split complex regexes to multiple lines in <code>zend_vm_gen.php</code> in <a href="https://github.com/php/php-src/commit/964e9d806b">964e9d806b</a></li>
<li>Fix double-free of doc_comment when overriding static property via trait in <a href="https://github.com/php/php-src/commit/af3d2f7ec9">af3d2f7ec9</a></li>
<li>Implement diagnostic ignore macro for Clang in <a href="https://github.com/php/php-src/commit/80b4c73030">80b4c73030</a></li>
<li>Close PHP tags in tests in <a href="https://github.com/php/php-src/commit/f39b5c4c25">f39b5c4c25</a></li>
<li>Avoid JIT warning with opcache.jit_buffer_size=0 in <a href="https://github.com/php/php-src/commit/07d81592e9">07d81592e9</a></li>
<li>Revert &quot;Test ASAN on Ubuntu 22.04 in nightly by increasing swap&quot; in <a href="https://github.com/php/php-src/commit/5a0c0072dd">5a0c0072dd</a></li>
<li>Remove redundant CI JIT flags in <a href="https://github.com/php/php-src/commit/29fed1cf47">29fed1cf47</a></li>
<li>Fix JIT on nightly in <a href="https://github.com/php/php-src/commit/734afa0ba8">734afa0ba8</a></li>
<li>CircleCI: Increase no_output_timeout to 30m in <a href="https://github.com/php/php-src/commit/c07aed53dd">c07aed53dd</a></li>
<li>Remove invalid <code>--with-zlib-dir</code>=/usr configure flag in <a href="https://github.com/php/php-src/commit/384a4764b1">384a4764b1</a></li>
<li>Move ARM build to CircleCI in <a href="https://github.com/php/php-src/commit/4332546bbf">4332546bbf</a></li>
<li>Reduce jit_max_root_traces in tests in <a href="https://github.com/php/php-src/commit/2aa2d91a7b">2aa2d91a7b</a></li>
<li>Fix use-after-free of constant name in <a href="https://github.com/php/php-src/commit/53dbb760da">53dbb760da</a></li>
<li>Move Cirrus to nightly only, trigger on-demand in <a href="https://github.com/php/php-src/commit/92693a2286">92693a2286</a></li>
<li>Minimal backport of 098d9ca in <a href="https://github.com/php/php-src/commit/36a87e6d32">36a87e6d32</a></li>
<li>Fix <code>SKIPIF</code> jit test in <a href="https://github.com/php/php-src/commit/6e7e52de19">6e7e52de19</a></li>
<li>Add missing jitType input for test-macos action in <a href="https://github.com/php/php-src/commit/234648e40c">234648e40c</a></li>
<li>Fix invalid returned opcode for memoized expressions in <a href="https://github.com/php/php-src/commit/4ba5699903">4ba5699903</a></li>
<li>Test ASAN on Ubuntu 22.04 in nightly by increasing swap in <a href="https://github.com/php/php-src/commit/f7cef9a242">f7cef9a242</a></li>
<li>Fix <code>str_decrement()</code> on &quot;1&quot; in <a href="https://github.com/php/php-src/commit/b31a5b2731">b31a5b2731</a></li>
<li>Use separate sqlsrv dbs for different exts in <a href="https://github.com/php/php-src/commit/769f41bb21">769f41bb21</a></li>
<li>Fix GCC warning in <code>math.c</code> in <a href="https://github.com/php/php-src/commit/fcae58809f">fcae58809f</a></li>
</ul>

<h3 id="jakub-zelenka-%F0%9F%92%9C">Jakub Zelenka 💜</h3>

<ul>
<li>Fix failing test for bug <a href="https://bugs.php.net/bug.php?id=75708">#75708</a> in <a href="https://github.com/php/php-src/commit/006032b6f0">006032b6f0</a></li>
<li>Fix bug <a href="https://bugs.php.net/bug.php?id=75708">#75708</a>: getimagesize with &quot;&amp;$imageinfo&quot; fails on StreamWrappers in <a href="https://github.com/php/php-src/commit/52aa0d9ecc">52aa0d9ecc</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/12489">GH-12489</a>: Missing sigbio creation checking in openssl_cms_verify in <a href="https://github.com/php/php-src/commit/83a242ec0c">83a242ec0c</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/12232">GH-12232</a>: FPM: segfault dynamically loading extension without opcache in <a href="https://github.com/php/php-src/commit/0217be4d5b">0217be4d5b</a></li>
</ul>

<h3 id="jorg-adam-sowa">Jorg Adam Sowa</h3>

<ul>
<li>Typed constants in sqlite extension in <a href="https://github.com/php/php-src/pull/12379">GH-12379</a></li>
<li>Typed constants in Intl extenstion in <a href="https://github.com/php/php-src/pull/12360">GH-12360</a></li>
<li>Typed constants in PDO extension in <a href="https://github.com/php/php-src/pull/12362">GH-12362</a></li>
<li>Typed constants in reflection extension in <a href="https://github.com/php/php-src/pull/12378">GH-12378</a></li>
<li>Typed constants in SPL extension in <a href="https://github.com/php/php-src/pull/12358">GH-12358</a></li>
</ul>

<h3 id="julien-desrosiers">Julien Desrosiers</h3>

<ul>
<li>Nested match expression tests in <a href="https://github.com/php/php-src/commit/226b92b1dc">226b92b1dc</a></li>
</ul>

<h3 id="julien-francoz">Julien Francoz</h3>

<ul>
<li>add file path in opcache lock file error in <a href="https://github.com/php/php-src/pull/10331">GH-10331</a></li>
</ul>

<h3 id="k%C3%A9vin-dunglas">Kévin Dunglas</h3>

<ul>
<li>fix: don&#039;t delete an unitialized timer in <a href="https://github.com/php/php-src/pull/12537">GH-12537</a></li>
</ul>

<h3 id="levi-morrison">Levi Morrison</h3>

<ul>
<li>fix <code>mbstring.c</code> -Wsingle-bit-bitfield-constant-conversion in <a href="https://github.com/php/php-src/pull/12327">GH-12327</a></li>
<li>fix -Wreturn-type and -Wstrict-prototypes in gd configure in <a href="https://github.com/php/php-src/pull/12328">GH-12328</a></li>
</ul>

<h3 id="marcos-marcolin">Marcos Marcolin</h3>

<ul>
<li>Remove unused code in <code>run-tests.php</code> in <a href="https://github.com/php/php-src/pull/12553">GH-12553</a></li>
<li>chore: removes redundant validation of $repeat, as it is the while condition. in <a href="https://github.com/php/php-src/pull/12521">GH-12521</a></li>
</ul>

<h3 id="michael-vo%C5%99%C3%AD%C5%A1ek">Michael Voříšek</h3>

<ul>
<li>Fix unused variable in <code>phpdbg_cmd.c</code> in <a href="https://github.com/php/php-src/pull/12575">GH-12575</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/11374">GH-11374</a>: Different preg_match result with -d pcre.jit=0 in <a href="https://github.com/php/php-src/commit/83a505e85f">83a505e85f</a></li>
</ul>

<h3 id="mikhail-galanin">Mikhail Galanin</h3>

<ul>
<li>Invalidate path even if the file was deleted in <a href="https://github.com/php/php-src/commit/f4ab494906">f4ab494906</a></li>
</ul>

<h3 id="m%C3%A1t%C3%A9-kocsis-%F0%9F%92%9C">Máté Kocsis 💜</h3>

<ul>
<li>Parallelize pdo tests (dblib, firebird, oci, odbc, pgsql) in <a href="https://github.com/php/php-src/pull/12395">GH-12395</a></li>
</ul>

<h3 id="niels-dossche">Niels Dossche</h3>

<ul>
<li>Fix memory leak in error path of <code>zend_register_list_destructors_ex</code> in <a href="https://github.com/php/php-src/commit/3bf5d89efb">3bf5d89efb</a></li>
<li>Fix cloning attribute with namespace disappearing namespace in <a href="https://github.com/php/php-src/commit/3e33eda39a">3e33eda39a</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/12532">GH-12532</a>: PharData created from zip has incorrect timestamp in <a href="https://github.com/php/php-src/commit/a470c4aeef">a470c4aeef</a></li>
<li>Remove dead stores from <code>ext/spl</code> in <a href="https://github.com/php/php-src/pull/12550">GH-12550</a></li>
<li>Mitigate <a href="https://bugs.php.net/bug.php?id=51561">#51561</a>: SoapServer with a extented class and using sessions, lost the setPersistence() in <a href="https://github.com/php/php-src/commit/53218b1a32">53218b1a32</a></li>
<li>Fix FFI tests on 8.3+ in <a href="https://github.com/php/php-src/commit/43064cae94">43064cae94</a></li>
<li>Fix #47531: No way of removing redundant xmlns: declarations in <a href="https://github.com/php/php-src/commit/f9a24969d0">f9a24969d0</a></li>
<li>Fix bug <a href="https://bugs.php.net/bug.php?id=75306">#75306</a>: Memleak in SoapClient in <a href="https://github.com/php/php-src/commit/27797a26ca">27797a26ca</a></li>
<li>Fix incorrect dtor for persistent sdl-&gt;encoders in <a href="https://github.com/php/php-src/commit/9f7f3b2034">9f7f3b2034</a></li>
<li>Fix soap crash with <code>ZEND_RC_DEBUG</code> in <a href="https://github.com/php/php-src/pull/12514">GH-12514</a></li>
<li>Convert <code>ext/xml</code> fields from int to bool in <a href="https://github.com/php/php-src/pull/12497">GH-12497</a></li>
<li>Use Clang 16 to work around LSAN TLS crashes in <a href="https://github.com/php/php-src/pull/12496">GH-12496</a></li>
<li>[RFC] DOM HTML5 parsing and serialization support (Lexbor library part) in <a href="https://github.com/php/php-src/pull/12493">GH-12493</a></li>
<li>Implement request <a href="https://bugs.php.net/bug.php?id=68325">#68325</a>: parse huge option for <code>xml_parser_create</code> (<a href="https://bugs.php.net/bug.php?id=12256">#12256</a>) in <a href="https://github.com/php/php-src/commit/98b08c52db">98b08c52db</a></li>
<li>Remove <code>php_xsl_create_object()</code> in <a href="https://github.com/php/php-src/pull/12492">GH-12492</a></li>
<li>Fix segfault and assertion failure with refcounted props and arrays in <a href="https://github.com/php/php-src/commit/01d61605d3">01d61605d3</a></li>
<li>Fix segfault and assertion failure with refcounted props and arrays in <a href="https://github.com/php/php-src/commit/deebb68612">deebb68612</a></li>
<li>Fix incorrect uri check in SOAP caching in <a href="https://github.com/php/php-src/commit/abf562c417">abf562c417</a></li>
<li>Fix bug <a href="https://bugs.php.net/bug.php?id=66150">#66150</a>: SOAP WSDL cache race condition causes Segmentation Fault in <a href="https://github.com/php/php-src/commit/43e63168e9">43e63168e9</a></li>
<li>Avoid refcounted copy in <code>_object_properties_init()</code> for internal classes in <a href="https://github.com/php/php-src/pull/12474">GH-12474</a></li>
<li>Add Laravel demo page to benchmark CI in <a href="https://github.com/php/php-src/commit/1c9c3af157">1c9c3af157</a></li>
<li>Cleanup unused variable in <code>php_dom.c</code> in <a href="https://github.com/php/php-src/pull/12463">GH-12463</a></li>
<li>Refactor some <code>ext/pcre</code> code for performance in <a href="https://github.com/php/php-src/pull/12447">GH-12447</a></li>
<li>Add missing module dependency for xsl in <a href="https://github.com/php/php-src/commit/68aa793173">68aa793173</a></li>
<li>Remove unused variable &#039;error&#039; in <a href="https://github.com/php/php-src/pull/12438">GH-12438</a></li>
<li>Fix compile error when <code>php_libxml.h</code> is included in C++ in <a href="https://github.com/php/php-src/commit/0cab865275">0cab865275</a></li>
<li>Optimize <code>strspn()</code> in <a href="https://github.com/php/php-src/commit/d0b29d8286">d0b29d8286</a></li>
<li>Fix registerNodeClass with abstract class crashing in <a href="https://github.com/php/php-src/commit/d7de0ceca6">d7de0ceca6</a></li>
<li>Cover more paths in <code>dom_xpath_ext_function_php()</code> with tests in <a href="https://github.com/php/php-src/commit/49b8168ddb">49b8168ddb</a></li>
<li>Introduce Z_PARAM_FUNC_EX2 to maintain compatibility in <a href="https://github.com/php/php-src/pull/12419">GH-12419</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/12392">GH-12392</a>: Segmentation fault on SoapClient::__getTypes in <a href="https://github.com/php/php-src/commit/7e4a3236d9">7e4a3236d9</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/8996">GH-8996</a>: DOMNode serialization on PHP ^8.1 in <a href="https://github.com/php/php-src/commit/24e5e4ec0d">24e5e4ec0d</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/12380">GH-12380</a>: JIT+private array property access inside closure accesses private property in child class in <a href="https://github.com/php/php-src/commit/fb6838770c">fb6838770c</a></li>
<li>Convert bounds exception in SplFixedArray to OutOfBoundsException instead of RuntimeException in <a href="https://github.com/php/php-src/pull/12383">GH-12383</a></li>
<li>Fix Windows CI in <a href="https://github.com/php/php-src/commit/ae52f1958d">ae52f1958d</a></li>
<li>Add missing properties to xsl stub in <a href="https://github.com/php/php-src/pull/12334">GH-12334</a></li>
<li>Ignore optional warning output in test in <a href="https://github.com/php/php-src/commit/6cf76d552e">6cf76d552e</a></li>
<li>Fix test under older CI configurations in <a href="https://github.com/php/php-src/commit/b140f6e9f8">b140f6e9f8</a></li>
<li>Fix <a href="https://bugs.php.net/bug.php?id=80092">#80092</a>: ZTS + preload = segfault on shutdown in <a href="https://github.com/php/php-src/commit/bdc87b0f66">bdc87b0f66</a></li>
<li>Improve error messages for <code>XSLTProcessor::transformToDoc()</code> in <a href="https://github.com/php/php-src/pull/12332">GH-12332</a></li>
<li>Fix broken cache invalidation with deallocated and reallocated document node in <a href="https://github.com/php/php-src/commit/eebc528cbf">eebc528cbf</a></li>
<li>Use RETURN_STR_COPY() in xsl in <a href="https://github.com/php/php-src/commit/f10e1b8f59">f10e1b8f59</a></li>
<li>Implement request <a href="https://bugs.php.net/bug.php?id=64137">#64137</a> (<code>XSLTProcessor::setParameter()</code> should allow both quotes to be used) in <a href="https://github.com/php/php-src/commit/5c749ad4cf">5c749ad4cf</a></li>
<li>Apply SimpleXML iterator fixes only on master in <a href="https://github.com/php/php-src/commit/b842ea4fa8">b842ea4fa8</a></li>
<li>Add test for <code>XSLTProcessor::getParameter()</code> in <a href="https://github.com/php/php-src/commit/b67530a6c0">b67530a6c0</a></li>
</ul>

<h3 id="omar-emara">Omar Emara</h3>

<ul>
<li>PGSQL: Allow unconditional selection in pg_select in <a href="https://github.com/php/php-src/commit/75da0d7c45">75da0d7c45</a></li>
</ul>

<h3 id="peter-kokot">Peter Kokot</h3>

<ul>
<li>Remove unused DBA_CDB_MAKE constant in <a href="https://github.com/php/php-src/pull/12535">GH-12535</a></li>
<li>Remove redundant code in <code>ext/mysqlnd</code> build in <a href="https://github.com/php/php-src/pull/12384">GH-12384</a></li>
</ul>

<h3 id="saki-takamachi">Saki Takamachi</h3>

<ul>
<li>Optimized pdo_pgsql connection test in <a href="https://github.com/php/php-src/pull/12454">GH-12454</a></li>
<li>Fixed regular expression to get password from dsn in <a href="https://github.com/php/php-src/pull/12448">GH-12448</a></li>
<li>Fixed a bug in <code>zend_memnistr</code> with single character needle in <a href="https://github.com/php/php-src/commit/736032febf">736032febf</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/12423">GH-12423</a>: Changed to prioritize DSN authentication information over arguments in <a href="https://github.com/php/php-src/commit/b5c287e4b4">b5c287e4b4</a></li>
</ul>

<h3 id="sergei-turchanov">Sergei Turchanov</h3>

<ul>
<li>Reset inheritance_cache pointer of <code>zend_class_entry</code> upon serialization in <a href="https://github.com/php/php-src/pull/12401">GH-12401</a></li>
</ul>

<h3 id="sji">sji</h3>

<ul>
<li>Fix segfault caused by weak references to FFI objects in <a href="https://github.com/php/php-src/pull/12488">GH-12488</a></li>
</ul>

<h3 id="tim-d%C3%BCsterhus">Tim Düsterhus</h3>

<ul>
<li>random: Add additional test for <code>Randomizer::getFloat()</code> in <a href="https://github.com/php/php-src/pull/12436">GH-12436</a></li>
<li>random: Fix γ-section implementation for <code>Randomizer::getFloat()</code> in <a href="https://github.com/php/php-src/pull/12402">GH-12402</a></li>
<li>random: Remove RAND_RANGE_BADSCALING in <a href="https://github.com/php/php-src/pull/12374">GH-12374</a></li>
<li>pcre: Stop special-casing /e in <a href="https://github.com/php/php-src/pull/12355">GH-12355</a></li>
<li>password_hash: Increase <code>PHP_PASSWORD_BCRYPT_COST</code> to 12 in <a href="https://github.com/php/php-src/pull/12367">GH-12367</a></li>
</ul>

<h3 id="usarise">usarise</h3>

<ul>
<li>fileinfo: Backport svg detection patch in <a href="https://github.com/php/php-src/commit/1f5bea3452">1f5bea3452</a></li>
</ul>

<h3 id="viktor-vassilyev">Viktor Vassilyev</h3>

<ul>
<li><code>ext/soap</code>: Add support for clark notation for namespaces in class map in <a href="https://github.com/php/php-src/commit/e58af7c160">e58af7c160</a></li>
</ul>

<h3 id="yurun">Yurun</h3>

<ul>
<li>Fix the incorrect data type of float values in PDO query results in <a href="https://github.com/php/php-src/commit/6d10a69898">6d10a69898</a></li>
</ul>

<h3 id="%E6%AD%A6%E7%94%B0-%E6%86%B2%E5%A4%AA%E9%83%8E">武田 憲太郎</h3>

<ul>
<li>Fix pgsql and mysql tests on GitHub actions in <a href="https://github.com/php/php-src/commit/f42cef6675">f42cef6675</a></li>
</ul>

</details>

<p><br>
We are incredibly grateful for the commitment and dedication of all contributors. Stay tuned for next month's roundup as we continue to make PHP better together.</p>

<p><br></p>

<hr />

<h2 id="support-php-foundation">Support PHP Foundation</h2>

<p>At The PHP Foundation, we support, promote, and advance the PHP language. We financially support six PHP core developers to contribute to the PHP project. You can help support PHP Foundation on <a href="https://opencollective.com/phpfoundation">OpenCollective</a> or via <a href="https://github.com/sponsors/ThePHPF">GitHub Sponsors</a>.</p>

<p>A big thanks to all our sponsors — PHP Foundation is all of us!</p>

<p>Follow us on Twitter <a href="https://twitter.com/thephpf">@ThePHPF</a> to get the latest updates from the Foundation.</p>

<p>💜️ 🐘</p>

<blockquote>
  <p>PHP Roundup is prepared by Ayesh Karunaratne from <strong><a href="https://php.watch">PHP.Watch</a></strong>, a source for PHP News, Articles, Upcoming Changes, and more.</p>
</blockquote>
]]></content>
        </entry>
            <entry>
            <title type="html"><![CDATA[PHP Core Roundup #17]]></title>
            <link href="https://thephp.foundation/blog/2023/10/01/php-core-roundup-17/"/>
            <updated>2023-10-01T00:00:00+00:00</updated>
            <id>https://thephp.foundation/blog/2023/10/01/php-core-roundup-17/</id>
            <content type="html"><![CDATA[<p>Welcome back to <a href="/blog/tag/roundup/">PHP Core Roundup</a> series! This is post #17, where we highlight and celebrate the improvements made to PHP during the month past by the PHP development team, members of the PHP Foundation, and more.</p>

<blockquote>
  <p>The PHP Foundation is a collective of PHP contributors, veterans, and companies that collaborate to ensure the long-term sustainability of the PHP programming language. The foundation currently supports six contributors focused on PHP's maintenance, debt reduction, and feature development. These contributors work closely with others on coding, documentation, and discussions.</p>
  
  <p>Started over a year ago, the PHP Core Roundup series offers a summary of the latest developments, discussions, and news about PHP Core, contributed by both PHP Foundation members and other participants. This post is the thirteenth in the PHP Core Roundup series.</p>
</blockquote>

<p><div class="px-4 pt-3 border-b border-t -mx-4 border-gray-200">
    <div class="bg-white py-8">
        <div class="mx-auto grid max-w-7xl grid-cols-1 gap-10 lg:grid-cols-12 lg:gap-8">
            <div class="max-w-xl text-4xl font-medium tracking-tight text-gray-900 lg:col-span-6">
                Subscribe to PHP Core Roundup newsletter
            </div>
            <form method="POST"
                  action="https://php-foundation.mailcoach.app/subscribe/9be4e2bd-f9d8-475c-b00e-2dcc4cf90056"
                  class="w-full max-w-md lg:col-span-6">
                <div class="flex gap-x-4">
                    <label for="email-address" class="sr-only">Email address</label>
                    <input id="email-address" name="email" type="email" autocomplete="email" required
                           class="min-w-0 flex-auto rounded-md border-0 px-3.5 py-2 text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm sm:leading-6"
                           placeholder="Enter your email">
                    <button type="submit"
                            class="inline-block py-2 no-underline px-6 !text-white bg-[#7f52ff] rounded-3xl hover:bg-[rgba(127,82,255,.8)]">
                        Subscribe
                    </button>
                </div>
                <div class="mt-4 text-sm leading-6 text-gray-900">
                    We care about your data.
                    Read our <a href="https://thephp.foundation/privacy-policy"
                                class="font-semibold text-indigo-600 hover:text-indigo-500 no-underline">privacy policy</a>.
                </div>
            </form>
        </div>
    </div>
</div>
</p>

<h2 id="php-security-audit-organized-by-the-php-foundation-%F0%9F%92%9C">PHP Security Audit organized by The PHP Foundation 💜</h2>

<p>The PHP Foundation intends to conduct a security audit of the PHP source code. Derick Rethans 💜 has asked the PHP Internals mailing list for input on which sections of the PHP source code should be prioritized in this audit. Feel free to join the <a href="https://externals.io/message/121135">conversation</a> if you have suggestions.</p>

<h2 id="releases">Releases</h2>

<p>The PHP development team released two new versions in September 2023:</p>

<p><strong><a href="https://www.php.net/archive/2023.php#2023-09-28-1">PHP 8.2.11</a></strong> and <strong><a href="https://www.php.net/archive/2023.php#2023-09-28-3">PHP 8.1.24</a></strong></p>

<p>These releases include several bug fixes and improvements, notably in areas such as Core, DOM, Iconv, Intl, MySQLnd, ODBC, SimpleXML, SPL, and SQLite3.</p>

<h2 id="recent-rfcs-and-mailing-list-discussions">Recent RFCs and Mailing List Discussions</h2>

<blockquote>
  <p>Changes and improvements to PHP are discussed, reported, and voted on by the PHP Foundation Team, the PHP development team, and contributors. Bug reports are made to the PHP <a href="https://github.com/php/php-src/issues">issue tracker</a>, changes are discussed in <a href="https://www.php.net/mailing-lists.php">mailing lists</a>, minor code changes are proposed as <a href="https://github.com/php/php-src/issues">pull requests</a>, and major changes are discussed in detail and voted on as <a href="https://wiki.php.net/rfc">PHP RFCs</a>. <a href="https://github.com/php/doc-en/">Documentation</a> and the <a href="https://github.com/php/web-php">php.net website</a> changes are also discussed and improved at their relevant Git repositories on GitHub.</p>
</blockquote>

<p><br>
Hundreds of awesome PHP contributors put their efforts into improvements to the PHP code base, documentation, and the php.net website. Here is a summary of some changes made by the people behind PHP. Things marked with 💜 are done by the PHP Foundation team.</p>

<h2 id="php-8.3-release-page">PHP 8.3 Release Page</h2>

<p>A <a href="https://github.com/php/web-php/pull/807">pull-request</a> for the upcoming PHP 8.3 release page on php.net is in progress, and you can help with that!</p>

<p>This is a continuation of <a href="https://externals.io/message/112026">a good tradition</a> started by Roman Pronskiy, Alexander Makarov, and the JetBrains design team.</p>

<p>Check out how these pages looked like for <a href="https://www.php.net/releases/8.0/en.php">PHP 8.0</a>, <a href="https://www.php.net/releases/8.1/en.php">PHP 8.1</a>, and <a href="https://www.php.net/releases/8.2/en.php">PHP 8.2</a>.</p>

<h2 id="early-developments-for-php-8.4">Early-developments for PHP 8.4</h2>

<p>Although PHP 8.3 is still being ironed out, there are some discussions and even an RFC currently being voted for proposed changes in PHP 8.4 (scheduled for the end of 2024).</p>

<h3 id="declined%3A-support-optional-suffix-parameter-in-tempnam-by-athos-ribeiro">Declined: <a href="https://wiki.php.net/rfc/tempnam-suffix-v2">Support optional suffix parameter in tempnam</a> by Athos Ribeiro</h3>

<p>RFC proposes to add a new optional suffix parameter to the <code>tempnam()</code> function.</p>

<p>A suffix could provide even more semantic value or context for a user inspecting the generated files, and, in specific situations, could even provide more context for software processing such files. Right now, users can only add a prefix.</p>

<h3 id="in-voting%3A-increasing-the-default-bcrypt-cost-by-tim-d%C3%BCsterhus">In Voting: <a href="https://wiki.php.net/rfc/bcrypt_cost_2023">Increasing the default BCrypt cost</a> by Tim Düsterhus</h3>

<p>The RFC proposes increasing the default BCrypt cost. This is to enhance adaptive security in relation to increased processing power and thus increased possible cracking speed.</p>

<p>The last time the value was updated 11 years ago. Therefore, Tim suggests updating the default cost from 10 to either 11 (double the time) or 12 (quadruple the time). The <a href="https://wiki.php.net/rfc/bcrypt_cost_2023">RFC</a> and the relevant <a href="https://externals.io/message/121004">mailing list thread</a> mention several benchmarks showing the execution time for various cost levels on different CPUs.</p>

<h3 id="under-discussion%3A-dom-html5-parsing-and-serialization-by-niels-dossche">Under Discussion: <a href="https://wiki.php.net/rfc/domdocument_html5_parser">DOM HTML5 parsing and serialization</a> by Niels Dossche</h3>

<p>RFC proposes to add two new classes: <code>DOM\HTMLDocument</code> and <code>DOM\XMLDocument</code> to the dom extension. Furthermore, existing dom classes in the global namespace get an alias in the new DOM namespace. The <code>HTMLDocument</code> class will add support for HTML5 document parsing and serializing. The <code>XMLDocument</code> class serves as a modern alternative to <code>\DOMDocument</code>, which is retained for compatibility. These new classes also provide a more misuse-resistant API for loading documents.</p>

<h3 id="under-discussion%3A-xml_option_parse_huge-by-niels-dossche">Under Discussion: <a href="https://wiki.php.net/rfc/xml_option_parse_huge">XML_OPTION_PARSE_HUGE</a> by Niels Dossche</h3>

<p>RFC proposes to add a new option to the event-driven (SAX) <code>XmlParser</code> that would allow it to parse large documents.</p>

<h3 id="under-discussion%3A-add-4-new-rounding-modes-to-round-function-by-jorg-sowa">Under Discussion: <a href="https://wiki.php.net/rfc/new_rounding_modes_to_round_function">Add 4 new rounding modes to round() function</a> by Jorg Sowa</h3>

<p>RFC proposes to add four new modes to the <code>round()</code> function: <code>PHP_ROUND_CEILING</code>, <code>PHP_ROUND_FLOOR</code>, <code>PHP_ROUND_AWAY_FROM_ZERO</code>, <code>PHP_ROUND_TOWARD_ZERO</code>.</p>

<h3 id="under-discussion%3A-a-new-jit-implementation-based-on-ir-framework-by-dmitry-stogov">Under Discussion: <a href="https://wiki.php.net/rfc/jit-ir">A new JIT implementation based on IR Framework</a> by Dmitry Stogov</h3>

<p>RFC proposes a new JIT implementation that is based on a separately developed <a href="https://github.com/dstogov/ir">IR Framework</a>. The main advantage of the new approach is that PHP source code will be freed from the low-level details of JIT compilation. The downside is a longer JIT-compilation time.</p>

<p>Dmitry <a href="https://externals.io/message/121038">emailed</a> PHP Internals mailing list, which led to a lengthy discussion on the merits of the new JIT implementation.</p>

<h3 id="draft%3A-deprecations-for-php-8.4-rfc-by-niels-dossche">Draft: <a href="https://wiki.php.net/rfc/deprecations_php_8_4">Deprecations for PHP 8.4 RFC</a> by Niels Dossche</h3>

<p>RFC is currently in draft, which stands to track ideas on deprecating certain features. So far those are related to the <code>DOMAttr::$schemaTypeInfo</code>, <code>DOMElement::$schemaTypeInfo</code> properties, <code>DOMImplementation::getFeature()</code>, <code>mysqli_ping()</code>, <code>mysqli::ping()</code> functions, and <code>DOM_PHP_ERR</code> constant.</p>

<p><br></p>

<h2 id="documentation">Documentation</h2>

<p>While PHP 8.3 has moved to the RC cycle, the documentation available on <a href="https://php.net">php.net</a>, requires updating. An initial version of the <a href="https://www.php.net/manual/en/migration83.php">PHP 8.3 migration guide</a> has been published by Yoshinari Takaoka.</p>

<p>Gina P. Banyard 💜 is tracking the progress for PHP 8.3 related changes in <a href="https://github.com/php/doc-en/issues/2796">php/doc-en#2796</a>, and also triaged issues in the docs and marked several of them as "good first time", which are ideal easy picks if you would like to start contributing to PHP docs. You can find the full list on <a href="https://github.com/php/doc-en/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22">GitHub</a>.</p>

<p><br></p>

<h2 id="merged-prs-and-commits">Merged PRs and Commits</h2>

<p>Following are some changes that did not go through an RFC process because they are either planned, bug fixes, or progressive enhancements.</p>

<hr />

<h3 id="full-list-of-commits--since-php-core-roundup-%2316">Full list of commits  since <a href="/blog/2023/09/01/php-core-roundup-16/">PHP Core Roundup #16</a></h3>

<p>Commits are in the order they were added, grouped by author in alphabetical order.</p>

<details>

<summary>Click here to expand</summary>

<h3 id="alex-dowad">Alex Dowad</h3>

<ul>
<li><code>PHP_HAVE_BUILTIN_USUB_OVERFLOW</code> macro is defined even if __builtin_usub_overflow not available in <a href="https://github.com/php/php-src/commit/50ca24251d">50ca24251d</a></li>
</ul>

<h3 id="calvin-buckley">Calvin Buckley</h3>

<ul>
<li>ODBC unit tests shouldn&#039;t override odbc.ini location in <a href="https://github.com/php/php-src/commit/a648d39297">a648d39297</a></li>
<li>Fix persistent procedural ODBC connections not getting closed in <a href="https://github.com/php/php-src/commit/5a2b251610">5a2b251610</a></li>
<li>Fix memory leak with failed SQLPrepare in <a href="https://github.com/php/php-src/commit/a022ec53bd">a022ec53bd</a></li>
</ul>

<h3 id="david-carlier">David Carlier</h3>

<ul>
<li>zend call stack support for haiku w/o using posix pthread api but the in <a href="https://github.com/php/php-src/pull/12103">GH-12103</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/12190">GH-12190</a>: <code>stream_context_create</code> with address and port at 0 in <a href="https://github.com/php/php-src/commit/d65c80031a">d65c80031a</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/12282">GH-12282</a>: <code>IntlDateFormatter::construct</code> should throw an exception is the locale field has an invalid value in <a href="https://github.com/php/php-src/commit/a80db7b52a">a80db7b52a</a></li>
<li><code>ext/intl</code>: expose dateformat UDAT_PATTERN constant in <a href="https://github.com/php/php-src/commit/f6fae19a10">f6fae19a10</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/12243">GH-12243</a>, segfault on <code>IntlDateFormatter::construct</code> with dateType set to UDAT_PATTERN but not timeType in <a href="https://github.com/php/php-src/commit/84c4336aa3">84c4336aa3</a></li>
<li><code>zend_call_stack_get</code> implementation for NetBSD in <a href="https://github.com/php/php-src/commit/aef5225394">aef5225394</a></li>
</ul>

<h3 id="divinity76">divinity76</h3>

<ul>
<li>random: Perform fewer iterations if SKIP_SLOW_TESTS is set in <a href="https://github.com/php/php-src/pull/12279">GH-12279</a></li>
<li>support running testsuite with negative niceness in <a href="https://github.com/php/php-src/pull/11481">GH-11481</a></li>
</ul>

<h3 id="dmitry-stogov">Dmitry Stogov</h3>

<ul>
<li>Fixed tracing JIT support for CALLABLE_CONVERT in <a href="https://github.com/php/php-src/pull/12156">GH-12156</a></li>
<li>Fix ws in <a href="https://github.com/php/php-src/commit/3ffa1c4c3e">3ffa1c4c3e</a></li>
<li>Fixed tracing jit for BIND_INIT_STATIC_OR_JMP in <a href="https://github.com/php/php-src/commit/95edb50b58">95edb50b58</a></li>
<li>Fixed uninitialized EX(opline) access (possible Zend/tests/gh12073.phpt crash) in <a href="https://github.com/php/php-src/commit/f1f608bf53">f1f608bf53</a></li>
<li>Use version of PHP SDK binary tools that uses PHP downloads in <a href="https://github.com/php/php-src/commit/b7af61a154">b7af61a154</a></li>
</ul>

<h3 id="florian-sowade">Florian Sowade</h3>

<ul>
<li>Fix <a href="https://github.com/php/php-src/issues/12207">GH-12207</a> memory leak of doc blocks of static properties in <a href="https://github.com/php/php-src/commit/910f579f14">910f579f14</a></li>
</ul>

<h3 id="gina-peter-banyard-%F0%9F%92%9C">Gina Peter Banyard 💜</h3>

<ul>
<li><code>ext/mysqli</code>: Work on making tests parallizable in <a href="https://github.com/php/php-src/pull/11814">GH-11814</a></li>
<li><code>ext/pcntl</code>: Remove useless call to <code>zend_get_callable_name()</code> in <a href="https://github.com/php/php-src/pull/12241">GH-12241</a></li>
<li>Fixed oss-fuzz <a href="https://bugs.php.net/bug.php?id=62294">#62294</a>: Unsetting variable after ++/-- on string variable warning in <a href="https://github.com/php/php-src/commit/0b614a6c2b">0b614a6c2b</a></li>
<li>Zend: Remove dependency on <code>zend.h</code> for certain headers in <a href="https://github.com/php/php-src/pull/12166">GH-12166</a></li>
<li>streams: Checking if a stream is castable should not emit warnings for user defined streams in <a href="https://github.com/php/php-src/commit/d68073c23b">d68073c23b</a></li>
<li><code>ext/pdo</code>: Refactor <code>pdo_stmt_construct()</code> to use newer FCI/FCC API in <a href="https://github.com/php/php-src/pull/12142">GH-12142</a></li>
<li>Fix OSS Fuzz <a href="https://bugs.php.net/bug.php?id=61865">#61865</a>: Undef variable in ++/-- for declared property that is unset in error handler in <a href="https://github.com/php/php-src/commit/8a392eddf9">8a392eddf9</a></li>
<li>Fixed bug <a href="https://github.com/php/php-src/issues/12020">GH-12020</a>: <code>intl_get_error_message()</code> broken after <code>MessageFormatter::formatMessage()</code> fails in <a href="https://github.com/php/php-src/commit/a579fa807c">a579fa807c</a></li>
<li>Add tests for oss-fuzz-61469: Undef dynamic property in ++/-- unset in error handler in <a href="https://github.com/php/php-src/commit/013bb5769b">013bb5769b</a></li>
</ul>

<h3 id="graham-campbell">Graham Campbell</h3>

<ul>
<li>Removed incorrect news items for things already in 8.3.x or earlier in <a href="https://github.com/php/php-src/commit/58b8393cce">58b8393cce</a></li>
</ul>

<h3 id="ilija-tovilo-%F0%9F%92%9C">Ilija Tovilo 💜</h3>

<ul>
<li>Use autoconf for recognizing __builtin_unreachable() in <a href="https://github.com/php/php-src/pull/12266">GH-12266</a></li>
<li>Fix getpriority test with negative return value in <a href="https://github.com/php/php-src/commit/181598d403">181598d403</a></li>
<li>Use __builtin_unreachable() directly in <code>ZEND_UNREACHABLE</code> in <a href="https://github.com/php/php-src/commit/37ce7199f2">37ce7199f2</a></li>
<li>Move static property check to assert in <a href="https://github.com/php/php-src/pull/12239">GH-12239</a></li>
<li>Upgrade to macOS 12 in CI in <a href="https://github.com/php/php-src/commit/55ed7690f4">55ed7690f4</a></li>
<li>Upload callgrind profile to GA in <a href="https://github.com/php/php-src/pull/12212">GH-12212</a></li>
<li>Fix filter_var with callback and explicit REQUIRE_SCALAR in <a href="https://github.com/php/php-src/commit/c2fb10d2d2">c2fb10d2d2</a></li>
<li>Use <code>zend_error_noreturn</code> for E_ERROR consistently in <a href="https://github.com/php/php-src/commit/692cea5cbc">692cea5cbc</a></li>
<li>Fix noreturn with warning that should be an error in <a href="https://github.com/php/php-src/commit/2227fefa17">2227fefa17</a></li>
<li>Improve invalid cpp modifier message in <a href="https://github.com/php/php-src/commit/011071a3b3">011071a3b3</a></li>
<li>Fix <code>zend_separate_if_call_and_write</code> for FUNC_ARGs in <a href="https://github.com/php/php-src/commit/748adf18fc">748adf18fc</a></li>
<li>Revert &quot;Skip profiling of sqlite3_step&quot; in <a href="https://github.com/php/php-src/commit/3fb09940fc">3fb09940fc</a></li>
<li>Skip profiling of sqlite3_step in <a href="https://github.com/php/php-src/commit/bb31a75321">bb31a75321</a></li>
<li>Revert <a href="https://github.com/php/php-src/commit/479e65933154f1da92e6a820000e3bd3b2392874">479e6593</a> in <a href="https://github.com/php/php-src/commit/3433dab5f7">3433dab5f7</a></li>
<li>Fix freeing of incompletely initialized closures in <a href="https://github.com/php/php-src/commit/af2110e664">af2110e664</a></li>
<li><code>xfail</code> mbstring test on Windows 32-bit in <a href="https://github.com/php/php-src/commit/6b74f1f745">6b74f1f745</a></li>
<li>Fix master branch check in find-target-branch.bat in <a href="https://github.com/php/php-src/commit/9ce9c11ee8">9ce9c11ee8</a></li>
<li>Include branch in benchmarking information in <a href="https://github.com/php/php-src/commit/ee6f9e294c">ee6f9e294c</a></li>
</ul>

<h3 id="jakub-zelenka-%F0%9F%92%9C">Jakub Zelenka 💜</h3>

<ul>
<li>Prepare NEWS for PHP 8.3.0RC4 in <a href="https://github.com/php/php-src/commit/517411d2fb">517411d2fb</a></li>
<li>Reduce impact of stream file path check in filestat in <a href="https://github.com/php/php-src/commit/5e8c992c78">5e8c992c78</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/12151">GH-12151</a>: str_getcsv ending with escape zero segfualt in <a href="https://github.com/php/php-src/commit/64ebadcac5">64ebadcac5</a></li>
<li>Use version of PHP SDK binary tools that uses PHP downloads in <a href="https://github.com/php/php-src/pull/12085">GH-12085</a></li>
</ul>

<h3 id="ju1ius">ju1ius</h3>

<ul>
<li>Prevents double call to internal iterator rewind handler in <a href="https://github.com/php/php-src/commit/da7a66d647">da7a66d647</a></li>
<li>adds failing test case for <a href="https://github.com/php/php-src/issues/12060">GH-12060</a> in <a href="https://github.com/php/php-src/commit/9658d9ada4">9658d9ada4</a></li>
</ul>

<h3 id="kamil-tekiela">Kamil Tekiela</h3>

<ul>
<li>Remove MySQL 4.1 checks in <a href="https://github.com/php/php-src/commit/83738fc9a4">83738fc9a4</a></li>
<li>Improve mysqli_character_set_name tests in <a href="https://github.com/php/php-src/commit/5f6bf3edd6">5f6bf3edd6</a></li>
</ul>

<h3 id="levi-morrison">Levi Morrison</h3>

<ul>
<li>Set func pointer to null in Closure __invoke in <a href="https://github.com/php/php-src/pull/12275">GH-12275</a></li>
</ul>

<h3 id="lewis-cowles">Lewis Cowles</h3>

<ul>
<li>ci: more verbose output in <a href="https://github.com/php/php-src/pull/12264">GH-12264</a></li>
</ul>

<h3 id="max-semenik">Max Semenik</h3>

<ul>
<li>Fix <a href="https://github.com/php/php-src/issues/12186">GH-12186</a>: segfault copying/cloning a finalized HashContext in <a href="https://github.com/php/php-src/commit/10f5a06d3c">10f5a06d3c</a></li>
</ul>

<h3 id="m%C3%A1t%C3%A9-kocsis-%F0%9F%92%9C">Máté Kocsis 💜</h3>

<ul>
<li>Fix predefined constant page synchonization in <a href="https://github.com/php/php-src/commit/cc2a68e588">cc2a68e588</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/12123">GH-12123</a> Make _ZEND_TYPE_PREFIX apply only for MSVC in <a href="https://github.com/php/php-src/commit/45c7e3b06b">45c7e3b06b</a></li>
<li>Fix type of the <code>PHP_FLOAT_DIG</code> constant in <a href="https://github.com/php/php-src/commit/58657ff26a">58657ff26a</a></li>
<li>Fix type of the <code>PHP_FLOAT_DIG</code> constant in <a href="https://github.com/php/php-src/commit/2fad7cdd60">2fad7cdd60</a></li>
<li>Improve detection of predefined constants in <a href="https://github.com/php/php-src/commit/2cb4d00693">2cb4d00693</a></li>
<li>Add support for verifying and syncronizing predefined constants with the manual in <a href="https://github.com/php/php-src/commit/0363dbfef4">0363dbfef4</a></li>
<li>Align class name detection to the new class synopsis format in <a href="https://github.com/php/php-src/commit/c5fb8b6a6b">c5fb8b6a6b</a></li>
</ul>

<h3 id="niels-dossche">Niels Dossche</h3>

<ul>
<li>Revert &quot;Fix <a href="https://github.com/php/php-src/issues/10008">GH-10008</a>: Narrowing occurred during type inference of <code>ZEND_ADD_ARRAY_ELEMENT</code>&quot; in <a href="https://github.com/php/php-src/commit/643c4ba417">643c4ba417</a></li>
<li>Fix compile error with -Werror=incompatible-function-pointer-types and old libxml2 in <a href="https://github.com/php/php-src/commit/df89409aba">df89409aba</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/10008">GH-10008</a>: Narrowing occurred during type inference of <code>ZEND_ADD_ARRAY_ELEMENT</code> in <a href="https://github.com/php/php-src/commit/e72fc12058">e72fc12058</a></li>
<li>Fix type error on <code>XSLTProcessor::transformToDoc</code> return value with SimpleXML in <a href="https://github.com/php/php-src/commit/2a7f23e9b9">2a7f23e9b9</a></li>
<li>Restore old namespace reconciliation behaviour in <a href="https://github.com/php/php-src/commit/e127f87114">e127f87114</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/11997">GH-11997</a>: ctype_alnum 5 times slower in PHP 8.1 or greater in <a href="https://github.com/php/php-src/commit/07811b6390">07811b6390</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/12297">GH-12297</a>: PHP Startup: Invalid library (maybe not a PHP library) &#039;mysqlnd.so&#039; in Unknown on line in <a href="https://github.com/php/php-src/commit/14fc3d1566">14fc3d1566</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/12167">GH-12167</a> and <a href="https://github.com/php/php-src/issues/12169">GH-12169</a>: Unable to get comment or processing instruction contents in SimpleXML in <a href="https://github.com/php/php-src/commit/82a84d0b7b">82a84d0b7b</a></li>
<li>Make sure core module has number 0 in <a href="https://github.com/php/php-src/pull/12272">GH-12272</a></li>
<li>Extend C14N fast path to HTML documents too in <a href="https://github.com/php/php-src/pull/12293">GH-12293</a></li>
<li>Remove unnecessary libxml2 version checks in <a href="https://github.com/php/php-src/commit/6a7b96529b">6a7b96529b</a></li>
<li>Add additional test for special cases for C14N in <a href="https://github.com/php/php-src/commit/916dedf7d7">916dedf7d7</a></li>
<li>Remove unnecessary invalidation in <a href="https://github.com/php/php-src/commit/554f659602">554f659602</a></li>
<li>Implement <a href="https://bugs.php.net/bug.php?id=53655">#53655</a>: Improve speed of DOMNode::C14N() on large XML documents in <a href="https://github.com/php/php-src/commit/5d68d61943">5d68d61943</a></li>
<li>Fix memory leak when calling <code>xml_parse_into_struct()</code> twice in <a href="https://github.com/php/php-src/commit/30f26b587a">30f26b587a</a></li>
<li>Fix return type of stub of <code>xml_parse_into_struct()</code> in <a href="https://github.com/php/php-src/commit/b1d9a8d321">b1d9a8d321</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/12215">GH-12215</a>: Module entry being overwritten causes type errors in <code>ext/dom</code> (PHP 8.4) in <a href="https://github.com/php/php-src/commit/8a812c3fda">8a812c3fda</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/12215">GH-12215</a>: Module entry being overwritten causes type errors in <code>ext/dom</code> (&lt;= PHP 8.3) in <a href="https://github.com/php/php-src/commit/da6097ffc8">da6097ffc8</a></li>
<li>Fix bug <a href="https://bugs.php.net/bug.php?id=55098">#55098</a>: SimpleXML iteration produces infinite loop in <a href="https://github.com/php/php-src/commit/1a4e401bf0">1a4e401bf0</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/11956">GH-11956</a>: PCRE regular expressions with JIT enabled gives different result in <a href="https://github.com/php/php-src/commit/d61efdfe97">d61efdfe97</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/12208">GH-12208</a>: SimpleXML infinite loop when a cast is used inside a foreach in <a href="https://github.com/php/php-src/commit/486276f0f9">486276f0f9</a></li>
<li>Simplify <code>php_sxe_count_elements_helper()</code> by using non-destructive iterator reset in <a href="https://github.com/php/php-src/commit/8f9626c0f7">8f9626c0f7</a></li>
<li>Add a test case for iterator and empty &amp; var_dump interactions in <a href="https://github.com/php/php-src/commit/fe98a16af7">fe98a16af7</a></li>
<li>Use <code>php_sxe_reset_iterator_no_clear_iter_data()</code> to avoid having to store and restore iterator data in <a href="https://github.com/php/php-src/commit/550ec29821">550ec29821</a></li>
<li>Remove unnecessary _IS_BOOL case in <a href="https://github.com/php/php-src/pull/12230">GH-12230</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/12223">GH-12223</a>: Entity reference produces infinite loop in var_dump/print_r in <a href="https://github.com/php/php-src/commit/39a9e561f9">39a9e561f9</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/12192">GH-12192</a>: SimpleXML infinite loop when getName() is called within foreach in <a href="https://github.com/php/php-src/commit/4d888cf53f">4d888cf53f</a></li>
<li>Simplify node check in simplexml in <a href="https://github.com/php/php-src/commit/0fee720173">0fee720173</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/12170">GH-12170</a>: Can&#039;t use xpath with comments in SimpleXML in <a href="https://github.com/php/php-src/commit/747335f100">747335f100</a></li>
<li>Small optimization in <code>php_sxe_get_first_node()</code> by avoiding unwrapping iterator data in <a href="https://github.com/php/php-src/pull/12194">GH-12194</a></li>
<li>Fix <a href="https://bugs.php.net/bug.php?id=52751">#52751</a>: XPath processing-<code>instruction()</code> function is not supported in <a href="https://github.com/php/php-src/commit/107443b311">107443b311</a></li>
<li>Deduplicate ParentNode and ChildNode interface implementations using @implementation-alias in <a href="https://github.com/php/php-src/commit/f2fede56c8">f2fede56c8</a></li>
<li>Remove useless SKIP_TEXT() invokes in <a href="https://github.com/php/php-src/pull/12164">GH-12164</a></li>
<li>Preallocate result array size in simplexml xpath in <a href="https://github.com/php/php-src/commit/d18bab5562">d18bab5562</a></li>
<li>Remove obsolete libxml2 code in <a href="https://github.com/php/php-src/commit/0ea268b51a">0ea268b51a</a></li>
<li>Use <code>zend_get_gc_buffer_add_fcc()</code> in <a href="https://github.com/php/php-src/commit/49980ee89d">49980ee89d</a></li>
<li>Fix build with sqlite3 gc and fci/fcc api in <a href="https://github.com/php/php-src/commit/1d59b37742">1d59b37742</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/11878">GH-11878</a>: SQLite3 callback functions cause a memory leak with a callable array in <a href="https://github.com/php/php-src/commit/07a9d2fb32">07a9d2fb32</a></li>
<li>Add <code>DOMNode::compareDocumentPosition()</code> in <a href="https://github.com/php/php-src/pull/12146">GH-12146</a></li>
<li>Replace always-false attribute type check with assertion in <a href="https://github.com/php/php-src/commit/8c2c69494e">8c2c69494e</a></li>
<li>Update bundled pcre2 to 10.42 in <a href="https://github.com/php/php-src/commit/c4e8f652c5">c4e8f652c5</a></li>
<li>Remove DOM_NO_ARGS() and DOM_NOT_IMPLEMENTED() in <a href="https://github.com/php/php-src/pull/12147">GH-12147</a></li>
<li>Tweak behaviour of dynamic properties wrt error handlers in <a href="https://github.com/php/php-src/commit/eee1617f38">eee1617f38</a></li>
<li>Use <code>zend_result</code> as return for properties in <code>ext/dom</code> in <a href="https://github.com/php/php-src/pull/12113">GH-12113</a></li>
<li>Preallocate result array size in xpath in <a href="https://github.com/php/php-src/pull/12105">GH-12105</a></li>
<li>Add XPath tests for basic types in <a href="https://github.com/php/php-src/commit/7be47953a3">7be47953a3</a></li>
<li>Add XPath test with a context node in <a href="https://github.com/php/php-src/commit/07c688f224">07c688f224</a></li>
</ul>

<h3 id="peter-kokot">Peter Kokot</h3>

<ul>
<li>Remove _IO_cookie_io_functions_t in favor of cookie_io_functions_t in <a href="https://github.com/php/php-src/commit/abed8b8e41">abed8b8e41</a></li>
<li>Fix too many arguments in FPM ACL compile check in <a href="https://github.com/php/php-src/pull/12242">GH-12242</a></li>
<li>Remove unused <code>--with-zlib-dir</code> configure option in <a href="https://github.com/php/php-src/commit/a8e1b1018d">a8e1b1018d</a></li>
<li>Remove unneeded <code>zend_language_parser.h</code> patch in <a href="https://github.com/php/php-src/pull/12178">GH-12178</a></li>
</ul>

<h3 id="remi-collet">Remi Collet</h3>

<ul>
<li>Fix port conflict 64324 used in <code>bug51056.phpt</code> in <a href="https://github.com/php/php-src/commit/80266f80d4">80266f80d4</a></li>
<li>zip: add new test for dynamic files in <a href="https://github.com/php/php-src/commit/57123ee489">57123ee489</a></li>
<li>also display PHP version in phpize in <a href="https://github.com/php/php-src/commit/c3c4b5356a">c3c4b5356a</a></li>
<li>ensure displays_errors is off (default) in <a href="https://github.com/php/php-src/commit/1f2cfd8009">1f2cfd8009</a></li>
</ul>

<h3 id="thomas-hurst">Thomas Hurst</h3>

<ul>
<li>Fix <a href="https://github.com/php/php-src/issues/12273">GH-12273</a> - configure __builtin_cpu_init() check in <a href="https://github.com/php/php-src/commit/66a33dbdce">66a33dbdce</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/12273">GH-12273</a> - configure __builtin_cpu_init() check in <a href="https://github.com/php/php-src/commit/d93800ec0f">d93800ec0f</a></li>
</ul>

<h3 id="tim-d%C3%BCsterhus">Tim Düsterhus</h3>

<ul>
<li>abs: Make <code>value == ZEND_LONG_MIN</code> an unexpected branch in <a href="https://github.com/php/php-src/commit/9e66bc9b97">9e66bc9b97</a></li>
<li>round: Make <code>fractional == 0.5</code> an unexpected branch in <a href="https://github.com/php/php-src/commit/865535267b">865535267b</a></li>
<li>Unify type juggling in <code>math.c</code> in <a href="https://github.com/php/php-src/pull/12286">GH-12286</a></li>
<li>UPGRADING: Move the validation of the rounding mode to Backward Incompatible Changes in <a href="https://github.com/php/php-src/commit/659c06d4c9">659c06d4c9</a></li>
<li><code>round()</code>: Validate the rounding mode in <a href="https://github.com/php/php-src/pull/12252">GH-12252</a></li>
<li>Reimplement <code>php_round_helper()</code> using <code>modf()</code> in <a href="https://github.com/php/php-src/pull/12220">GH-12220</a></li>
<li>Fix #[Override] on traits overriding a parent method without a matching interface in <a href="https://github.com/php/php-src/pull/12205">GH-12205</a></li>
<li>Show the integer size in <code>phpinfo()</code> in <a href="https://github.com/php/php-src/pull/12201">GH-12201</a></li>
<li>Add abstract __construct() test for #[\Override] (024.phpt) in <a href="https://github.com/php/php-src/commit/0e9d658dd2">0e9d658dd2</a></li>
<li>Update GitHub Action workflows to <code>actions/checkout@v4</code> (8.3+) in <a href="https://github.com/php/php-src/commit/99cd81cd0a">99cd81cd0a</a></li>
<li>Update GitHub Action workflows to <code>actions/checkout@v4</code> in <a href="https://github.com/php/php-src/commit/45e60e585e">45e60e585e</a></li>
</ul>

<h3 id="twosee">twosee</h3>

<ul>
<li>Fix <code>socket_export_stream()</code> with wrong protocol in <a href="https://github.com/php/php-src/commit/b5da98b972">b5da98b972</a></li>
</ul>

</details>

<p><br>
We are incredibly grateful for the commitment and dedication of all contributors. Stay tuned for next month's roundup as we continue to make PHP better together.</p>

<p><br></p>

<hr />

<h2 id="support-php-foundation">Support PHP Foundation</h2>

<p>At PHP Foundation, we support, promote, and advance the PHP language. We financially support six part-time PHP core developers to contribute to the PHP project. You can help support PHP Foundation at <a href="https://opencollective.com/phpfoundation">OpenCollective</a> or via <a href="https://github.com/sponsors/ThePHPF">GitHub Sponsors</a>.</p>

<p>A big thanks to all our sponsors — PHP Foundation is all of us!</p>

<p>Follow us on Twitter <a href="https://twitter.com/thephpf">@ThePHPF</a> to get the latest updates from the Foundation.</p>

<p>💜️ 🐘</p>

<blockquote>
  <p>PHP Roundup is prepared by Ayesh Karunaratne from <strong><a href="https://php.watch">PHP.Watch</a></strong>, a source for PHP News, Articles, Upcoming Changes, and more.</p>
</blockquote>
]]></content>
        </entry>
            <entry>
            <title type="html"><![CDATA[We Are Looking for Developers to Join the PHP Foundation]]></title>
            <link href="https://thephp.foundation/blog/2023/09/06/application-form-2023/"/>
            <updated>2023-09-06T00:00:00+00:00</updated>
            <id>https://thephp.foundation/blog/2023/09/06/application-form-2023/</id>
            <content type="html"><![CDATA[<p>Working on an open-source project which is used by millions of developers and which is trusted by hundreds of thousands of businesses around the world. Getting paid for this work and not having a burnout. Sounds like a dream, doesn't it? But this is exactly the opportunity that the PHP Foundation provides to those who would like to develop and maintain the PHP language.</p>

<p>The PHP Foundation is a non-profit organization, started in 2021 by Acquia, Automattic, Craft CMS, JetBrains, Laravel, PrestaShop, Private Packagist, Symfony, Tideways, and Zend by Perforce with a mission to support, advance, and develop the PHP language.</p>

<p>Since April 2022, the foundation pays <a href="https://thephp.foundation/structure/#core_developers">six developers</a> to work on the language. See what the foundation accomplished in 2022 in the <a href="https://thephp.foundation/blog/2022/11/22/transparency-and-impact-report-2022/">Impact and transparency report</a>.</p>

<h2 id="we-are-opening-applications-for-new-positions-at%26nbsp%3Bthe%26nbsp%3Bphp%26nbsp%3Bfoundation">We are opening applications for new positions at&nbsp;the&nbsp;PHP&nbsp;Foundation</h2>

<p>The PHP Foundation is almost two years old, and we are gradually introducing structure into our activities and organizing processes. We’re opening a new round of applications for developer positions. We plan to open applications every September from now on, so if you are unable to apply now, you will have another chance next year. We intend to decide on who we will hire by the end of October. If selected, you would start your work January 1st, 2024.</p>

<p>The application form will be <strong>open until September 30, 2023</strong>.</p>

<p style="text-align: center;">
<a href="https://forms.gle/Ji7Vvj1y2bMf9pUz7" class="inline-block py-2 no-underline px-6 !text-white bg-[#7f52ff] rounded-3xl hover:bg-[rgba(127,82,255,.8)]">Apply</a>
</p>

<div class="alert">
    <span class="inline-block font-bold">Note: This is not a job for PHP developers or aspiring PHP developers.</span><br> 
The development of PHP is done in the С programming language, and requires proficiency in system programming.
</div>

<h2 id="what-are-the-requirements%3F">What are the requirements?</h2>

<p>As before, we require previous experience in PHP core development. Ideally you should have all, but at least some of the following:</p>

<ul>
<li>Pull-requests / commits to <a href="https://github.com/php/php-src/">php/php-src</a></li>
<li>Experience in writing PHP extensions</li>
<li>Participation in PHP mailing lists</li>
<li>Contributions to other open-source projects</li>
</ul>

<p>This time, however, we have a clearer idea of the tasks that can be engaged in and so the pool of considered candidates will be wider.</p>

<h2 id="what-am-i-going-to-work-on%3F">What am I going to work on?</h2>

<p>Strategic areas we’d like you to work on:</p>

<ul>
<li>Security</li>
<li>Performance</li>
<li>Infrastructure</li>
<li>Web APIs (json, PDO, streams, etc.)</li>
<li>Documentation</li>
</ul>

<p>This is not an exhaustive list, and if you would like to do something else, make sure to mention it in the form. The main criteria is a pragmatic approach. In this sense, we adhere to the position that Rasmus&nbsp;Lerdorf, the author of PHP, voiced back in 2014:</p>

<pre><code class="Text">And rather than piling on language features with the main justification
being that other languages have them, I would love to see more focus on
practical solutions to real problems. The password_hash() addition in
5.5 is a good example of addressing a real Web problem.
…
I know these are much harder and less sexy than adding a couple
of tokens to the yacc grammar, but when we start looking at a new major
release this is what I hear from people who are running PHP in
production environments are looking for. Language features are nice, if
they are well thought out, but significant infrastructure improvements
are nicer.
</code></pre>

<p><em><a href="https://news-web.php.net/php.internals/71525">https://news-web.php.net/php.internals/71525</a></em></p>

<h2 id="what-does-working-for-the-php-foundation-look-like%3F">What does working for the PHP foundation look like?</h2>

<p>Working for the PHP Foundation offers a lot of freedom, but it also requires discipline. Your work will roughly consist of the following:</p>

<ul>
<li>40% Triaging issues and fixing bugs</li>
<li>30% Working on strategic areas</li>
<li>20% Code reviews</li>
<li>10% Preparing RFCs and developing new language features</li>
</ul>

<p>As you can see, developing new RFCs is a fairly small part of the job. Most of the work is a typical maintenance of an open source project.</p>

<p>We are a fully distributed team. You can work from any place* and at any time. All communication is asynchronous via GitHub, Slack, and Email. We meet for synchronous calls 1-2 times a month.</p>

<p><em><strong>&#42;</strong> We do not consider applications from persons residing in sanctioned territories.</em></p>

<p>Your work should be in line with the foundation’s mission statement, and we expect you to follow <a href="https://thephp.foundation/code-of-conduct/">the code of conduct</a>.</p>

<blockquote>
  <p><strong>PHP Foundation Mission Statement</strong></p>
  
  <p>The PHP Foundation is a collective of people and organizations relying on the PHP language. Its mission is to ensure the long-term prosperity of the PHP language. The PHP Foundation focuses on providing financial support and guidance to PHP language developers to support its goals of improving the language for its users, providing high-quality maintenance, and improving the PHP language project to retain current contributors and to integrate new contributors. The PHP Foundation aims to promote the public image of the PHP language in the interest of retaining existing and gaining new users and contributors.</p>
</blockquote>

<h2 id="how-to-apply%3F">How to apply?</h2>

<p>Submit your application now and we will get back to you shortly. If you have any questions or suggestions, reach out to contact@thephp.foundation.</p>

<p style="text-align: center;">
<a href="https://forms.gle/Ji7Vvj1y2bMf9pUz7" target="_blank" class="inline-block py-2 no-underline px-6 !text-white bg-[#7f52ff] rounded-3xl hover:bg-[rgba(127,82,255,.8)]">Open submission form</a>
</p>

<iframe src="https://docs.google.com/forms/d/e/1FAIpQLSeYNVQoK2r9c6EtoMnDaIpLzDc95egt1a1mcfiHTovqMDhFuw/viewform?embedded=true" width="100%" height="1693" frameborder="0" marginheight="0" marginwidth="0">Loading…</iframe>
]]></content>
        </entry>
            <entry>
            <title type="html"><![CDATA[PHP Core Roundup #16]]></title>
            <link href="https://thephp.foundation/blog/2023/09/01/php-core-roundup-16/"/>
            <updated>2023-09-01T00:00:00+00:00</updated>
            <id>https://thephp.foundation/blog/2023/09/01/php-core-roundup-16/</id>
            <content type="html"><![CDATA[<p>Welcome back to <a href="/blog/tag/roundup/">PHP Core Roundup</a> series! This is post #16, where we highlight and celebrate the improvements made to PHP during the month past by the PHP development team, members of the PHP Foundation, and more.</p>

<blockquote>
  <p>The PHP Foundation is a collective of PHP contributors, veterans, and companies that collaborate to ensure the long-term sustainability of the PHP programming language. The foundation currently supports six contributors focused on PHP's maintenance, debt reduction, and feature development. These contributors work closely with others on coding, documentation, and discussions.</p>
  
  <p>Started over a year ago, the PHP Core Roundup series offers a summary of the latest developments, discussions, and news about PHP Core, contributed by both PHP Foundation members and other participants. This post is the thirteenth in the PHP Core Roundup series.</p>
</blockquote>

<p><div class="px-4 pt-3 border-b border-t -mx-4 border-gray-200">
    <div class="bg-white py-8">
        <div class="mx-auto grid max-w-7xl grid-cols-1 gap-10 lg:grid-cols-12 lg:gap-8">
            <div class="max-w-xl text-4xl font-medium tracking-tight text-gray-900 lg:col-span-6">
                Subscribe to PHP Core Roundup newsletter
            </div>
            <form method="POST"
                  action="https://php-foundation.mailcoach.app/subscribe/9be4e2bd-f9d8-475c-b00e-2dcc4cf90056"
                  class="w-full max-w-md lg:col-span-6">
                <div class="flex gap-x-4">
                    <label for="email-address" class="sr-only">Email address</label>
                    <input id="email-address" name="email" type="email" autocomplete="email" required
                           class="min-w-0 flex-auto rounded-md border-0 px-3.5 py-2 text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm sm:leading-6"
                           placeholder="Enter your email">
                    <button type="submit"
                            class="inline-block py-2 no-underline px-6 !text-white bg-[#7f52ff] rounded-3xl hover:bg-[rgba(127,82,255,.8)]">
                        Subscribe
                    </button>
                </div>
                <div class="mt-4 text-sm leading-6 text-gray-900">
                    We care about your data.
                    Read our <a href="https://thephp.foundation/privacy-policy"
                                class="font-semibold text-indigo-600 hover:text-indigo-500 no-underline">privacy policy</a>.
                </div>
            </form>
        </div>
    </div>
</div>
</p>

<h2 id="php-8.3-branching-out">PHP 8.3 Branching Out</h2>

<p>PHP 8.3 has reached its <a href="/blog/2023/08/01/php-core-roundup-15/#php-8.3-feature-freeze">feature-freeze</a>, and <a href="/blog/2023/05/02/php-core-roundup-12/#php-8.3-release-managers-elected">release managers</a> branched out the PHP-8.3 branch on August 31.</p>

<p>Now that PHP 8.3 is in a separate branch, the <code>master</code> branch will be the development source for PHP 8.4. Bug fixes and other improvements will be cherry-picked for PHP 8.3 (and older branches) as appropriate, but new features that are made to the master branch will not be merged to the PHP 8.3 branch.</p>

<p>Tools that build PHP based on the Git branches will also see a new branch, and the builds from the <code>master</code> branch will be named “PHP 8.4” for the first time.</p>

<h2 id="releases">Releases</h2>

<p>The PHP development team released five new versions in August 2023:</p>

<p><strong><a href="https://www.php.net/archive/2023.php#2023-08-31-2">PHP 8.2.10</a></strong> and <strong><a href="https://www.php.net/archive/2023.php#2023-08-31-3">PHP 8.1.23</a></strong></p>

<p>These releases include several bug fixes and improvements, notably in areas such as CLI, Date, Core, DOM, FFI, Hash, MySQLnd, Opcache, PCNTL, SPL, and Standard.</p>

<p><strong><a href="https://www.php.net/archive/2023.php#2023-08-16-1">PHP 8.2.9</a></strong>, <strong><a href="https://www.php.net/archive/2023.php#2023-08-03-1">PHP 8.1.22</a></strong>, and <strong><a href="https://www.php.net/archive/2023.php#2023-08-04-1">PHP 8.0.30</a></strong></p>

<p>All three include security fixes: <a href="https://github.com/php/php-src/security/advisories/GHSA-3qrf-m4j2-pcrr">GHSA-3qrf-m4j2-pcrr</a> and <a href="https://github.com/php/php-src/security/advisories/GHSA-jqcx-ccgc-xwhv">GHSA-jqcx-ccgc-xwhv</a>.</p>

<p>PHP 8.2.9 and PHP 8.1.22 additionally include several bug fixes and improvements, notably in areas such as Build, CLI, Core, Curl, Date, DOM, Fileinfo, FTP, GD, Intl, MBString, Opcache, PCNTL, PDO, PDO SQLite, Phar, PHPDBG, Session, Standard, Streams, SQLite3, and XMLReader.</p>

<h2 id="recent-rfcs-and-mailing-list-discussions">Recent RFCs and Mailing List Discussions</h2>

<blockquote>
  <p>Changes and improvements to PHP are discussed, reported, and voted on by the PHP Foundation Team, the PHP development team, and contributors. Bug reports are made to the PHP <a href="https://github.com/php/php-src/issues">issue tracker</a>, changes are discussed in <a href="https://www.php.net/mailing-lists.php">mailing lists</a>, minor code changes are proposed as <a href="https://github.com/php/php-src/issues">pull requests</a>, and major changes are discussed in detail and voted on as <a href="https://wiki.php.net/rfc">PHP RFCs</a>. <a href="https://github.com/php/doc-en/">Documentation</a> and the <a href="https://github.com/php/web-php">php.net website</a> changes are also discussed and improved at their relevant Git repositories on GitHub.</p>
</blockquote>

<p><br>
Hundreds of awesome PHP contributors put their efforts into improvements to the PHP code base, documentation, and the php.net website. Here is a summary of some changes made by the people behind PHP. Things marked with 💜 are done by the PHP Foundation team.</p>

<h2 id="rfc-updates">RFC Updates</h2>

<h3 id="in-voting%3A-support-optional-suffix-parameter-in-tempnam-by-athos-ribeiro">In Voting: <a href="https://wiki.php.net/rfc/tempnam-suffix-v2">Support optional suffix parameter in tempnam</a> by Athos Ribeiro</h3>

<p>RFC proposes to add a new optional suffix parameter to the <code>tempnam()</code> function.</p>

<p>A suffix could provide even more semantic value or context for a user inspecting the generated files, and, in specific situations, could even provide more context for software processing such files. Right now, users can only add a prefix.</p>

<h3 id="merging-postponed%3A-pdo-driver-specific-sub-classes-by-danack">Merging postponed: <a href="https://wiki.php.net/rfc/pdo_driver_specific_subclasses">PDO driver specific sub-classes</a> by Danack</h3>

<p>This RFC proposed to introduce driver-specific <code>\PDO</code> sub-classes so applications can granular declare the specific PDO drivers they support.</p>

<p>This RFC vote was completed and accepted unanimously, but due to the implementation complexity, the changes for this RFC were not finalized before the PHP 8.3.0RC1 release. Because PHP 8.3 is beyond its feature-freeze and now that the first release candidate is released, the consensus seems to be that this RFC will not be implemented in PHP 8.3 but on the next PHP version.</p>

<p><br></p>

<h2 id="documentation">Documentation</h2>

<p>While PHP 8.3 has moved to the RC cycle, the documentation available on <a href="https://php.net">php.net</a>, requires updating.</p>

<p>Gina P. Banyard 💜 has triaged issues in the docs and marked several of them as "good first time", which are ideal easy picks if you would like to start contributing to PHP docs. You can find the full list on <a href="https://github.com/php/doc-en/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22">GitHub</a>.</p>

<p>To make it easier to view the results of changes locally, Anna Filina has prepared a Docker Compose set-up. <a href="https://github.com/php/doc-en/pull/2638">Check it out</a>.</p>

<p><br></p>

<h2 id="merged-prs-and-commits">Merged PRs and Commits</h2>

<p>Following are some changes that did not go through an RFC process because they are either planned, bug fixes, or progressive enhancements.</p>

<hr />

<h3 id="full-list-of-commits--since-php-core-roundup-%2315">Full list of commits  since <a href="/blog/2023/08/01/php-core-roundup-15/">PHP Core Roundup #15</a></h3>

<p>Commits are in the order they were added, grouped by author in alphabetical order.</p>

<details>

<summary>Click here to expand</summary>

<h3 id="alexandre-daubois">Alexandre Daubois</h3>

<ul>
<li>Improve <code>ext/pdo_sqlite</code> tests cleanup in <a href="https://github.com/php/php-src/pull/11900">GH-11900</a></li>
<li><code>ext/pdo_pgsql</code>: Improve tests cleanup in <a href="https://github.com/php/php-src/pull/11855">GH-11855</a></li>
<li>Improve database naming in <code>ext/pdo_pgsql</code> for better para-tests in <a href="https://github.com/php/php-src/pull/11872">GH-11872</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/10964">GH-10964</a>: Improve <code>man</code> page about the built-in server in <a href="https://github.com/php/php-src/commit/997a36750b">997a36750b</a></li>
</ul>

<h3 id="alex-dowad">Alex Dowad</h3>

<ul>
<li>Improve <code>mb_detect_encoding</code> accuracy for text containing vowels with macrons in <a href="https://github.com/php/php-src/commit/81faab9235">81faab9235</a></li>
<li>Print host CPU and installed package info in CI build log on Linux in <a href="https://github.com/php/php-src/commit/fd462b1e0f">fd462b1e0f</a></li>
</ul>

<h3 id="arne_">Arne_</h3>

<ul>
<li>Allow easter_date to process years after 2037 on 64bit systems in <a href="https://github.com/php/php-src/pull/11862">GH-11862</a></li>
</ul>

<h3 id="athos-ribeiro">Athos Ribeiro</h3>

<ul>
<li>Fix off-by-one bug when truncating tempnam prefix in <a href="https://github.com/php/php-src/commit/cbfd73765a">cbfd73765a</a></li>
</ul>

<h3 id="ayesh-karunaratne">Ayesh Karunaratne</h3>

<ul>
<li>Add class constant types to Phar extension in <a href="https://github.com/php/php-src/pull/11826">GH-11826</a></li>
<li>gen_stub: fix regexps with unintentional range due to <code>-</code> character placement in <a href="https://github.com/php/php-src/pull/12004">GH-12004</a></li>
<li>[skip-ci] minor typo fixes in UPGRADING and CONTRIBUTING.md in <a href="https://github.com/php/php-src/pull/11976">GH-11976</a></li>
<li>Fix DateTime exception hierarchy for DateInvalidTimeZoneException in <a href="https://github.com/php/php-src/pull/11970">GH-11970</a></li>
</ul>

<h3 id="bob-weinand">Bob Weinand</h3>

<ul>
<li>Address CR comments in <a href="https://github.com/php/php-src/commit/b07a2d4714">b07a2d4714</a></li>
<li>Track HashTableIterators for copy-on-write copies of HashTables in <a href="https://github.com/php/php-src/commit/cd53ce838a">cd53ce838a</a></li>
</ul>

<h3 id="cristian-rodr%C3%ADguez">Cristian Rodríguez</h3>

<ul>
<li>Use a single version of strnlen  in <a href="https://github.com/php/php-src/pull/12015">GH-12015</a></li>
<li>Use <code>zend_ast_size</code> consistenly in <a href="https://github.com/php/php-src/pull/11955">GH-11955</a></li>
</ul>

<h3 id="david-carlier">David CARLIER</h3>

<ul>
<li><code>zend_call_stack_default_size</code> update BSD values. in <a href="https://github.com/php/php-src/pull/12051">GH-12051</a></li>
<li>libxml set error structure simplification proposal in <a href="https://github.com/php/php-src/pull/12054">GH-12054</a></li>
<li>ci update freebsd image to the 13.2 image in <a href="https://github.com/php/php-src/pull/11110">GH-11110</a></li>
<li><code>ext/iconv</code>: fix build for netbsd in <a href="https://github.com/php/php-src/commit/fc8d5c72e5">fc8d5c72e5</a></li>
</ul>

<h3 id="derick-rethans-%F0%9F%92%9C">Derick Rethans 💜</h3>

<ul>
<li>Update initialisation check for new PHP-8.3 API in <a href="https://github.com/php/php-src/commit/e157da11f3">e157da11f3</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/11416">GH-11416</a>: Crash with DatePeriod when uninitialised objects are passed in (PHP 8.2+) in <a href="https://github.com/php/php-src/commit/b71d2e16e6">b71d2e16e6</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/11416">GH-11416</a>: Crash with DatePeriod when uninitialised objects are passed in in <a href="https://github.com/php/php-src/commit/4833b84854">4833b84854</a></li>
<li>Fixed bug <a href="https://github.com/php/php-src/issues/11854">GH-11854</a> (DateTime:createFromFormat stopped parsing datetime with extra space) in <a href="https://github.com/php/php-src/commit/a8f4171655">a8f4171655</a></li>
<li>Import timelib 2022.09 in <a href="https://github.com/php/php-src/commit/851890bd9c">851890bd9c</a></li>
</ul>

<h3 id="dmitry-stogov">Dmitry Stogov</h3>

<ul>
<li>Fixed incorrect tracked malloc deallocation in <a href="https://github.com/php/php-src/commit/4553258df3">4553258df3</a></li>
</ul>

<h3 id="filip-zr%C5%AFst">Filip Zrůst</h3>

<ul>
<li>Remove CPP when invoking dtrace utility in <a href="https://github.com/php/php-src/commit/02b3fb1f6b">02b3fb1f6b</a></li>
</ul>

<h3 id="gina-peter-banyard-%F0%9F%92%9C">Gina Peter Banyard 💜</h3>

<ul>
<li>Fix <a href="https://github.com/php/php-src/issues/11876">GH-11876</a>: <code>ini_parse_quantity()</code> accepts invalid quantities in <a href="https://github.com/php/php-src/commit/d229a480ad">d229a480ad</a></li>
<li>Fix various bugs related to DNF types in <a href="https://github.com/php/php-src/commit/02a80c5b82">02a80c5b82</a></li>
<li>Fix <code>skipif</code> condition on new test in <a href="https://github.com/php/php-src/commit/4cbc66d5e6">4cbc66d5e6</a></li>
<li>ext/<code>zend_test</code>: Move object handler test objects to their own file in <a href="https://github.com/php/php-src/pull/11852">GH-11852</a></li>
<li>Zend: Fix memory leak in ++/-- when overloading fetch access in <a href="https://github.com/php/php-src/commit/fc3df283fb">fc3df283fb</a></li>
<li>Fix OSS Fuzz <a href="https://bugs.php.net/bug.php?id=60734">#60734</a>: use-after-free visible in ASAN build in <a href="https://github.com/php/php-src/commit/2fbec0974f">2fbec0974f</a></li>
<li>Fix OSS-fuzz <a href="https://bugs.php.net/bug.php?id=60709">#60709</a> unseting op via globals in <a href="https://github.com/php/php-src/commit/6ae9cf40d1">6ae9cf40d1</a></li>
</ul>

<h3 id="hypemc">HypeMC</h3>

<ul>
<li>Add before_needle argument to <code>strrchr()</code> in <a href="https://github.com/php/php-src/commit/f25474f7f2">f25474f7f2</a></li>
</ul>

<h3 id="ilija-tovilo-%F0%9F%92%9C">Ilija Tovilo 💜</h3>

<ul>
<li>Increase <code>run-tests.php</code> timeout for asan in <a href="https://github.com/php/php-src/commit/f4a6a6d096">f4a6a6d096</a></li>
<li>Skip dl() tests on ASAN in <a href="https://github.com/php/php-src/commit/fb0f4215de">fb0f4215de</a></li>
<li>Make unrepeatable tests retriable in <a href="https://github.com/php/php-src/commit/f2c16b7ba3">f2c16b7ba3</a></li>
<li>Fix variable resource ids in odbc test in <a href="https://github.com/php/php-src/commit/d1a38e8b8e">d1a38e8b8e</a></li>
<li>Fix missing instantclient in CI in <a href="https://github.com/php/php-src/commit/f3bd027b69">f3bd027b69</a></li>
<li>Fix type macros for C++ in <a href="https://github.com/php/php-src/commit/5ad658bc5e">5ad658bc5e</a></li>
<li>Switch asan build to Ubuntu 23.04 in Docker in <a href="https://github.com/php/php-src/commit/c9e5e1fc52">c9e5e1fc52</a></li>
<li>Move installation of oracle instant client in GHA in <a href="https://github.com/php/php-src/commit/ba07a0b846">ba07a0b846</a></li>
<li>Make <code>php_cli_server_pdeathsig.phpt</code> <code>SKIPIF</code> more specific in <a href="https://github.com/php/php-src/commit/bad5298707">bad5298707</a></li>
<li>Remove redundant condition in <a href="https://github.com/php/php-src/commit/dd01c74a6f">dd01c74a6f</a></li>
<li>Fix segfault in format_default_value due to unexpected enum/object in <a href="https://github.com/php/php-src/commit/f78d1d0d10">f78d1d0d10</a></li>
<li>Use per-branch matrix for windows nightly in <a href="https://github.com/php/php-src/commit/902d39d57c">902d39d57c</a></li>
<li>Fix uouv on oom on object allocation in <a href="https://github.com/php/php-src/commit/ee000ea186">ee000ea186</a></li>
<li>Remove i386 Linux from push in <a href="https://github.com/php/php-src/commit/248e6b0404">248e6b0404</a></li>
<li>Add Windows build to nightly in <a href="https://github.com/php/php-src/commit/90f514cf21">90f514cf21</a></li>
<li>Fix EXPECT for <code>bug52820.phpt</code> on newer curl versions in <a href="https://github.com/php/php-src/commit/0e843c5d82">0e843c5d82</a></li>
<li>Fix <code>curl_basic_009.phpt</code> for newer curl versions in <a href="https://github.com/php/php-src/commit/3af76b2302">3af76b2302</a></li>
<li>Move ASAN built to GitHub actions in <a href="https://github.com/php/php-src/commit/fc9266a5fc">fc9266a5fc</a></li>
<li>Move opnum_start for goto for clarification in <a href="https://github.com/php/php-src/pull/11911">GH-11911</a></li>
<li>Revert &quot;Call cast_object handler from get_properties_for&quot; in <a href="https://github.com/php/php-src/commit/efc73f24c3">efc73f24c3</a></li>
<li>Don&#039;t test macOS &amp; i386 without opcache on push in <a href="https://github.com/php/php-src/commit/5cd0208e9f">5cd0208e9f</a></li>
<li>Assert ptr_ptr value of TMP|CONST isn&#039;t used in <a href="https://github.com/php/php-src/pull/11865">GH-11865</a></li>
<li>Add typed specialization for <code>ZEND_COUNT</code> in <a href="https://github.com/php/php-src/pull/11825">GH-11825</a></li>
<li>Synchronize <code>zend_jit_stop_counter_handlers()</code> in <a href="https://github.com/php/php-src/commit/b80bebc278">b80bebc278</a></li>
<li>Add block size support for tracked_malloc in <a href="https://github.com/php/php-src/pull/11856">GH-11856</a></li>
<li>Fix use-of-uninitialized-value in start_fake_frame in <a href="https://github.com/php/php-src/commit/ed27d70d9a">ed27d70d9a</a></li>
<li>Unpoison opcache mem buf for file cache checksum calc in <a href="https://github.com/php/php-src/commit/35862641ba">35862641ba</a></li>
<li>Remove <code>opcache.c</code>onsistency_checks in <a href="https://github.com/php/php-src/commit/b2dbf0a2c6">b2dbf0a2c6</a></li>
<li>Fix zend/test arginfo stub hash in <a href="https://github.com/php/php-src/commit/e61dbe54e9">e61dbe54e9</a></li>
</ul>

<h3 id="jakub-zelenka-%F0%9F%92%9C">Jakub Zelenka 💜</h3>

<ul>
<li>Use version of PHP SDK binary tools that uses PHP downloads in <a href="https://github.com/php/php-src/pull/12085">GH-12085</a></li>
<li>Remove incorrectly updated dtrace change from NEWS in <a href="https://github.com/php/php-src/commit/760367dd70">760367dd70</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/12077">GH-12077</a>: Check lsof functionality in socket on close test in <a href="https://github.com/php/php-src/commit/fe30c5098f">fe30c5098f</a></li>
<li>Fix FPM UDS test for very long name check by extending its length in <a href="https://github.com/php/php-src/commit/ea87501aee">ea87501aee</a></li>
<li>Extend workflow matrix and nighly with PHP-8.3 in <a href="https://github.com/php/php-src/commit/300ad65c7c">300ad65c7c</a></li>
<li>Start PHP 8.4 development cycle in <a href="https://github.com/php/php-src/commit/7deb84b7a6">7deb84b7a6</a></li>
<li>Update API versions and numbers in <a href="https://github.com/php/php-src/commit/2eb21b0b1e">2eb21b0b1e</a></li>
<li>Small tyding up of filestat code in <a href="https://github.com/php/php-src/commit/4e7ab1478d">4e7ab1478d</a></li>
<li>Expand file path in file stat only for wrapper path in <a href="https://github.com/php/php-src/pull/12068">GH-12068</a></li>
<li>Fix bug <a href="https://bugs.php.net/bug.php?id=76857">#76857</a>: Can read &quot;non-existant&quot; files in <a href="https://github.com/php/php-src/commit/766cac072f">766cac072f</a></li>
<li>Fix bug <a href="https://bugs.php.net/bug.php?id=52335">#52335</a> (<code>fseek()</code> on memory stream behavior different then file) in <a href="https://github.com/php/php-src/commit/ba9650d697">ba9650d697</a></li>
<li>Fix flaky file stat tests due to changing nature of atime in <a href="https://github.com/php/php-src/commit/e1396a314d">e1396a314d</a></li>
<li>Format UPGRADING in <a href="https://github.com/php/php-src/commit/10e16347ef">10e16347ef</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/11982">GH-11982</a>: str_getcsv returns null byte for unterminated quoted string in <a href="https://github.com/php/php-src/commit/aff46d75e1">aff46d75e1</a></li>
<li>FPM tester FastCGI client transport in <a href="https://github.com/php/php-src/pull/11764">GH-11764</a></li>
<li>Introduce Zend guard recursion protection in <a href="https://github.com/php/php-src/commit/53aa53f42f">53aa53f42f</a></li>
</ul>

<h3 id="jeremie-courreges-anglas">Jeremie Courreges-Anglas</h3>

<ul>
<li>On riscv64 require libatomic if actually needed in <a href="https://github.com/php/php-src/commit/bf3fb4e5c9">bf3fb4e5c9</a></li>
</ul>

<h3 id="jorg-adam-sowa">Jorg Adam Sowa</h3>

<ul>
<li>Fix <code>round()</code> tests for different modes in <a href="https://github.com/php/php-src/pull/12049">GH-12049</a></li>
<li>Tests improvement for <code>round()</code> modes in <a href="https://github.com/php/php-src/pull/11996">GH-11996</a></li>
<li>BCmath extension code reformatting in <a href="https://github.com/php/php-src/pull/11896">GH-11896</a></li>
</ul>

<h3 id="jrfnl">jrfnl</h3>

<ul>
<li>Remove <code>mysqli.reconnect</code> from php.ini files in <a href="https://github.com/php/php-src/pull/11836">GH-11836</a></li>
</ul>

<h3 id="ju1ius">ju1ius</h3>

<ul>
<li>releases property attributes of internal classes in <a href="https://github.com/php/php-src/pull/11980">GH-11980</a></li>
<li>Adds support for DNF types in internal functions and properties  in <a href="https://github.com/php/php-src/pull/11969">GH-11969</a></li>
</ul>

<h3 id="kamil-tekiela">Kamil Tekiela</h3>

<ul>
<li>Fix param name in <code>implode()</code> error message in <a href="https://github.com/php/php-src/commit/b1ce1d1f21">b1ce1d1f21</a></li>
<li>Fix failing test on nightly in <a href="https://github.com/php/php-src/commit/ffd398b4fe">ffd398b4fe</a></li>
<li>Fix implicit/explicit port in mysqlnd in <a href="https://github.com/php/php-src/commit/c1103a9772">c1103a9772</a></li>
<li>mysqli_field_seek return type changed to true in <a href="https://github.com/php/php-src/pull/11948">GH-11948</a></li>
<li>Align highlight_string|file with HTML standard and modern browsers in <a href="https://github.com/php/php-src/commit/f907a009f9">f907a009f9</a></li>
<li>Fix error checking in mysqlnd in <a href="https://github.com/php/php-src/commit/0d922aa595">0d922aa595</a></li>
<li>Remove remnant of COM_FIELD_LIST in <a href="https://github.com/php/php-src/commit/788540ef2c">788540ef2c</a></li>
<li>Add DROP TABLE to clean up after the test in <a href="https://github.com/php/php-src/commit/66b359e4de">66b359e4de</a></li>
<li>Remove unused CLEAN section in <a href="https://github.com/php/php-src/commit/ab46d2012c">ab46d2012c</a></li>
<li>Revert changes to <code>mysqli_get_connection_stats.phpt</code> in <a href="https://github.com/php/php-src/commit/0c288c4098">0c288c4098</a></li>
<li>Tidy up new my_mysqli in tests in <a href="https://github.com/php/php-src/commit/aab36a774a">aab36a774a</a></li>
<li>Improve test for mysqli_result constructor in <a href="https://github.com/php/php-src/commit/1451b9e6f2">1451b9e6f2</a></li>
<li>Remove unnecessary requires in mysqli tests in <a href="https://github.com/php/php-src/commit/af4eabd8c9">af4eabd8c9</a></li>
<li>As of 8.2 this SKIP is no longer possible in <a href="https://github.com/php/php-src/commit/548fc6a818">548fc6a818</a></li>
<li>Remove unnecessary parentheses around language constructs in mysqli in <a href="https://github.com/php/php-src/commit/73d6869337">73d6869337</a></li>
<li>Remove unnecessary parentheses around language constructs in mysqli in <a href="https://github.com/php/php-src/commit/a21edc52aa">a21edc52aa</a></li>
<li>Convert CRLF to LF in <a href="https://github.com/php/php-src/commit/c1a085290a">c1a085290a</a></li>
<li>Remove unnecessary parentheses around language constructs in oci8 in <a href="https://github.com/php/php-src/commit/a53e56176c">a53e56176c</a></li>
</ul>

<h3 id="k%C3%A9vin-dunglas">Kévin Dunglas</h3>

<ul>
<li>fix: handle the GNU specific version of strerror_r in <a href="https://github.com/php/php-src/commit/96885bc04f">96885bc04f</a></li>
</ul>

<h3 id="levi-morrison">Levi Morrison</h3>

<ul>
<li>Add <code>php_version</code> and <code>php_version_id</code> PHPAPI funcs in <a href="https://github.com/php/php-src/pull/11875">GH-11875</a></li>
</ul>

<h3 id="michael-orlitzky">Michael Orlitzky</h3>

<ul>
<li><code>ext/dba/tests/dba_tcadb.phpt</code>: support pthreadless tokyocabinet in <a href="https://github.com/php/php-src/pull/11648">GH-11648</a></li>
</ul>

<h3 id="mikhail-galanin">Mikhail Galanin</h3>

<ul>
<li>Set CLOEXEC on listened/accepted sockets in the FPM children in <a href="https://github.com/php/php-src/commit/418cdc0bea">418cdc0bea</a></li>
<li>Add &quot;revalidate&quot; time to opcache scripts list in <a href="https://github.com/php/php-src/commit/958a25e22e">958a25e22e</a></li>
</ul>

<h3 id="m%C3%A1t%C3%A9-kocsis-%F0%9F%92%9C">Máté Kocsis 💜</h3>

<ul>
<li>Fix the class synopsis of Throwable in <a href="https://github.com/php/php-src/commit/597aeb1246">597aeb1246</a></li>
<li>Improve test for <code>odbc_columns()</code> in <a href="https://github.com/php/php-src/commit/2f9f2928ce">2f9f2928ce</a></li>
<li>Use correct format specifier in <a href="https://github.com/php/php-src/commit/9dcdfa5e3f">9dcdfa5e3f</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/9967">GH-9967</a> Add support for generating custom function, class const, and property attributes in stubs in <a href="https://github.com/php/php-src/commit/c934e24197">c934e24197</a></li>
<li>Expose PDO_ODBC_TYPE to userland in <a href="https://github.com/php/php-src/commit/462792ee51">462792ee51</a></li>
<li>Improve and fix <code>ext/odbc</code> tests in <a href="https://github.com/php/php-src/commit/8726ae0601">8726ae0601</a></li>
<li>Enable <code>ext/odbc</code> and <code>ext/pdo_odbc</code> tests on Linux in GitHub CI in <a href="https://github.com/php/php-src/commit/985511e968">985511e968</a></li>
<li>Add more test coverage for <code>ext/odbc</code> in <a href="https://github.com/php/php-src/commit/66acaba9db">66acaba9db</a></li>
<li>Align the return type of <code>snmp_set_oid_numeric_print()</code> to its aliased funtion in <a href="https://github.com/php/php-src/commit/67ab2b7d87">67ab2b7d87</a></li>
<li>Make the $enable parameter of <code>odbc_autocommit()</code> nullable in <a href="https://github.com/php/php-src/pull/11909">GH-11909</a></li>
<li>Fix return type of <code>odbc_data_source()</code> in <a href="https://github.com/php/php-src/commit/77252afaf0">77252afaf0</a></li>
</ul>

<h3 id="niels-dossche">Niels Dossche</h3>

<ul>
<li>Fix <a href="https://github.com/php/php-src/issues/11440">GH-11440</a>: authentication to a sha256_password account fails over SSL in <a href="https://github.com/php/php-src/commit/94127c53aa">94127c53aa</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/11972">GH-11972</a>: RecursiveCallbackFilterIterator regression in 8.1.18 in <a href="https://github.com/php/php-src/commit/1cdcbc05b0">1cdcbc05b0</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/11972">GH-11972</a>: RecursiveCallbackFilterIterator regression in 8.1.18 in <a href="https://github.com/php/php-src/commit/ffd7018fcd">ffd7018fcd</a></li>
<li>Implement <a href="https://github.com/php/php-src/issues/11934">GH-11934</a>: Allow to pass CData into struct and/or union fields in <a href="https://github.com/php/php-src/commit/0b9702c9ed">0b9702c9ed</a></li>
<li>Fix oss-fuzz <a href="https://bugs.php.net/bug.php?id=61712">#61712</a>: assertion failure with error handler during binary op in <a href="https://github.com/php/php-src/commit/a3a3964497">a3a3964497</a></li>
<li>Remove useless duplicated call to <code>php_stream_parse_fopen_modes</code> in <a href="https://github.com/php/php-src/pull/12059">GH-12059</a></li>
<li>Add missing EXTENSIONS section to DOM tests in <a href="https://github.com/php/php-src/commit/bffc74474b">bffc74474b</a></li>
<li>Improve warning when returning null from the resolver set by libxml_set_external_entity_loader in <a href="https://github.com/php/php-src/commit/e1cb721679">e1cb721679</a></li>
<li>Update DOM test to work around libxml2 bug in <a href="https://github.com/php/php-src/commit/0fd226c277">0fd226c277</a></li>
<li>Fix memory leak when setting an invalid DOMDocument encoding in <a href="https://github.com/php/php-src/commit/20ac42e1b0">20ac42e1b0</a></li>
<li>Remove unnecessary invalidation from processing instructions in <a href="https://github.com/php/php-src/commit/4ff93f779c">4ff93f779c</a></li>
<li>Add test for <code>SimpleXMLElement::asXML()</code> with a fragment and a filename in <a href="https://github.com/php/php-src/commit/2b61f71046">2b61f71046</a></li>
<li>Fix various namespace prefix conflict resolution bugs and namespace shift bugs in <a href="https://github.com/php/php-src/commit/d46dc5694c">d46dc5694c</a></li>
<li>Fix <a href="https://bugs.php.net/bug.php?id=81992">#81992</a>: <code>SplFixedArray::setSize()</code> causes use-after-free in <a href="https://github.com/php/php-src/commit/b71c6b2c6c">b71c6b2c6c</a></li>
<li><a href="https://github.com/php/php-src/issues/11964">GH-11964</a>: In ext/date/php_date.<code>stub.php</code>, DateRangeError extends itself in <a href="https://github.com/php/php-src/commit/17b3af2958">17b3af2958</a></li>
<li>Fix <a href="https://bugs.php.net/bug.php?id=80927">#80927</a>: Removing documentElement after creating attribute node: possible use-after-free in <a href="https://github.com/php/php-src/commit/bb092ab4c6">bb092ab4c6</a></li>
<li>Optimize checks for DOMParentNode and DOMChildNode in <a href="https://github.com/php/php-src/commit/620b6220c2">620b6220c2</a></li>
<li>Align DOMChildNode parent checks with spec in <a href="https://github.com/php/php-src/commit/23ba4cde53">23ba4cde53</a></li>
<li>Fix segfault when <code>DOMParentNode::prepend()</code> is called when the child disappears in <a href="https://github.com/php/php-src/commit/d19e4da125">d19e4da125</a></li>
<li>Fix viable next sibling search for replaceWith in <a href="https://github.com/php/php-src/commit/df6e8bd4fd">df6e8bd4fd</a></li>
<li>Fix viable next sibling search for replaceWith in <a href="https://github.com/php/php-src/commit/815b5ad501">815b5ad501</a></li>
<li>Remove useless hashmap check in <a href="https://github.com/php/php-src/commit/5018dfecdf">5018dfecdf</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/11830">GH-11830</a>: ParentNode methods should perform their checks upfront in <a href="https://github.com/php/php-src/commit/dddd309da4">dddd309da4</a></li>
<li>Fix manually calling __construct() on DOM classes in <a href="https://github.com/php/php-src/commit/08c4db7f36">08c4db7f36</a></li>
<li>Make <code>DOMChildNode::remove()</code> run in O(1) performance in <a href="https://github.com/php/php-src/commit/e701b2fee7">e701b2fee7</a></li>
<li>Remove useless check in <a href="https://github.com/php/php-src/commit/872bf56fed">872bf56fed</a></li>
<li>Mark buildFromIterator test as conflicting in <a href="https://github.com/php/php-src/commit/dc586b121a">dc586b121a</a></li>
<li>Revert the fix for <a href="https://github.com/php/php-src/issues/11498">GH-11498</a> in <a href="https://github.com/php/php-src/commit/f7be15dbad">f7be15dbad</a></li>
<li>Fix missing link variable in test in <a href="https://github.com/php/php-src/commit/162bd2a58a">162bd2a58a</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/11438">GH-11438</a>: mysqlnd fails to authenticate with sha256_password accounts using passwords longer than 19 characters in <a href="https://github.com/php/php-src/commit/509906b2a5">509906b2a5</a></li>
<li>Handle strict error properly in adoptNode failure, and add a test in <a href="https://github.com/php/php-src/commit/6f6fedcb46">6f6fedcb46</a></li>
<li>Deduplicate loading code in <a href="https://github.com/php/php-src/commit/04df77650d">04df77650d</a></li>
<li>Respect strict error setting for adoptNode in <a href="https://github.com/php/php-src/commit/fa397e0217">fa397e0217</a></li>
<li>Fix json_encode result on DOMDocument in <a href="https://github.com/php/php-src/commit/6e468bbd3b">6e468bbd3b</a></li>
<li>NEWS in <a href="https://github.com/php/php-src/commit/d8f2584ebb">d8f2584ebb</a></li>
<li>Disable global state test on Windows in <a href="https://github.com/php/php-src/commit/62228a2568">62228a2568</a></li>
<li>Fix buffer mismanagement in <code>phar_dir_read()</code> in <a href="https://github.com/php/php-src/commit/80316123f3">80316123f3</a></li>
</ul>

<h3 id="peter-kokot">Peter Kokot</h3>

<ul>
<li>Remove unneeded <code>zend_language_parser.h</code> patch in <a href="https://github.com/php/php-src/pull/11974">GH-11974</a></li>
<li>Fix configure phpdbg help output in <a href="https://github.com/php/php-src/pull/12013">GH-12013</a></li>
<li>Fix passing null to parameter of type string in <a href="https://github.com/php/php-src/pull/12014">GH-12014</a></li>
<li>Sync <code>--enable-mysqlnd-compression-support</code> option in <a href="https://github.com/php/php-src/pull/12006">GH-12006</a></li>
<li>Add all README.* files to paths-ignore in <a href="https://github.com/php/php-src/pull/12003">GH-12003</a></li>
<li>Remove unused call to Makefile.frag in <code>ext/zip</code> in <a href="https://github.com/php/php-src/commit/c180e9b48a">c180e9b48a</a></li>
<li>Remove unused HAVE_GCC_GLOBAL_REGS shell variable in <a href="https://github.com/php/php-src/pull/11877">GH-11877</a></li>
</ul>

<h3 id="pierrick-charron">Pierrick Charron</h3>

<ul>
<li>Prepare for PHP 8.4 in <a href="https://github.com/php/php-src/commit/ad2ac6f05f">ad2ac6f05f</a></li>
</ul>

<h3 id="remi-collet">Remi Collet</h3>

<ul>
<li>ensure displays_errors is off (default) in <a href="https://github.com/php/php-src/commit/1f2cfd8009">1f2cfd8009</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/12063">GH-12063</a> convert PHP single-quote to C double-quote string in <a href="https://github.com/php/php-src/commit/13d3564a51">13d3564a51</a></li>
</ul>

<h3 id="yurun">Yurun</h3>

<ul>
<li>Fix MySQL Statement has a empty query result when the response field has changed, also Segmentation fault in <a href="https://github.com/php/php-src/commit/ca5d48213a">ca5d48213a</a></li>
</ul>

</details>

<p><br>
We are incredibly grateful for the commitment and dedication of all contributors. Stay tuned for next month's roundup as we continue to make PHP better together.</p>

<p><br></p>

<hr />

<h2 id="support-php-foundation">Support PHP Foundation</h2>

<p>At PHP Foundation, we support, promote, and advance the PHP language. We financially support six part-time PHP core developers to contribute to the PHP project. You can help support PHP Foundation at <a href="https://opencollective.com/phpfoundation">OpenCollective</a> or via <a href="https://github.com/sponsors/ThePHPF">GitHub Sponsors</a>.</p>

<p>A big thanks to all our sponsors — PHP Foundation is all of us!</p>

<p>Follow us on Twitter <a href="https://twitter.com/thephpf">@ThePHPF</a> to get the latest updates from the Foundation.</p>

<p>💜️ 🐘</p>

<blockquote>
  <p>PHP Roundup is prepared by Ayesh Karunaratne from <strong><a href="https://php.watch">PHP.Watch</a></strong>, a source for PHP News, Articles, Upcoming Changes, and more.</p>
</blockquote>
]]></content>
        </entry>
            <entry>
            <title type="html"><![CDATA[PHP Core Roundup #15]]></title>
            <link href="https://thephp.foundation/blog/2023/08/01/php-core-roundup-15/"/>
            <updated>2023-08-01T00:00:00+00:00</updated>
            <id>https://thephp.foundation/blog/2023/08/01/php-core-roundup-15/</id>
            <content type="html"><![CDATA[<p>Welcome back to <a href="/blog/tag/roundup/">PHP Core Roundup</a> series! This is post #15, where we highlight and celebrate the improvements made to PHP during the month past by the PHP development team, members of the PHP Foundation, and more.</p>

<blockquote>
  <p>The PHP Foundation is a collective of PHP contributors, veterans, and companies that collaborate to ensure the long-term sustainability of the PHP programming language. The foundation currently supports six contributors focused on PHP's maintenance, debt reduction, and feature development. These contributors work closely with others on coding, documentation, and discussions.</p>
  
  <p>Started over a year ago, the PHP Core Roundup series offers a summary of the latest developments, discussions, and news about PHP Core, contributed by both PHP Foundation members and other participants. This post is the thirteenth in the PHP Core Roundup series.</p>
</blockquote>

<p><div class="px-4 pt-3 border-b border-t -mx-4 border-gray-200">
    <div class="bg-white py-8">
        <div class="mx-auto grid max-w-7xl grid-cols-1 gap-10 lg:grid-cols-12 lg:gap-8">
            <div class="max-w-xl text-4xl font-medium tracking-tight text-gray-900 lg:col-span-6">
                Subscribe to PHP Core Roundup newsletter
            </div>
            <form method="POST"
                  action="https://php-foundation.mailcoach.app/subscribe/9be4e2bd-f9d8-475c-b00e-2dcc4cf90056"
                  class="w-full max-w-md lg:col-span-6">
                <div class="flex gap-x-4">
                    <label for="email-address" class="sr-only">Email address</label>
                    <input id="email-address" name="email" type="email" autocomplete="email" required
                           class="min-w-0 flex-auto rounded-md border-0 px-3.5 py-2 text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm sm:leading-6"
                           placeholder="Enter your email">
                    <button type="submit"
                            class="inline-block py-2 no-underline px-6 !text-white bg-[#7f52ff] rounded-3xl hover:bg-[rgba(127,82,255,.8)]">
                        Subscribe
                    </button>
                </div>
                <div class="mt-4 text-sm leading-6 text-gray-900">
                    We care about your data.
                    Read our <a href="https://thephp.foundation/privacy-policy"
                                class="font-semibold text-indigo-600 hover:text-indigo-500 no-underline">privacy policy</a>.
                </div>
            </form>
        </div>
    </div>
</div>
</p>

<h2 id="php-8.3-feature-freeze">PHP 8.3 Feature-Freeze</h2>

<p>On July 18, PHP 8.3 branch reached its feature-freeze. As the name suggests, the list of features we plan to ship with PHP 8.3 is now frozen. Contributors who wish to make substantial changes to PHP should now target the next PHP version, PHP 8.4.</p>

<p>In the coming weeks, the PHP Foundation members, the PHP development team, and contributors will be making improvements to get PHP 8.3 ready for production release.</p>

<p>Release managers elected for PHP 8.3, Pierrick Charron, Jakub Zelenka, and Eric Mann will have the final say in case a major change must be made to the PHP 8.3.</p>

<h2 id="php-8.3-beta-release">PHP 8.3 Beta Release</h2>

<p>The second beta release of PHP 8.3 was released this week. Now would be an ideal time to test your PHP applications on PHP 8.3.</p>

<p>Compiled Windows binaries are available at <a href="https://windows.php.net/qa/">windows.php.net/qa</a>, <a href="https://hub.docker.com/_/php/tags?page=1&amp;name=8.3.0">Docker images</a> are available at Docker Hub, and source code at <a href="https://github.com/php/php-src">php/php-src repository on GitHub</a> to compile yourself. On Homebrew, <code>PHP 8.3.0-dev</code> packages are available from <code><a href="https://github.com/shivammathur/homebrew-php">shivammathur/php</a></code> tap.</p>

<p>CI/CD platforms that use Docker images can use the PHP 8.2 docker images available with various base images. GitHub Actions can also make use of <code><a href="https://github.com/shivammathur/setup-php">shivammathur/setup-php</a></code> action, which supports PHP 8.3 builds.</p>

<h2 id="php-bug-fix-releases">PHP Bug Fix Releases</h2>

<p>The PHP development team released two new versions in July 2023:</p>

<p><strong><a href="https://www.php.net/archive/2023.php#2023-07-06-2">PHP 8.2.8</a></strong> and <strong><a href="https://www.php.net/archive/2023.php#2023-07-06-3">PHP 8.1.21</a></strong></p>

<p>These releases include bug fixes across various components such as CLI, Core, Curl, DOM, Opcache, OpenSSL, PGSQL, Phar, SPL, and Standard.</p>

<h2 id="recent-rfcs-and-mailing-list-discussions">Recent RFCs and Mailing List Discussions</h2>

<blockquote>
  <p>Changes and improvements to PHP are discussed, reported, and voted on by the PHP Foundation Team, the PHP development team, and contributors. Bug reports are made to the PHP <a href="https://github.com/php/php-src/issues">issue tracker</a>, changes are discussed in <a href="https://www.php.net/mailing-lists.php">mailing lists</a>, minor code changes are proposed as <a href="https://github.com/php/php-src/issues">pull requests</a>, and major changes are discussed in detail and voted on as <a href="https://wiki.php.net/rfc">PHP RFCs</a>. <a href="https://github.com/php/doc-en/">Documentation</a> and the <a href="https://github.com/php/web-php">php.net website</a> changes are also discussed and improved at their relevant Git repositories on GitHub.</p>
</blockquote>

<p><br>
Hundreds of awesome PHP contributors put their efforts into improvements to the PHP code base, documentation, and the php.net website. Here is a summary of some changes made by the people behind PHP. Things marked with 💜 are done by the PHP Foundation team.</p>

<h2 id="rfc-updates">RFC Updates</h2>

<h3 id="accepted%3A-pdo-driver-specific-sub-classes-by-danack">Accepted: <a href="https://wiki.php.net/rfc/pdo_driver_specific_subclasses">PDO driver specific sub-classes</a> by Danack</h3>

<p>PHP's PDO extension supports connecting to multiple database software by using different database drivers available. Some of these drivers include MySQL, PostgreSQL, and SQLite. Although most of these database support a common set of features, all of these databases have evolved to provide additional features that PDO <em>sometimes</em> can support, but there is no easy way for a library to check for these capabilities without having to inspect the driver and their versions.</p>

<p>This RFC proposes to create driver-specific sub classes of <code>\PDO</code>, so libraries and applications can easily indicate the database driver they expect, and make use of IDE autocompletion and proper error handling.</p>

<p>The vote was unanimously accepted, and is pending implementation.</p>

<h3 id="accepted%3A-deprecate-functions-with-overloaded-signatures-by-m%C3%A1t%C3%A9-kocsis-%F0%9F%92%9C">Accepted: <a href="https://wiki.php.net/rfc/deprecate_functions_with_overloaded_signatures">Deprecate Functions with Overloaded Signatures</a> by Máté Kocsis 💜</h3>

<p>This RFC proposes to deprecate a number of functions that have overloaded signatures, meaning they behave differently based on the number or type of arguments passed to them. The goal is to make PHP's function signatures more consistent and predictable.</p>

<h3 id="implemented%3A-deprecations-for-php-8.3-by-gina-peter-banyard-%F0%9F%92%9C%2C-christoph-m.-becker%2C-m%C3%A1t%C3%A9-kocsis-%F0%9F%92%9C%2C-tim-d%C3%BCsterhus%2C-go-kudo%2C-andreas-heigl">Implemented: <a href="https://wiki.php.net/rfc/deprecations_php_8_3">Deprecations for PHP 8.3</a> by Gina Peter Banyard 💜, Christoph M. Becker, Máté Kocsis 💜, Tim Düsterhus, Go Kudo, Andreas Heigl</h3>

<p>The aim is to clean up some of the older, less consistent parts of PHP to make the language more reliable and predictable. The following list provides a short overview of the functionality targeted for deprecation:</p>

<ul>
<li>Passing negative <code>$widths</code> to <code>mb_strimwidth()</code></li>
<li>The <code>NumberFormatter::TYPE_CURRENCY</code> constant</li>
<li><code>MT_RAND_PHP</code></li>
<li>Calling <code>ldap_connect</code> with 2 parameters</li>
</ul>

<h3 id="implemented%3A-marking-overridden-methods-by-tim-d%C3%BCsterhus">Implemented: <a href="https://wiki.php.net/rfc/marking_overriden_methods">Marking Overridden Methods</a> by Tim Düsterhus</h3>

<p>PHP 8.3 will have a new attribute <code>#[\Override]</code>. If this attribute is added to a method, the engine will validate that a method with the same name exists in a parent class or any of the implemented interfaces. If no such method exists, a compile time error will be emitted.</p>

<p>The similar concepts exist in Java, TypeScript, C++, C#, Swift, Kotlin, and other languages.</p>

<h3 id="implemented%3A-path-to-saner-increment%2Fdecrement-operators-by-gina-peter-banyard--%F0%9F%92%9C">Implemented: <a href="https://wiki.php.net/rfc/saner-inc-dec-operators">Path to Saner Increment/Decrement operators</a> by Gina Peter Banyard  💜</h3>

<p>This RFC proposed several improvements to normalize the behavior of <code>$v++</code> and <code>$v--</code> to be the same as <code>$v += 1</code> and <code>$v -= 1</code>, which PHP is currently inconsistent on.</p>

<p>It deprecates certain patterns, and introduces two new functions named <code>str_increment</code> and <code>str_decrement</code> to provide the deprecated behavior in a conscious way.</p>

<p><br></p>

<h2 id="merged-prs-and-commits">Merged PRs and Commits</h2>

<p>Following are some changes that did not go through an RFC process because they are either planned, bug fixes, or progressive enhancements.</p>

<hr />

<h3 id="full-list-of-commits--since-php-core-roundup-%2314">Full list of commits  since <a href="/blog/2023/07/01/php-core-roundup-14/">PHP Core Roundup #14</a></h3>

<p>Commits are in the order they were added, grouped by author in alphabetical order.</p>

<details>

<summary>Click here to expand</summary>

<h3 id="adam-saponara">Adam Saponara</h3>

<ul>
<li>Fix <a href="https://github.com/php/php-src/issues/9669">GH-9669</a>: phpdbg -h options doesn't list the -z option in <a href="https://github.com/php/php-src/pull/9713">GH-9713</a></li>
</ul>

<h3 id="anatol-belski">Anatol Belski</h3>

<ul>
<li>fileinfo: Backport xz detection fix in <a href="https://github.com/php/php-src/commit/86f79b299e">86f79b299e</a></li>
<li>fileinfo: Backport xz detection patch in <a href="https://github.com/php/php-src/commit/97f0d97d2a">97f0d97d2a</a></li>
<li>fileinfo: Add test for xz type in <a href="https://github.com/php/php-src/commit/292e10b14b">292e10b14b</a></li>
<li>NEWS: Add note for #11298 in <a href="https://github.com/php/php-src/commit/928fc68c9e">928fc68c9e</a></li>
<li>NEWS: Add note for #11298 in <a href="https://github.com/php/php-src/commit/4e8b1ddc53">4e8b1ddc53</a></li>
</ul>

<h3 id="andreas-heigl">Andreas Heigl</h3>

<ul>
<li>Deprecate <code>ldap_connect</code> with two parameters in <a href="https://github.com/php/php-src/pull/5177">GH-5177</a></li>
</ul>

<h3 id="arnaud-le-blanc-%F0%9F%92%9C">Arnaud Le Blanc 💜</h3>

<ul>
<li>Add stack limit check in <code>zend_eval_const_expr()</code> in <a href="https://github.com/php/php-src/pull/11424">GH-11424</a></li>
<li>Expose time spent collecting cycles in <code>gc_status()</code> in <a href="https://github.com/php/php-src/pull/11523">GH-11523</a></li>
<li>Remove WeakMap entries whose key is only reachable through the entry value in <a href="https://github.com/php/php-src/pull/10932">GH-10932</a></li>
<li>Add AMPHP, ReactPHP, Revolt PHP to community job in <a href="https://github.com/php/php-src/pull/10933">GH-10933</a></li>
</ul>

<h3 id="athos-ribeiro">Athos Ribeiro</h3>

<ul>
<li>Fix <a href="https://bugs.php.net/bug.php?id=79026">#79026</a>: Allow <code>PHP_EXTRA_VERSION</code> overrides in <a href="https://github.com/php/php-src/pull/11706">GH-11706</a></li>
</ul>

<h3 id="bob-weinand">Bob Weinand</h3>

<ul>
<li>Fix <a href="https://github.com/php/php-src/issues/11548">GH-11548</a> (Argument corruption when calling <code>XMLReader::open</code> or <code>XMLReader::XML</code> non-statically with observer active) in <a href="https://github.com/php/php-src/commit/cad47be8b6">cad47be8b6</a></li>
</ul>

<h3 id="bohwaz">BohwaZ</h3>

<ul>
<li>[RFC] Transition SQLite3 to exceptions in <a href="https://github.com/php/php-src/pull/11058">GH-11058</a></li>
</ul>

<h3 id="cristian-rodr%C3%ADguez">Cristian Rodríguez</h3>

<ul>
<li>proc_open: Use posix_spawn(3) interface on systems where it is profitable in <a href="https://github.com/php/php-src/pull/7933">GH-7933</a></li>
</ul>

<h3 id="david-carlier">David CARLIER</h3>

<ul>
<li><code>ext/intl</code>: intl_CharFromString using <code>zend_string_truncate</code> to adjust th… in <a href="https://github.com/php/php-src/pull/11575">GH-11575</a></li>
<li>zend stack: prepare <code>zend_call_stack_get</code> implementation for OpenBSD. in <a href="https://github.com/php/php-src/pull/11578">GH-11578</a></li>
<li>zend call stack fix freebsd code path. in <a href="https://github.com/php/php-src/pull/11766">GH-11766</a></li>
<li>zend vm savee registers support for riscv 64. in <a href="https://github.com/php/php-src/pull/11773">GH-11773</a></li>
</ul>

<h3 id="david-carlier">David Carlier</h3>

<ul>
<li>zend call stack, follow-up on 75e9980 in <a href="https://github.com/php/php-src/commit/343b599747">343b599747</a></li>
<li><code>zend_gdb</code> disable gdb detection for FreeBSD &lt; 11 in <a href="https://github.com/php/php-src/commit/69b4360e88">69b4360e88</a></li>
</ul>

<h3 id="derick-rethans-%F0%9F%92%9C">Derick Rethans 💜</h3>

<ul>
<li>Import timelib 2022.08 in <a href="https://github.com/php/php-src/commit/c02ac26685">c02ac26685</a></li>
<li>Fix bug <a href="https://github.com/php/php-src/issues/11600">GH-11600</a>: Can't parse time strings which include (narrow) non-breaking space characters in <a href="https://github.com/php/php-src/commit/a4bdaeabf6">a4bdaeabf6</a></li>
<li>CS in <a href="https://github.com/php/php-src/commit/b669cb4c1b">b669cb4c1b</a></li>
<li>Make the new <code>DatePeriod::createFromISO8601String</code> method emit DateTimeImmutable objects in <a href="https://github.com/php/php-src/commit/82ff4c5e84">82ff4c5e84</a></li>
</ul>

<h3 id="dmitry-stogov">Dmitry Stogov</h3>

<ul>
<li>Fixed incorrect QM_ASSIGN elimination in <a href="https://github.com/php/php-src/commit/9fc0eab4b4">9fc0eab4b4</a></li>
<li>Fixed incorrect QM_ASSIGN elimination in <a href="https://github.com/php/php-src/commit/b5f8a7270a">b5f8a7270a</a></li>
</ul>

<h3 id="eno">Eno</h3>

<ul>
<li>Improve openssl ext to generate EC keys with custom EC parameters in <a href="https://github.com/php/php-src/pull/9991">GH-9991</a></li>
</ul>

<h3 id="filip-zr%C5%AFst">Filip Zrůst</h3>

<ul>
<li>Improve DTrace probe generation /w non-default compiler in <a href="https://github.com/php/php-src/pull/11643">GH-11643</a></li>
</ul>

<h3 id="gabriel-fontes">Gabriel Fontes</h3>

<ul>
<li>Add fallback value syntax for ini variables in <a href="https://github.com/php/php-src/commit/bc8b9aedf6">bc8b9aedf6</a></li>
<li>small fixes in <a href="https://github.com/php/php-src/commit/cd9dba81c7">cd9dba81c7</a></li>
</ul>

<h3 id="gina-peter-banyard-%F0%9F%92%9C">Gina Peter Banyard 💜</h3>

<ul>
<li>Use binary safe case compare in new <code>zend_string</code> API in <a href="https://github.com/php/php-src/commit/eb5cc1372c">eb5cc1372c</a></li>
<li>Revert "Use binary safe case compare in new <code>zend_string</code> API" in <a href="https://github.com/php/php-src/commit/a342138e17">a342138e17</a></li>
<li>Add tests for uncastable streams and dataloss streams in <a href="https://github.com/php/php-src/pull/10173">GH-10173</a></li>
<li>Remove assert.bail INI setting usage in DOMDocument tests in <a href="https://github.com/php/php-src/commit/d510b5ae3e">d510b5ae3e</a></li>
<li><code>ext/posix</code>: <code>posix_isatty()</code> fix use-of-uninitialized-value in <a href="https://github.com/php/php-src/pull/11676">GH-11676</a></li>
<li><code>ext/intl</code>: Fix memory leak in <code>MessageFormatter::format()</code> in <a href="https://github.com/php/php-src/pull/11658">GH-11658</a></li>
<li>RFC: Deprecate remains of string evaluated code assertions in <a href="https://github.com/php/php-src/pull/11671">GH-11671</a></li>
<li>Deprecate passing a negative width to <code>mb_strimwidth()</code> in <a href="https://github.com/php/php-src/commit/af3c220abb">af3c220abb</a></li>
<li>Add support for deprecating class constants in <a href="https://github.com/php/php-src/commit/3e2dbbf9c2">3e2dbbf9c2</a></li>
<li>Deprecate <code>NumberFormater::TYPE_CURRENCY</code> constant in <a href="https://github.com/php/php-src/commit/d65251e6e8">d65251e6e8</a></li>
<li>[RFC] Path to Saner Increment/Decrement operators in <a href="https://github.com/php/php-src/pull/10358">GH-10358</a></li>
<li><code>libxml_get_external_entity_loader()</code>: test for incompatible resource being loaded in <a href="https://github.com/php/php-src/pull/11728">GH-11728</a></li>
<li>Refactor BCMath bundledlib and extension in <a href="https://github.com/php/php-src/pull/10774">GH-10774</a></li>
<li><code>ext/mysqli</code>: Remove custom <code>sys_get_temp_dir()</code> function in <a href="https://github.com/php/php-src/commit/17a80eb08b">17a80eb08b</a></li>
<li><code>ext/mysqli</code>: Remove conditional function declaration in <a href="https://github.com/php/php-src/commit/0c21715935">0c21715935</a></li>
<li><code>ext/mysqli</code>: Stop using global variable in connection test helper in <a href="https://github.com/php/php-src/commit/8582d97b8c">8582d97b8c</a></li>
<li><code>ext/mysqli</code>: Remove catchable fatal error handler in <a href="https://github.com/php/php-src/commit/b389846d05">b389846d05</a></li>
</ul>

<h3 id="ilija-tovilo-%F0%9F%92%9C">Ilija Tovilo 💜</h3>

<ul>
<li>Fix <code>ext/zip</code> <code>arginfo.h</code> in <a href="https://github.com/php/php-src/commit/73cf12d6ac">73cf12d6ac</a></li>
<li>Fix mis-compilation of by-reference nullsafe operator in <a href="https://github.com/php/php-src/pull/11540">GH-11540</a></li>
<li>Fix missing "Optional parameter before required" deprecation on union null type in <a href="https://github.com/php/php-src/pull/11497">GH-11497</a></li>
<li>Fix serialization of RC1 objects appearing in object graph twice in <a href="https://github.com/php/php-src/pull/11349">GH-11349</a></li>
<li>xfail socket zerocopy test on Cirrus + arm in <a href="https://github.com/php/php-src/pull/11553">GH-11553</a></li>
<li>Attempt to fix <code>gh11498.phpt</code> on MSAN in <a href="https://github.com/php/php-src/commit/07dd0c80a8">07dd0c80a8</a></li>
<li>Revert "Fix <a href="https://github.com/php/php-src/issues/9967">GH-9967</a> Add support for generating custom function, class const, and property attributes in stubs" in <a href="https://github.com/php/php-src/commit/ef4f08832c">ef4f08832c</a></li>
<li>Revert "Merge branch 'PHP-8.2'" in <a href="https://github.com/php/php-src/commit/7b355e8d34">7b355e8d34</a></li>
<li>Use waitpid(-1) over WAIT_ANY in <a href="https://github.com/php/php-src/pull/11588">GH-11588</a></li>
<li>Revert "Revert "Remove name field from the <code>zend_constant</code> struct (#10954)"" in <a href="https://github.com/php/php-src/commit/ad1b70d67e">ad1b70d67e</a></li>
<li>Revert "Fix test after reverted commit" in <a href="https://github.com/php/php-src/commit/188072a58f">188072a58f</a></li>
<li>Attempt to improve setup-slapd.sh stability in <a href="https://github.com/php/php-src/pull/11590">GH-11590</a></li>
<li>Retire AppVeyor in <a href="https://github.com/php/php-src/pull/11566">GH-11566</a></li>
<li>Fix trailing if element JMP lineno in <a href="https://github.com/php/php-src/pull/11598">GH-11598</a></li>
<li>Fix use-of-uninitialized-value with ??= on assert in <a href="https://github.com/php/php-src/pull/11581">GH-11581</a></li>
<li>Implement flaky test section in <a href="https://github.com/php/php-src/pull/11325">GH-11325</a></li>
<li>Fix incorrect handling of unwind and graceful exit exceptions in <a href="https://github.com/php/php-src/pull/11608">GH-11608</a></li>
<li>Skip <code>xleak</code> tests on asan in <a href="https://github.com/php/php-src/pull/11610">GH-11610</a></li>
<li>Refine skipif for cirrus+arm in <a href="https://github.com/php/php-src/pull/11612">GH-11612</a></li>
<li>Fix double-compilation of arrow-function in <a href="https://github.com/php/php-src/pull/11632">GH-11632</a></li>
<li>Fix <code>bug-gh11600.phpt</code> in <a href="https://github.com/php/php-src/commit/57229836d4">57229836d4</a></li>
<li>Always memoize assert in <a href="https://github.com/php/php-src/pull/11686">GH-11686</a></li>
<li>Fix missing iface class const inheritance type check in <a href="https://github.com/php/php-src/commit/7343ae5d3c">7343ae5d3c</a></li>
<li>Fix iface const visibility variance check in <a href="https://github.com/php/php-src/commit/d9db446065">d9db446065</a></li>
<li>Fix use-of-uninitialized-value when calling <code>php_posix_stream_get_fd</code> in <a href="https://github.com/php/php-src/pull/11694">GH-11694</a></li>
<li>Fix gc_status type info in <a href="https://github.com/php/php-src/pull/11722">GH-11722</a></li>
<li>Revert "Remove name field from the <code>zend_constant</code> struct (#10954)" in <a href="https://github.com/php/php-src/pull/11604">GH-11604</a></li>
<li>Fix clang warning in <a href="https://github.com/php/php-src/pull/11729">GH-11729</a></li>
<li>Use :- as ini interpolation fallback separator in <a href="https://github.com/php/php-src/commit/a48b977d3f">a48b977d3f</a></li>
<li>Always memoize calls in lhs of coalesce assignment in <a href="https://github.com/php/php-src/pull/11592">GH-11592</a></li>
<li>Resolve <code>open_basedir</code> paths on ini update in <a href="https://github.com/php/php-src/pull/10987">GH-10987</a></li>
<li>Fix <code>hash_pbkdf2</code> options parameter in <a href="https://github.com/php/php-src/pull/11731">GH-11731</a></li>
<li>Fix use-after-free when unregistering user stream wrapper from itself in <a href="https://github.com/php/php-src/pull/11737">GH-11737</a></li>
<li>Fix leaking definitions on <code>FFI::cdef()</code>->new() in <a href="https://github.com/php/php-src/pull/11751">GH-11751</a></li>
<li>Fix merge conflict in <a href="https://github.com/php/php-src/commit/ac99f7306c">ac99f7306c</a></li>
<li>Fix <code>open_basedir</code> leak in <a href="https://github.com/php/php-src/pull/11780">GH-11780</a></li>
<li>Call cast_object handler from get_properties_for in <a href="https://github.com/php/php-src/pull/11583">GH-11583</a></li>
<li>Replace xfail with skipif in <code>calendar_clear_variation1.phpt</code> in <a href="https://github.com/php/php-src/pull/11801">GH-11801</a></li>
<li>Fix uaf of MBSTRG(all_encodings_list) in <a href="https://github.com/php/php-src/pull/11822">GH-11822</a></li>
<li>Fix uouv in <code>array_column</code> in <a href="https://github.com/php/php-src/commit/2053af6628">2053af6628</a></li>
<li>Fix uouv in <code>password_needs_rehash()</code> and <code>password_hash()</code> in <a href="https://github.com/php/php-src/commit/a145b40fa6">a145b40fa6</a></li>
<li>Fix various uouv in intl in <a href="https://github.com/php/php-src/commit/322da7bcc3">322da7bcc3</a></li>
<li>Fix some uouv in <code>ext/pgsql</code> in <a href="https://github.com/php/php-src/commit/82aa4253f1">82aa4253f1</a></li>
</ul>

<h3 id="jakub-zelenka-%F0%9F%92%9C">Jakub Zelenka 💜</h3>

<ul>
<li>Fix <a href="https://github.com/php/php-src/issues/11242">GH-11242</a>: Use dynamic buffer for large length in stream mem copy in <a href="https://github.com/php/php-src/commit/4a5d13e205">4a5d13e205</a></li>
</ul>

<h3 id="jorg-adam-sowa">Jorg Adam Sowa</h3>

<ul>
<li>Extend tests of bcmath extension in <a href="https://github.com/php/php-src/pull/11563">GH-11563</a></li>
<li>Reorder list construction in the function php_intpow10 in <a href="https://github.com/php/php-src/pull/11683">GH-11683</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/11761">GH-11761</a>: Bcmath numbers with trailing zeros  in <a href="https://github.com/php/php-src/pull/11798">GH-11798</a></li>
</ul>

<h3 id="joshua-behrens">Joshua Behrens</h3>

<ul>
<li>Warn when fpm socket was not registered on the expected path in <a href="https://github.com/php/php-src/pull/11066">GH-11066</a></li>
</ul>

<h3 id="juliette">Juliette</h3>

<ul>
<li>GH Actions: auto-skip CI on PRs containing only docs changes in <a href="https://github.com/php/php-src/pull/11839">GH-11839</a></li>
</ul>

<h3 id="k%C3%A9vin-dunglas">Kévin Dunglas</h3>

<ul>
<li>tests(ext-curl): fix HTTP/2 Server Push tests in <a href="https://github.com/php/php-src/pull/10669">GH-10669</a></li>
</ul>

<h3 id="marc-bennewitz">Marc Bennewitz</h3>

<ul>
<li><code>number_format()</code> Support rounding negative places in <a href="https://github.com/php/php-src/pull/11487">GH-11487</a></li>
<li>Prevent decimal int precision loss in <code>number_format()</code> in <a href="https://github.com/php/php-src/pull/11584">GH-11584</a></li>
<li>Prevent int overflow on $decimals in number_format in <a href="https://github.com/php/php-src/pull/11714">GH-11714</a></li>
</ul>

<h3 id="michael-orlitzky">Michael Orlitzky</h3>

<ul>
<li>Fix most external GD 2.3.3 compatibility in <a href="https://github.com/php/php-src/pull/11257">GH-11257</a></li>
<li>ext/session/tests: more lenient expected output checks. in <a href="https://github.com/php/php-src/pull/11631">GH-11631</a></li>
<li>ext/imap/tests/<em>mutf7</em>.phpt: update for missing utf8_to_mutf7() in <a href="https://github.com/php/php-src/pull/11654">GH-11654</a></li>
<li>ext/sockets/tests/mcast_ipv6_*.phpt: suppress no-ipv6 warning in <a href="https://github.com/php/php-src/pull/11651">GH-11651</a></li>
<li>Skip oci8 tests when no database is available in <a href="https://github.com/php/php-src/pull/11820">GH-11820</a></li>
</ul>

<h3 id="mikhail-galanin">Mikhail Galanin</h3>

<ul>
<li>Check if restart is pending before trying to lock SHM in <a href="https://github.com/php/php-src/pull/11805">GH-11805</a></li>
</ul>

<h3 id="m%C3%A1t%C3%A9-kocsis-%F0%9F%92%9C">Máté Kocsis 💜</h3>

<ul>
<li>Add support for typed class constants in stubs in <a href="https://github.com/php/php-src/commit/3906bccc00">3906bccc00</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/9967">GH-9967</a> Add support for generating custom function, class const, and property attributes in stubs in <a href="https://github.com/php/php-src/commit/d7ab0ff0c8">d7ab0ff0c8</a></li>
<li>Revert "Remove name field from the <code>zend_constant</code> struct (#10954)" in <a href="https://github.com/php/php-src/commit/9f4bd3040d">9f4bd3040d</a></li>
<li>Add support for extending multiple interfaces in the manual in <a href="https://github.com/php/php-src/commit/3c6590a391">3c6590a391</a></li>
<li>Display the readonly modifier for readonly classes in <a href="https://github.com/php/php-src/commit/4db4f0ba00">4db4f0ba00</a></li>
<li>Fix test after reverted commit in <a href="https://github.com/php/php-src/commit/0ce4f91d73">0ce4f91d73</a></li>
<li>Declare type for <code>ext/ffi</code> internal class constants in <a href="https://github.com/php/php-src/commit/6988973bc6">6988973bc6</a></li>
<li>Implement <code>DatePeriod::createFromISO8601String</code>() in <a href="https://github.com/php/php-src/commit/9c7c0a0b93">9c7c0a0b93</a></li>
<li>Deprecate calling <code>dba_fetch()</code> with $dba at the 3rd parameter in <a href="https://github.com/php/php-src/commit/134441efa9">134441efa9</a></li>
<li>Deprecate calling <code>FFI::cast()</code>, <code>FFI::new()</code>, and <code>FFI::type()</code> statically in <a href="https://github.com/php/php-src/commit/4acf0084dc">4acf0084dc</a></li>
<li>Deprecate calling <code>get_class()</code> and <code>get_parent_class()</code> without arguments in <a href="https://github.com/php/php-src/commit/1126232053">1126232053</a></li>
<li>Add <code>IntlCalendar::setDate()</code> and <code>IntlCalendar::setDateTime()</code> in <a href="https://github.com/php/php-src/commit/f236eb83b4">f236eb83b4</a></li>
<li>Implement <code>IntlGregorianCalendar::createFromDate()</code> and <code>IntlGregorianCalendar::createFromDateTime()</code> in <a href="https://github.com/php/php-src/commit/1486f52a12">1486f52a12</a></li>
<li>Implement <code>ldap_connect_wallet()</code> in <a href="https://github.com/php/php-src/commit/72aada3c7c">72aada3c7c</a></li>
<li>Implement <code>ldap_exop_sync</code> in <a href="https://github.com/php/php-src/commit/b3bd55f244">b3bd55f244</a></li>
<li>Make the $row param of <code>pg_fetch_result()</code>, <code>pg_field_prtlen()</code> and <code>pg_field_is_null()</code> nullable in <a href="https://github.com/php/php-src/commit/7ae0273ba3">7ae0273ba3</a></li>
<li>Deprecate <code>Phar::setStub</code>(resource $stub, int $length) in <a href="https://github.com/php/php-src/commit/840d665583">840d665583</a></li>
<li>Implement <code>ReflectionMethod::createFromMethodName()</code> in <a href="https://github.com/php/php-src/commit/f41220fe5d">f41220fe5d</a></li>
<li>Deprecate <code>ReflectionProperty::setValue()</code> with an incorrect 1st arg type in <a href="https://github.com/php/php-src/commit/d9a7f6741e">d9a7f6741e</a></li>
<li>Implement <code>stream_context_set_options()</code> in <a href="https://github.com/php/php-src/commit/a5ad7e09d5">a5ad7e09d5</a></li>
<li>Declare type for <code>ext/snmp</code> internal class constants in <a href="https://github.com/php/php-src/commit/1dcac9619c">1dcac9619c</a></li>
<li>Add UPGRADING note about SNMP class constant type declarations in <a href="https://github.com/php/php-src/commit/0f64b01aee">0f64b01aee</a></li>
<li>Fix misleading pass by reference error message in <a href="https://github.com/php/php-src/pull/10639">GH-10639</a></li>
<li>Use new class synopsis generating markup in <a href="https://github.com/php/php-src/pull/11809">GH-11809</a></li>
</ul>

<h3 id="niels-dossche">Niels Dossche</h3>

<ul>
<li>Fix <a href="https://github.com/php/php-src/issues/11567">GH-11567</a>: <code>mb_str_pad</code> causes access violation in <a href="https://github.com/php/php-src/commit/78d98e50c4">78d98e50c4</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/11300">GH-11300</a>: license issue: restricted unicode license headers in <a href="https://github.com/php/php-src/pull/11572">GH-11572</a></li>
<li>Remove always-false check in <a href="https://github.com/php/php-src/commit/45c93c173c">45c93c173c</a></li>
<li>Add negative test for isElementContentWhitespace() in <a href="https://github.com/php/php-src/commit/2aebca899c">2aebca899c</a></li>
<li>Add edge-case testcase for offset in DOMNamedNodeMap in <a href="https://github.com/php/php-src/commit/bccd924e3f">bccd924e3f</a></li>
<li>Add tests for DOMProcessingInstruction class in <a href="https://github.com/php/php-src/commit/f62757e74a">f62757e74a</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/9628">GH-9628</a>: Implicitly removing nodes from \DOMDocument breaks existing references in <a href="https://github.com/php/php-src/pull/11576">GH-11576</a></li>
<li>Cleanup macro usage in <code>ext/dom</code> and <code>ext/libxml</code> in <a href="https://github.com/php/php-src/commit/87e7b61d8f">87e7b61d8f</a></li>
<li>Implement <a href="https://github.com/php/php-src/issues/10024">GH-10024</a>: support linting multiple files at once using php -l in <a href="https://github.com/php/php-src/pull/10024">GH-10024</a></li>
<li>Fix replaced error handling in SQLite3Stmt::__construct in <a href="https://github.com/php/php-src/pull/11607">GH-11607</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/10562">GH-10562</a>: Memory leak and invalid state with consecutive <code>ftp_nb_fget</code> in <a href="https://github.com/php/php-src/pull/11606">GH-11606</a></li>
<li>Remove unused is_recursive entry in <a href="https://github.com/php/php-src/commit/1fbbd2b250">1fbbd2b250</a></li>
<li>Reserve less file space if possible in a directory entry in <a href="https://github.com/php/php-src/commit/00c1e7bf0f">00c1e7bf0f</a></li>
<li>Cache d_type in directory entry in <a href="https://github.com/php/php-src/commit/0b2e6bc2b0">0b2e6bc2b0</a></li>
<li>Fix crash when an invalid callback function is passed to CURLMOPT_PUSHFUNCTION in <a href="https://github.com/php/php-src/pull/11639">GH-11639</a></li>
<li>Fix return value of _php_server_push_callback in case of failure in <a href="https://github.com/php/php-src/commit/dc9adda653">dc9adda653</a></li>
<li>Add missing check on EVP_VerifyUpdate() in phar util in <a href="https://github.com/php/php-src/pull/11640">GH-11640</a></li>
<li>Avoid copying the stat buffer on a cache hit in <a href="https://github.com/php/php-src/pull/11628">GH-11628</a></li>
<li>Update type inference for <code>ZEND_GET_CLASS</code> and <code>ZEND_GET_CALLED_CLASS</code> in <a href="https://github.com/php/php-src/commit/838d80e7ee">838d80e7ee</a></li>
<li>Update type inference for <code>ZEND_STRLEN</code> in <a href="https://github.com/php/php-src/commit/3d944a367e">3d944a367e</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/11625">GH-11625</a>: <code>DOMElement::replaceWith()</code> doesn't replace node with DOMDocumentFragment but just deletes node or causes wrapping &lt;>&lt;/> depending on libxml2 version in <a href="https://github.com/php/php-src/pull/11627">GH-11627</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/11629">GH-11629</a>: <code>bug77020.phpt</code> tries to send mail in <a href="https://github.com/php/php-src/pull/11636">GH-11636</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/11630">GH-11630</a>: <code>proc_nice_basic.phpt</code> only works at certain nice levels in <a href="https://github.com/php/php-src/pull/11635">GH-11635</a></li>
<li>Remove always-true condition from <code>php_dom_iterator_move_forward()</code> in <a href="https://github.com/php/php-src/commit/a2fde39169">a2fde39169</a></li>
<li>Remove always-true condition from xml_utf8_decode() in <a href="https://github.com/php/php-src/commit/6d3433e60f">6d3433e60f</a></li>
<li>Cleanup <code>php_libxml_node_decrement_resource()</code> in <a href="https://github.com/php/php-src/commit/75229cb127">75229cb127</a></li>
<li>Fix tests for stat rdev in <a href="https://github.com/php/php-src/commit/6b87e08b82">6b87e08b82</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/10914">GH-10914</a>: OPCache with Enum and Callback functions results in segmentation fault in <a href="https://github.com/php/php-src/pull/11675">GH-11675</a></li>
<li>Add regression test for <a href="https://github.com/php/php-src/issues/11682">GH-11682</a> in <a href="https://github.com/php/php-src/commit/48b246e038">48b246e038</a></li>
<li>Fix <code>bug-gh11600.phpt</code> to work with different ICU versions in <a href="https://github.com/php/php-src/commit/9c47f33a5f">9c47f33a5f</a></li>
<li>Implement <code>DOMNode::contains()</code> in <a href="https://github.com/php/php-src/commit/ea794e9cde">ea794e9cde</a></li>
<li>Avoid string allocation in dom_get_dom1_attribute() for as long as possible in <a href="https://github.com/php/php-src/commit/9880c336be">9880c336be</a></li>
<li>Avoid allocations in <code>DOMElement::getAttribute()</code> in <a href="https://github.com/php/php-src/commit/f04e5059bb">f04e5059bb</a></li>
<li>Handle fragments consisting out of multiple children without a single root correctly in <a href="https://github.com/php/php-src/pull/11698">GH-11698</a></li>
<li>Refactor <code>dom_node_node_name_read()</code> to avoid double allocation in <a href="https://github.com/php/php-src/commit/b3899eb569">b3899eb569</a></li>
<li>Implement <code>DOMElement::getAttributeNames()</code> in <a href="https://github.com/php/php-src/commit/10d7e8dc3a">10d7e8dc3a</a></li>
<li>Implement <code>DOMNode::getRootNode()</code> in <a href="https://github.com/php/php-src/pull/11693">GH-11693</a></li>
<li>Implement <code>DOMElement::className</code> in <a href="https://github.com/php/php-src/pull/11691">GH-11691</a></li>
<li>Implement <code>DOMParentNode::replaceChildren()</code> in <a href="https://github.com/php/php-src/commit/6560c9bf8e">6560c9bf8e</a></li>
<li>Fix ? in <a href="https://github.com/php/php-src/commit/e8f0bdc7f1">e8f0bdc7f1</a></li>
<li>Implement <code>DOMElement::id</code> in <a href="https://github.com/php/php-src/pull/11701">GH-11701</a></li>
<li>Prevent potential deadlock if accelerated globals cannot be allocated in <a href="https://github.com/php/php-src/pull/11718">GH-11718</a></li>
<li>Implement <code>DOMNode::isConnected</code> and <code>DOMNameSpaceNode::isConnected</code> in <a href="https://github.com/php/php-src/pull/11677">GH-11677</a></li>
<li>Implement <code>DOMNode::parentElement</code> and <code>DOMNameSpaceNode::parentElement</code> in <a href="https://github.com/php/php-src/pull/11679">GH-11679</a></li>
<li>Fix build on Windows in <a href="https://github.com/php/php-src/commit/c97507b5c1">c97507b5c1</a></li>
<li>Implement <code>DOMNode::isEqualNode()</code> in <a href="https://github.com/php/php-src/pull/11690">GH-11690</a></li>
<li>Implement <code>DOMElement::insertAdjacent</code>{Element,Text} in <a href="https://github.com/php/php-src/pull/11700">GH-11700</a></li>
<li>Split off some methods so they can be reused in different places in <a href="https://github.com/php/php-src/commit/5b5a3d79da">5b5a3d79da</a></li>
<li>Implement <code>DOMElement::toggleAttribute()</code> in <a href="https://github.com/php/php-src/pull/11696">GH-11696</a></li>
<li>Add new curl constants from curl until (including) 7.87 in <a href="https://github.com/php/php-src/pull/10459">GH-10459</a></li>
<li>Get rid of some unnecessary string conversion in <a href="https://github.com/php/php-src/pull/11733">GH-11733</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/11715">GH-11715</a>: opcache.interned_strings_buffer either has no effect or <code>opcache_get_status()</code> / phpinfo() is wrong in <a href="https://github.com/php/php-src/pull/11717">GH-11717</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/11716">GH-11716</a>: cli server crashes on SIGINT when compiled with <code>ZEND_RC_DEBUG</code>=1 in <a href="https://github.com/php/php-src/pull/11757">GH-11757</a></li>
<li>Use xmlSetNsProp when possible to prevent parsing the name in <a href="https://github.com/php/php-src/commit/c8964b9a08">c8964b9a08</a></li>
<li>Remove useless readonly checks in <a href="https://github.com/php/php-src/commit/dbe897b73e">dbe897b73e</a></li>
<li>Simplify configuration getters in <a href="https://github.com/php/php-src/pull/11778">GH-11778</a></li>
<li>Fix DOMEntity field getter bugs in <a href="https://github.com/php/php-src/pull/11779">GH-11779</a></li>
<li>Fix incorrect attribute existence check in <code>DOMElement::setAttributeNodeNS()</code> in <a href="https://github.com/php/php-src/pull/11776">GH-11776</a></li>
<li>Fix <code>DOMCharacterData::replaceWith()</code> with itself in <a href="https://github.com/php/php-src/pull/11770">GH-11770</a></li>
<li>Fix empty argument cases for DOMParentNode methods in <a href="https://github.com/php/php-src/pull/11768">GH-11768</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/11791">GH-11791</a>: Wrong default value of <code>DOMDocument::xmlStandalone</code> in <a href="https://github.com/php/php-src/pull/11793">GH-11793</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/11792">GH-11792</a>: LIBXML_NOXMLDECL is not implemented or broken in <a href="https://github.com/php/php-src/pull/11794">GH-11794</a></li>
<li>Fix DOM test in <a href="https://github.com/php/php-src/commit/bed0e54104">bed0e54104</a></li>
<li>Corrections to return type of loading DOM documents in <a href="https://github.com/php/php-src/commit/ae66a0d142">ae66a0d142</a></li>
<li><code>XLEAK</code> XML_SAVE_NO_DECL test for old libxml2 versions in <a href="https://github.com/php/php-src/commit/655f116be5">655f116be5</a></li>
</ul>

<h3 id="peter-kokot">Peter Kokot</h3>

<ul>
<li>Fix <a href="https://github.com/php/php-src/issues/11603">GH-11603</a>: Set LDFLAGS in <a href="https://github.com/php/php-src/pull/11605">GH-11605</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/9483">GH-9483</a>: Autoconf warnings for newer Autoconf versions in <a href="https://github.com/php/php-src/commit/41a3573fcc">41a3573fcc</a></li>
<li>Update config.guess to 2023-06-23 and config.sub to 2023-06-26 in <a href="https://github.com/php/php-src/pull/11711">GH-11711</a></li>
<li>Fix Autoconf check for development versions in <a href="https://github.com/php/php-src/pull/11532">GH-11532</a></li>
<li>Remove unused <code>PHP_HASH</code> variable in <a href="https://github.com/php/php-src/pull/11653">GH-11653</a></li>
<li>Remove check for <code>time.h</code> and HAVE_TIME_H in <a href="https://github.com/php/php-src/pull/11726">GH-11726</a></li>
<li>Remove unused <code>ZEND_STACK_GROWS_DOWNWARDS</code> constant in <a href="https://github.com/php/php-src/pull/11762">GH-11762</a></li>
<li>Move --enable/--disable-fiber-asm help output in <a href="https://github.com/php/php-src/pull/11827">GH-11827</a></li>
</ul>

<h3 id="remi-collet">Remi Collet</h3>

<ul>
<li>The <code>ZipArchive::FL_RECOMPRESS</code> constant is deprecated in <a href="https://github.com/php/php-src/commit/d8dd72fc31">d8dd72fc31</a></li>
<li>zip extension version 1.22.1 in <a href="https://github.com/php/php-src/commit/b406f7c67a">b406f7c67a</a></li>
<li>cast _private to avoid [-fpermissive] error in <a href="https://github.com/php/php-src/commit/fde4386648">fde4386648</a></li>
<li>add <code>ZipArchive::LENGTH_TO_END</code> and <code>ZipArchive::LENGTH_UNCHECKED</code> constants in <a href="https://github.com/php/php-src/commit/0893b4bed5">0893b4bed5</a></li>
<li>use typed constants in 8.3 in <a href="https://github.com/php/php-src/commit/ae3646db48">ae3646db48</a></li>
</ul>

<h3 id="sakitakamachi">SakiTakamachi</h3>

<ul>
<li>Fix <a href="https://github.com/php/php-src/issues/11587">GH-11587</a> <code>PDO::ATTR_STRINGIFY_FETCHES</code> should return strings even in if <code>PDO::ATTR_EMULATE_PREPARES</code> is enabled in <a href="https://github.com/php/php-src/pull/11622">GH-11622</a></li>
</ul>

<h3 id="tim-d%C3%BCsterhus">Tim Düsterhus</h3>

<ul>
<li>RFC: Add #[Override] attribute in <a href="https://github.com/php/php-src/pull/9836">GH-9836</a></li>
<li>Deprecate MT_RAND_PHP in <a href="https://github.com/php/php-src/pull/11560">GH-11560</a></li>
</ul>

<h3 id="yurun">Yurun</h3>

<ul>
<li>Fix incorrect function/method names in DBG_ENTER() in <a href="https://github.com/php/php-src/pull/11554">GH-11554</a></li>
</ul>

<h3 id="eater">eater</h3>

<ul>
<li><code>ext/gettext</code>: resolve underqouting that breaks with autoconf 2.72 in <a href="https://github.com/php/php-src/pull/11427">GH-11427</a></li>
</ul>

<h3 id="tekimen">tekimen</h3>

<ul>
<li>Fix warning <code>crc32.c</code> on function declaration without a prototype. in <a href="https://github.com/php/php-src/pull/11742">GH-11742</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/11785">GH-11785</a>: '++nothing+crc' is not a recognized feature for M1 / M2 macOS compile target in <a href="https://github.com/php/php-src/pull/11796">GH-11796</a></li>
</ul>

</details>

<p><br>
We are incredibly grateful for the commitment and dedication of all contributors. Stay tuned for next month's roundup as we continue to make PHP better together.</p>

<p><br></p>

<hr />

<h2 id="support-php-foundation">Support PHP Foundation</h2>

<p>At PHP Foundation, we support, promote, and advance the PHP language. We financially support six part-time PHP core developers to contribute to the PHP project. You can help support PHP Foundation at <a href="https://opencollective.com/phpfoundation">OpenCollective</a> or via <a href="https://github.com/sponsors/ThePHPF">GitHub Sponsors</a>.</p>

<p>A big thanks to all our sponsors — PHP Foundation is all of us!</p>

<p>Follow us on Twitter <a href="https://twitter.com/thephpf">@ThePHPF</a> to get the latest updates from the Foundation.</p>

<p>💜️ 🐘</p>

<blockquote>
  <p>PHP Roundup is prepared by Ayesh Karunaratne from <strong><a href="https://php.watch">PHP.Watch</a></strong>, a source for PHP News, Articles, Upcoming Changes, and more.</p>
</blockquote>
]]></content>
        </entry>
            <entry>
            <title type="html"><![CDATA[PHP Core Roundup #14]]></title>
            <link href="https://thephp.foundation/blog/2023/07/01/php-core-roundup-14/"/>
            <updated>2023-07-01T00:00:00+00:00</updated>
            <id>https://thephp.foundation/blog/2023/07/01/php-core-roundup-14/</id>
            <content type="html"><![CDATA[<p>There have been numerous updates and enhancements to the PHP core over the past month, from thought-provoking RFCs to minor yet profound adjustments. Let's dive in and keep up with the most recent PHP developments.</p>

<blockquote>
  <p>The PHP Foundation is a collective of PHP contributors, veterans, and companies that collaborate to ensure the long-term sustainability of the PHP programming language. The foundation currently supports six contributors focused on PHP's maintenance, debt reduction, and feature development. These contributors work closely with others on coding, documentation, and discussions.</p>
</blockquote>

<p><br></p>

<blockquote>
  <p>Started over a year ago, the PHP Core Roundup series offers a summary of the latest developments, discussions, and news about PHP Core, contributed by both PHP Foundation members and other participants. This post is the thirteenth in the PHP Core Roundup series.</p>
</blockquote>

<p><div class="px-4 pt-3 border-b border-t -mx-4 border-gray-200">
    <div class="bg-white py-8">
        <div class="mx-auto grid max-w-7xl grid-cols-1 gap-10 lg:grid-cols-12 lg:gap-8">
            <div class="max-w-xl text-4xl font-medium tracking-tight text-gray-900 lg:col-span-6">
                Subscribe to PHP Core Roundup newsletter
            </div>
            <form method="POST"
                  action="https://php-foundation.mailcoach.app/subscribe/9be4e2bd-f9d8-475c-b00e-2dcc4cf90056"
                  class="w-full max-w-md lg:col-span-6">
                <div class="flex gap-x-4">
                    <label for="email-address" class="sr-only">Email address</label>
                    <input id="email-address" name="email" type="email" autocomplete="email" required
                           class="min-w-0 flex-auto rounded-md border-0 px-3.5 py-2 text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm sm:leading-6"
                           placeholder="Enter your email">
                    <button type="submit"
                            class="inline-block py-2 no-underline px-6 !text-white bg-[#7f52ff] rounded-3xl hover:bg-[rgba(127,82,255,.8)]">
                        Subscribe
                    </button>
                </div>
                <div class="mt-4 text-sm leading-6 text-gray-900">
                    We care about your data.
                    Read our <a href="https://thephp.foundation/privacy-policy"
                                class="font-semibold text-indigo-600 hover:text-indigo-500 no-underline">privacy policy</a>.
                </div>
            </form>
        </div>
    </div>
</div>
</p>

<h2 id="happy-28th-birthday%2C-php%21">Happy 28th birthday, PHP!</h2>

<p>On June 8, PHP turned 28 years old! For a throwback, see Rasmus Lerdorf’s <a href="https://groups.google.com/g/comp.infosystems.www.authoring.cgi/c/PyJ25gZ6z7A/m/M9FkTUVDfcwJ">initial public announcement of PHP</a>.</p>

<p>Here’s to many more years of empowering developers and pushing the boundaries of web technology. Happy Birthday, PHP! 🎉🥳🎂</p>

<h2 id="php-8.3.0-qa-releases-and-feature-freeze">PHP 8.3.0 QA Releases and Feature-freeze</h2>

<p>The upcoming PHP 8.3 version is scheduled to be released on November 23. The newly elected PHP 8.3 release managers made the first QA releases of PHP 8.3 — <a href="https://www.php.net/archive/2023.php#2023-06-08-3">PHP&nbsp;8.3.0&nbsp;Alpha&nbsp;1</a> — on June 08, and the <a href="https://www.php.net/archive/2023.php#2023-06-22-1">second alpha release</a> on June 22.</p>

<p>These alpha versions aren't intended for production environments but are provided for testing and local development.</p>

<p>Compiled Windows binaries are available at <a href="https://windows.php.net/qa/">windows.php.net/qa</a>, <a href="https://hub.docker.com/_/php/tags?page=1&amp;name=8.3.0">Docker images</a> are available at Docker Hub. For macOS, PHP 8.3.0-dev packages are available via Homebrew from <a href="https://github.com/shivammathur/homebrew-php"><code>shivammathur/php</code></a> tap.</p>

<p>If you want to compile the source code yourself, you can find it on <a href="https://github.com/php/php-src">php/php-src repository on GitHub</a>.</p>

<p><strong>July 18</strong> marks the feature-freeze for PHP 8.3. It means that all major changes to the language must be discussed and voted on prior to this date in order to make it to PHP 8.3.</p>

<h2 id="releases">Releases</h2>

<p>The PHP development team released three new versions in June 2023:</p>

<p><strong><a href="https://www.php.net/archive/2023.php#2023-06-08-2">PHP 8.2.7</a></strong>, <strong><a href="https://www.php.net/archive/2023.php#2023-06-08-4">PHP 8.1.20</a></strong>, <strong><a href="https://www.php.net/archive/2023.php#2023-06-08-1">PHP 8.0.29</a></strong></p>

<p>All three include a security fix: <a href="https://github.com/php/php-src/security/advisories/GHSA-76gg-c692-v2mw">GHSA-76gg-c692-v2mw</a>. The random byte generation function used in the SOAP HTTP Digest authentication code was not checked for failure. This could result in a stack information leak.</p>

<p>PHP 8.2.7 and PHP 8.1.20 additionally include several bug fixes and improvements, notably in areas such as Core, Date, Exif, FPM, Hash, LibXML, MBString, Opcache, PCNTL, PGSQL, Phar, Soap, SPL, Standard, and Streams.</p>

<h2 id="recent-rfcs-and-mailing-list-discussions">Recent RFCs and Mailing List Discussions</h2>

<blockquote>
  <p>Changes and improvements to PHP are discussed, reported, and voted on by the PHP Foundation Team, the PHP development team, and contributors. Bug reports are made to the PHP <a href="https://github.com/php/php-src/issues">issue tracker</a>, changes are discussed in <a href="https://www.php.net/mailing-lists.php">mailing lists</a>, minor code changes are proposed as <a href="https://github.com/php/php-src/issues">pull requests</a>, and major changes are discussed in detail and voted on as <a href="https://wiki.php.net/rfc">PHP RFCs</a>. <a href="https://github.com/php/doc-en/">Documentation</a> and the <a href="https://github.com/php/web-php">php.net website</a> changes are also discussed and improved at their relevant Git repositories on GitHub.</p>
</blockquote>

<p><br>
Hundreds of awesome PHP contributors put their efforts into improvements to the PHP code base, documentation, and the php.net website. Here is a summary of some changes made by the people behind PHP. Things marked with 💜 are done by the PHP Foundation team.</p>

<h2 id="rfc-updates">RFC Updates</h2>

<p>Following are the RFCs and major pull-requests discussed, voted on, and implemented since our last update.</p>

<h3 id="accepted%3A-marking-overridden-methods-by-tim-d%C3%BCsterhus">Accepted: <a href="https://wiki.php.net/rfc/marking_overriden_methods">Marking Overridden Methods</a> by Tim Düsterhus</h3>

<p>PHP 8.3 will have a new attribute <code>#[\Override]</code>. If this attribute is added to a method, the engine will validate that a method with the same name exists in a parent class or any of the implemented interfaces. If no such method exists, a compile time error will be emitted.</p>

<p>The similar concepts exist in Java, TypeScript, C++, C#, Swift, Kotlin, and other languages.</p>

<h3 id="implemented%3A-define-proper-semantics-for-range-function-by-gina-peter-banyard-%F0%9F%92%9C">Implemented: <a href="https://wiki.php.net/rfc/proper-range-semantics">Define proper semantics for range() function</a> by Gina Peter Banyard 💜</h3>

<p>In the forthcoming PHP 8.3 release, the <code>range()</code> function will have improved behavior. It will now issue warnings or throw exceptions if it receives incompatible or unusable arguments.</p>

<h3 id="implemented%3A-mb_str_pad-by-niels-dossche">Implemented: <a href="https://wiki.php.net/rfc/mb_str_pad">mb_str_pad()</a> by Niels Dossche</h3>

<p>PHP 8.3 will include a new function that works similarly to the existing <code>str_pad()</code> function, but with support for multibyte strings. This is a welcome addition for developers working with multibyte strings, as it will make it easier to manipulate and format these strings in PHP.</p>

<h3 id="in-voting%3A-deprecations-for-php-8.3-by-gina-peter-banyard-%F0%9F%92%9C%2C-christoph-m.-becker%2C-m%C3%A1t%C3%A9-kocsis-%F0%9F%92%9C%2C-tim-d%C3%BCsterhus%2C-go-kudo%2C-andreas-heigl">In Voting: <a href="https://wiki.php.net/rfc/deprecations_php_8_3">Deprecations for PHP 8.3</a> by Gina Peter Banyard 💜, Christoph M. Becker, Máté Kocsis 💜, Tim Düsterhus, Go Kudo, Andreas Heigl</h3>

<p>The aim is to clean up some of the older, less consistent parts of PHP to make the language more reliable and predictable. The following list provides a short overview of the functionality targeted for deprecation:</p>

<ul>
<li>Passing negative <code>$widths</code> to <code>mb_strimwidth()</code></li>
<li>The <code>NumberFormatter::TYPE_CURRENCY</code> constant</li>
<li>Unnecessary <code>crypt()</code> related constants</li>
<li><code>MT_RAND_PHP</code></li>
<li>Global Mersenne Twister</li>
</ul>

<h3 id="in-voting%3A-deprecate-functions-with-overloaded-signatures-by-m%C3%A1t%C3%A9-kocsis-%F0%9F%92%9C">In Voting: <a href="https://wiki.php.net/rfc/deprecate_functions_with_overloaded_signatures">Deprecate Functions with Overloaded Signatures</a> by Máté Kocsis 💜</h3>

<p>This RFC proposes to deprecate a number of functions that have overloaded signatures, meaning they behave differently based on the number or type of arguments passed to them. The goal is to make PHP's function signatures more consistent and predictable.</p>

<h3 id="under-discussion%3A-closure-self-reference-by-danack%2C-kapitanoczywisty">Under Discussion: <a href="https://wiki.php.net/rfc/closure_self_reference">Closure self-reference</a> by Danack, KapitanOczywisty</h3>

<p>This RFC proposes to allow closures to be aliased to a variable that can be used within the closure:</p>

<pre><code class="php">&lt;?php

$fibonacci = function (int $n) as $fn {
    if ($n === 0) return 0;
    if ($n === 1) return 1;
    return $fn($n-1) + $fn($n-2);
};

echo $fibonacci(5);
</code></pre>

<p><br></p>

<h2 id="merged-prs-and-commits">Merged PRs and Commits</h2>

<p>Following are some changes that did not go through an RFC process because they are either planned, bug fixes, or progressive enhancements.</p>

<hr />

<h3 id="full-list-of-commits--since-php-core-roundup-%2313">Full list of commits  since <a href="/blog/2023/06/06/php-core-roundup-13/">PHP Core Roundup #13</a></h3>

<p>Commits are grouped by author in random order.</p>

<details>

<summary>Click here to expand</summary>

<h3 id="james-lucas">James Lucas</h3>

<ul>
<li>Fix <a href="https://github.com/php/php-src/issues/11246">GH-11246</a> cli/get_set_process_title in <a href="https://github.com/php/php-src/pull/11247">GH-11247</a></li>
<li>Fix bug <a href="https://github.com/php/php-src/issues/9356">GH-9356</a>: Incomplete SAN validation of IPv6 address in <a href="https://github.com/php/php-src/pull/11145">GH-11145</a></li>
</ul>

<h3 id="gina-peter-banyard-%F0%9F%92%9C">Gina Peter Banyard 💜</h3>

<ul>
<li>Fix [<code>-Wenum-int-mismatch</code>] compiler warnings in <a href="https://github.com/php/php-src/pull/11352">GH-11352</a></li>
<li><code>ext/standard/array.c</code>: Optimize min/max functions for int/float in <a href="https://github.com/php/php-src/pull/11194">GH-11194</a></li>
<li><code>http_fopen_wrapper</code>: fix [<code>-Wanalyzer-deref-before-check</code>] in <a href="https://github.com/php/php-src/commit/810507ab1b">810507ab1b</a></li>
<li>memory stream: fix [<code>-Wanalyzer-deref-before-check</code>] in <a href="https://github.com/php/php-src/commit/13ad8ef40b">13ad8ef40b</a></li>
<li>Fix file descriptor check in <a href="https://github.com/php/php-src/commit/c5d7264149">c5d7264149</a></li>
<li>Assert <code>zend_constant</code> exist in <a href="https://github.com/php/php-src/commit/ce724d186d">ce724d186d</a></li>
<li>Use known <code>zend_string</code> pointer to check for equality instead of C strings in <a href="https://github.com/php/php-src/pull/11370">GH-11370</a></li>
<li>Use common function for <code>TypeError</code> on illegal offset access in <a href="https://github.com/php/php-src/pull/10544">GH-10544</a></li>
<li>Use more appropriate types for <code>php_array_walk()</code> function in <a href="https://github.com/php/php-src/commit/a02f7f24c6">a02f7f24c6</a></li>
<li>More usage of known <code>zend_str</code> instead of C string in <a href="https://github.com/php/php-src/pull/11381">GH-11381</a></li>
<li><code>ext/imap</code>: Refactor + Update to modern property write API in <a href="https://github.com/php/php-src/pull/11415">GH-11415</a></li>
<li>Remove <code>php_imap_list_add_object()</code> function in <a href="https://github.com/php/php-src/commit/5d0304876f">ext/imap</a></li>
<li>Use propery API instead of <code>php_imap_hash_add_object()</code> in <a href="https://github.com/php/php-src/commit/9798dc20e2">ext/imap</a></li>
<li>Cleanup custom implementation of <code>rfc822_write_address()</code> in <a href="https://github.com/php/php-src/commit/0b99bc21e5">ext/imap</a></li>
<li>Do not condition on number of arguments but on pointer being set or not in <a href="https://github.com/php/php-src/commit/b1dd9b8a39">ext/imap</a></li>
<li>Add const qualifier for <code>header_injection()</code> in <a href="https://github.com/php/php-src/commit/b1f24e3bea">ext/imap</a></li>
<li>Refactor <code>imap_fetch_overview()</code> in <a href="https://github.com/php/php-src/commit/d714ae8964">ext/imap</a></li>
<li>Narrow return type to <code>true</code> in <a href="https://github.com/php/php-src/commit/cc9ab53308">ext/imap</a></li>
<li>Refactor common conditional property assignment in <a href="https://github.com/php/php-src/commit/6c25257db0">ext/imap</a></li>
<li>Move range() tests to a dedicated folder in <a href="https://github.com/php/php-src/commit/53829b7daf">PHP Source</a></li>
<li>Add number or str ZPP macros in <a href="https://github.com/php/php-src/commit/80e90ad7ba">PHP Source</a></li>
<li>Expose <code>zendi_try_get_long()</code> function via a public API in <a href="https://github.com/php/php-src/pull/10175">Zend</a></li>
<li>Define proper semantics for <code>range()</code> function in <a href="https://github.com/php/php-src/pull/10826">RFC</a></li>
</ul>

<h3 id="niels-dossche">Niels Dossche</h3>

<ul>
<li>Fix <a href="https://github.com/php/php-src/issues/11347">GH-11347</a>: Memory leak when calling a static method inside an xpath query in <a href="https://github.com/php/php-src/pull/11350">GH-11350</a></li>
<li>Use <code>zval_ptr_dtor_nogc()</code> for callable in <code>ext/xslt</code> in <a href="https://github.com/php/php-src/pull/11356">GH-11356</a></li>
<li>Implement iteration cache, item cache and length cache for node list iteration in <a href="https://github.com/php/php-src/pull/11330">GH-11330</a></li>
<li>Struct-pack <code>spl_dllist_object</code> in <a href="https://github.com/php/php-src/commit/5fae4b5031">5fae4b5031</a></li>
<li>Remove dead code from <code>sxe_get_element_by_name()</code> in <a href="https://github.com/php/php-src/commit/c6bffff96b">c6bffff96b</a></li>
<li>Remove double class entry variable in <a href="https://github.com/php/php-src/commit/795127942b">795127942b</a></li>
<li>Use <code>xmlStrEqual()</code> instead of <code>!xmlStrCmp()</code> in <a href="https://github.com/php/php-src/commit/47c277bde5">47c277bde5</a></li>
<li>No need for the double name pointer in <a href="https://github.com/php/php-src/commit/ed097e30f0">ed097e30f0</a></li>
<li>Switch <code>DOMNodeList::item()</code> and <code>DOMNamedNodeMap::item()</code> to fast ZPP in <a href="https://github.com/php/php-src/pull/11361">GH-11361</a></li>
<li>Fix bug <a href="https://bugs.php.net/bug.php?id=67440">#67440</a>: append_node of a <code>DOMDocumentFragment</code> does not reconcile namespaces in <a href="https://github.com/php/php-src/pull/11362">GH-11362</a></li>
<li>Fix bug <a href="https://bugs.php.net/bug.php?id=81642">#81642</a>: <code>DOMChildNode::replaceWith()</code> bug when replacing a node with itself in <a href="https://github.com/php/php-src/pull/11363">GH-11363</a></li>
<li>Fix bug <a href="https://bugs.php.net/bug.php?id=77686">#77686</a>: Removed elements are still returned by <code>getElementById</code> in <a href="https://github.com/php/php-src/pull/11369">GH-11369</a></li>
<li>Use <code>uint32_t</code> for the number of nodes in <a href="https://github.com/php/php-src/pull/11371">GH-11371</a></li>
<li>Let closure created from magic method accept named parameters in <a href="https://github.com/php/php-src/pull/11364">GH-11364</a></li>
<li>Disable old <code>libxml2</code> hack if the version does not suffer from the bug in <a href="https://github.com/php/php-src/pull/11379">GH-11379</a></li>
<li>Fix missing randomness check and insufficient random bytes for SOAP HTTP Digest in <a href="https://github.com/php/php-src/commit/ac4254ad76">ac4254ad76</a></li>
<li>Fix test failure for <code>init_fcall_003.phpt</code> without opcache in <a href="https://github.com/php/php-src/pull/11378">GH-11378</a></li>
<li>Remove redundant assignment on nodep->ns in <a href="https://github.com/php/php-src/commit/6e04050474">6e04050474</a></li>
<li>Fix <a href="https://bugs.php.net/bug.php?id=79700">#79700</a>: Bad performance with namespaced nodes due to wrong libxml assumption in <a href="https://github.com/php/php-src/pull/11376">GH-11376</a></li>
<li>Fix <a href="https://bugs.php.net/bug.php?id=70359">#70359</a> and <a href="https://bugs.php.net/bug.php?id=78577">#78577</a>: segfaults with DOMNameSpaceNode in <a href="https://github.com/php/php-src/pull/11402">GH-11402</a></li>
<li>Allow final modifier when using a method from a trait in <a href="https://github.com/php/php-src/pull/11394">GH-11394</a></li>
<li>Get rid of return value for <code>php_libxml_unregister_node()</code> in <a href="https://github.com/php/php-src/pull/11398">GH-11398</a></li>
<li>Implement <a href="https://github.com/php/php-src/issues/8641">GH-8641</a>: STREAM_NOTIFY_COMPLETED over HTTP never emitted in <a href="https://github.com/php/php-src/pull/10505">GH-10505</a></li>
<li>Fix lifetime issue with getAttributeNodeNS() in <a href="https://github.com/php/php-src/pull/11422">GH-11422</a></li>
<li>Fix "invalid state error" with cloned namespace declarations in <a href="https://github.com/php/php-src/pull/11429">GH-11429</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/11406">GH-11406</a>: segfault with unpacking and magic method closure in <a href="https://github.com/php/php-src/pull/11417">GH-11417</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/11433">GH-11433</a>: Unable to set CURLOPT_ACCEPT_ENCODING to NULL in <a href="https://github.com/php/php-src/pull/11446">GH-11446</a></li>
<li>Fix bug <a href="https://bugs.php.net/bug.php?id=55294">#55294</a> and <a href="https://bugs.php.net/bug.php?id=47530">#47530</a> and <a href="https://bugs.php.net/bug.php?id=47847">#47847</a>: namespace reconciliation issues in <a href="https://github.com/php/php-src/pull/11454">GH-11454</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/11451">GH-11451</a>: Invalid associative array containing duplicate keys in <a href="https://github.com/php/php-src/pull/11453">GH-11453</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/11404">GH-11404</a>: <code>DOMDocument::savexml</code> and friends ommit <code>xmlns=""</code> declaration for null namespace, creating incorrect xml representation of the DOM in <a href="https://github.com/php/php-src/pull/11428">GH-11428</a></li>
<li>[RFC] Implement <code>mb_str_pad()</code> in <a href="https://github.com/php/php-src/pull/11284">GH-11284</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/11507">GH-11507</a>: String concatenation performance regression in 8.3 in <a href="https://github.com/php/php-src/pull/11508">GH-11508</a></li>
<li>Fix interrupted CLI output causing the process to exit in <a href="https://github.com/php/php-src/pull/11510">GH-11510</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/11514">GH-11514</a>: PHP 8.3 build fails with <code>--enable-mbstring</code> enabled in <a href="https://github.com/php/php-src/pull/11516">GH-11516</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/11498">GH-11498</a>: SIGCHLD is not always returned from <code>proc_open</code> in <a href="https://github.com/php/php-src/pull/11509">GH-11509</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/11529">GH-11529</a>: Crash after dealing with an Apache request in <a href="https://github.com/php/php-src/pull/11530">GH-11530</a></li>
<li>Add missing cache invalidation in <code>dom_child_replace_with()</code> in <a href="https://github.com/php/php-src/commit/8904ac7fef">PHP Source</a></li>
<li>Fix <a href="https://bugs.php.net/bug.php?id=80332">#80332</a>: Completely broken array access functionality with DOMNamedNodeMap in <a href="https://github.com/php/php-src/pull/11468">PHP Source</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/11455">GH-11455</a>: Segmentation fault with custom object date properties in <a href="https://github.com/php/php-src/pull/11473">PHP Source</a></li>
<li>Revert changes to <code>DOMAttr::$value</code> and <code>DOMAttr::$nodeValue</code> expansion in <a href="https://github.com/php/php-src/pull/11469">PHP Source</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/11408">GH-11408</a>: Unable to build PHP 8.3.0 alpha 1 / fileinfo extension in <a href="https://github.com/php/php-src/pull/11505">GH-11505</a></li>
<li>Add missing <code>WUNTRACED</code> in <a href="https://github.com/php/php-src/pull/11526">GH-11526</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/11500">GH-11500</a>: Namespace reuse in createElementNS() generates wrong output in <a href="https://github.com/php/php-src/pull/11528">GH-11528</a></li>
</ul>

<h3 id="david-carlier">David CARLIER</h3>

<ul>
<li><code>ext/pgsql</code>: <code>php_pgsql_convert</code> converts <code>E_NOTICE</code> to <code>TypeError</code>/<code>ValueError</code> exceptions in <a href="https://github.com/php/php-src/commit/16a63d7b07">16a63d7b07</a></li>
<li><code>ext/pgsql</code>: adding pg_set_error_context_visibility in <a href="https://github.com/php/php-src/commit/dd8514a0bd">dd8514a0bd</a></li>
<li><code>ext/pdo_pgsql</code>: connection status update to distinguish from truly bad quality connections in <a href="https://github.com/php/php-src/commit/ec3daea1d6">ec3daea1d6</a></li>
<li>Fix PGtrace invalid free issue in <a href="https://github.com/php/php-src/commit/f194cdf852"><code>ext/pgsql</code></a></li>
<li><code>imagerotate</code> removes <code>ignore_transparent</code> argument in <a href="https://github.com/php/php-src/commit/b0d8c10fd9"><code>ext/gd</code></a></li>
</ul>

<h3 id="tim-starling">Tim Starling</h3>

<ul>
<li>Set <code>DOMAttr::$value</code> without expanding entities in <a href="https://github.com/php/php-src/commit/50fdad8325">50fdad8325</a></li>
<li>Factor out <code>dom_remove_all_children()</code> in <a href="https://github.com/php/php-src/commit/74910b1403">74910b1403</a></li>
<li>Don't add 1 when calling <code>xmlNodeSetContent()</code> in <a href="https://github.com/php/php-src/commit/ee68c22128">ee68c22128</a></li>
<li>Also avoid entity expansion in <code>DOMAttr::$nodeValue</code> in <a href="https://github.com/php/php-src/commit/076ddf2b05">076ddf2b05</a></li>
<li>Changelog notes for <code>DOMAttr</code> value and nodeValue properties in <a href="https://github.com/php/php-src/commit/0cc028c374">0cc028c374</a></li>
<li>Improve test <code>DOMAttr_entity_expansion.phpt</code> in <a href="https://github.com/php/php-src/commit/ab77485890">ab77485890</a></li>
<li>When running FPM tests, pass <code>-n</code> option to <code>php-fpm</code> in <a href="https://github.com/php/php-src/pull/11373">GH-11373</a></li>
</ul>

<h2 id="dmitry-stogov">Dmitry Stogov</h2>

<ul>
<li>Fixed deoptimization info for interrupt handler in <a href="https://github.com/php/php-src/commit/8f06febedf">8f06febedf</a></li>
<li>Keep consistent <code>EG(current_execute_data)</code> after return from generator in <a href="https://github.com/php/php-src/pull/11380">GH-11380</a></li>
<li>Fixed incorrect VM stack overflow checks elimination in <a href="https://github.com/php/php-src/commit/1a96d64828">1a96d64828</a></li>
</ul>

<h2 id="jakub-zelenka-%F0%9F%92%9C">Jakub Zelenka 💜</h2>

<ul>
<li>Update NEWS for PHP 8.3.0alpha1 in <a href="https://github.com/php/php-src/commit/5b430a25fa">5b430a25fa</a></li>
<li>Fix CS and checking for IPv6 SAN verify in <a href="https://github.com/php/php-src/commit/3fc013b2e2">3fc013b2e2</a></li>
<li>Fix <a href="https://github.com/php/php-src/issues/10406">GH-10406</a>: fgets on a redis socket connection fails on PHP 8.3 in <a href="https://github.com/php/php-src/pull/11421">GH-11421</a></li>
<li>FPM: Add "pcntl" when running another test depending on pcntl in <a href="https://github.com/php/php-src/commit/9b18466396">9b18466396</a></li>
</ul>

<h2 id="remi-collet">Remi Collet</h2>

<ul>
<li>Fix <a href="https://github.com/php/php-src/issues/11382">GH-11382</a> add missing hash header for bin2hex in <a href="https://github.com/php/php-src/commit/0572448263">0572448263</a></li>
<li>Ensure <code>session.sid_length</code> have proper value for test in <a href="https://github.com/php/php-src/commit/0561783903">0561783903</a></li>
<li>Check <code>PQsetErrorContextVisibility</code> availability <code>(libpq &gt;= 9.6)</code> in <a href="https://github.com/php/php-src/commit/21aaf3321f">21aaf3321f</a></li>
<li>adapt test expectation with libzip 1.10 in <a href="https://github.com/php/php-src/commit/b972af9589">b972af9589</a></li>
<li>zip extension version 1.22.0 for libzip 1.10.0 in <a href="https://github.com/php/php-src/commit/b5638a1202">b5638a1202</a></li>
<li>NEWS and UPGRADING for zip 1.22.0 in <a href="https://github.com/php/php-src/commit/ddb6cadb4c">ddb6cadb4c</a></li>
</ul>

<h3 id="pierrick-charron">Pierrick Charron</h3>

<ul>
<li>Update NEWS in <a href="https://github.com/php/php-src/commit/b720ab99f8">b720ab99f8</a></li>
</ul>

<h3 id="ben-ramsey">Ben Ramsey</h3>

<ul>
<li>Add example commit message to release process doc in <a href="https://github.com/php/php-src/commit/938ebb3b61">938ebb3b61</a></li>
<li>Add PHP 8.3 to release process doc; remove 7.4 in <a href="https://github.com/php/php-src/commit/ca1905116b">ca1905116b</a></li>
</ul>

<h3 id="florian-engelhardt">Florian Engelhardt</h3>

<ul>
<li>Fix initial array size in <code>gc_status()</code> in <a href="https://github.com/php/php-src/pull/11393">GH-11393</a></li>
</ul>

<h3 id="mikhail-galanin">Mikhail Galanin</h3>

<ul>
<li>Suppress warning when the test run under non-root in <a href="https://github.com/php/php-src/pull/11400">GH-11400</a></li>
<li>sapi/fpm: add "pcntl" when running test depending pcntl_sigprocmask() in <a href="https://github.com/php/php-src/commit/7ade242e28">7ade242e28</a></li>
</ul>

<h3 id="bob-weinand">Bob Weinand</h3>

<ul>
<li>Fix add/remove observer API with multiple observers installed in <a href="https://github.com/php/php-src/commit/709540ccdc">709540ccdc</a></li>
</ul>

<h3 id="peter-chun-sheng%2C-li">Peter Chun-Sheng, Li</h3>

<ul>
<li>Fix cross-compilation check in phar generation for FreeBSD in <a href="https://github.com/php/php-src/pull/11441">GH-11441</a></li>
</ul>

<h3 id="m%C3%A1t%C3%A9-kocsis-%F0%9F%92%9C">Máté Kocsis 💜</h3>

<ul>
<li>Add test for <a href="https://github.com/php/php-src/issues/11423">GH-11423</a> in <a href="https://github.com/php/php-src/commit/96ea06a1d9">96ea06a1d9</a></li>
<li>Upgrade to PHP-Parser 5.0 in <a href="https://github.com/php/php-src/commit/6dd62fb3d6">6dd62fb3d6</a></li>
</ul>

<h3 id="ilija-tovilo-%F0%9F%92%9C">Ilija Tovilo 💜</h3>

<ul>
<li>Forward shutdown exceptions to user error handlers in <a href="https://github.com/php/php-src/pull/110905">GH-110905</a></li>
<li><code>mbstring count_demerits</code> in reverse order in <a href="https://github.com/php/php-src/pull/11493">GH-11493</a></li>
<li>Fix assertion violation for invalid class const objects in const expressions in <a href="https://github.com/php/php-src/pull/11458">GH-11458</a></li>
<li>Fix arm build in <a href="https://github.com/php/php-src/pull/11501">GH-11501</a></li>
<li>Remove session ID set through <code>REQUEST_URI</code> in <a href="https://github.com/php/php-src/commit/f160eff441">f160eff441</a></li>
<li>Revert "Mangle PCRE regex cache key with JIT option" in <a href="https://github.com/php/php-src/commit/4d91665f78">4d91665f78</a></li>
</ul>

<h3 id="divinity76">divinity76</h3>

<ul>
<li>Implement <code>SKIP_(SLOW|ONLINE)_TESTS</code> in <a href="https://github.com/php/php-src/pull/11479">GH-11479</a></li>
<li>Support running testsuite with negative niceness in <a href="https://github.com/php/php-src/pull/11481">GH-11481</a></li>
</ul>

<h3 id="alex-dowad">Alex Dowad</h3>

<ul>
<li>Fix <a href="https://github.com/php/php-src/issues/11476">GH-11476</a>: crash with count_demerits negative-size-param in <a href="https://github.com/php/php-src/commit/443927e3e8">443927e3e8</a></li>
</ul>

<h3 id="eric-mann">Eric Mann</h3>

<ul>
<li>Update NEWS for PHP 8.3.0alpha2 in <a href="https://github.com/php/php-src/commit/d9e2da342a">d9e2da342a</a></li>
</ul>

<h3 id="michael-vo%C5%99%C3%AD%C5%A1ek">Michael Voříšek</h3>

<ul>
<li>Mangle PCRE regex cache key with JIT option in <a href="https://github.com/php/php-src/pull/11396">GH-11396</a></li>
</ul>

<h3 id="eater">eater</h3>

<ul>
<li>Add build scripts to "Category: Build System" label in <a href="https://github.com/php/php-src/pull/11474">GH-11474</a></li>
</ul>

<h3 id="patrick-allaert">Patrick Allaert</h3>

<ul>
<li>Fixes "GC_BENCH" is not defined in extensions including <code>zend_gc.h</code> in <a href="https://github.com/php/php-src/commit/973e9b2eec">973e9b2eec</a></li>
</ul>

<h3 id="derick-rethans-%F0%9F%92%9C">Derick Rethans 💜</h3>

<ul>
<li>Fixed <a href="https://github.com/php/php-src/issues/11368">GH-11368</a>: Date modify returns invalid datetime in <a href="https://github.com/php/php-src/commit/0747616f84">0747616f84</a></li>
</ul>

<h3 id="vinicius-dias">Vinicius Dias</h3>

<ul>
<li>Fix <a href="https://github.com/php/php-src/issues/11492">GH-11492</a>: Make test failure: <code>ext/pdo_sqlite/tests/bug_42589.phpt</code> in <a href="https://github.com/php/php-src/pull/11494">GH-11494</a></li>
</ul>

<h3 id="hanshenrik">hanshenrik</h3>

<ul>
<li>fix <code>file()</code> flags error-check in <a href="https://github.com/php/php-src/pull/11483">GH-11483</a></li>
</ul>

</details>

<p><br>
We are incredibly grateful for the commitment and dedication of all contributors. Stay tuned for next month's roundup as we continue to make PHP better together.</p>

<p><br></p>

<hr />

<h2 id="support-php-foundation">Support PHP Foundation</h2>

<p>At PHP Foundation, we support, promote, and advance the PHP language. We financially support six part-time PHP core developers to contribute to the PHP project. You can help support PHP Foundation at <a href="https://opencollective.com/phpfoundation">OpenCollective</a> or via <a href="https://github.com/sponsors/ThePHPF">GitHub Sponsors</a>.</p>

<p>A big thanks to all our sponsors — PHP Foundation is all of us!</p>

<p>Follow us on Twitter <a href="https://twitter.com/thephpf">@ThePHPF</a> to get the latest updates from the Foundation.</p>

<p>💜️ 🐘</p>

<blockquote>
  <p>PHP Roundup is prepared by Ayesh Karunaratne from <strong><a href="https://php.watch">PHP.Watch</a></strong>, a source for PHP News, Articles, Upcoming Changes, and more.</p>
</blockquote>
]]></content>
        </entry>
    </feed>