<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/vendor/feed/atom.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
                        <id>https://phptoptens.com/authors/brent-roose/feed</id>
                                <link href="https://phptoptens.com/authors/brent-roose/feed" rel="self"></link>
                                <title><![CDATA[Artisan Weekly — Author Feed]]></title>
                    
                                <subtitle>Featured links for a given author across Artisan Weekly editions.</subtitle>
                                                    <updated>2026-09-24T21:28:10+01:00</updated>
                        <entry>
            <title><![CDATA[Continuing to Move PHP Open Source Forward]]></title>
            <link rel="alternate" href="https://blog.jetbrains.com/phpstorm/2026/09/continuing-to-move-php-open-source-forward/" />
            <id>https://blog.jetbrains.com/phpstorm/2026/09/continuing-to-move-php-open-source-forward/</id>
            <author>
                <name><![CDATA[Brent Roose]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[JetBrains announces their latest round of open-source sponsorships for PHP projects, including PHPUnit, Composer, and Larabelles, demonstrating their commitment to supporting the PHP community's most impactful initiatives.]]>
            </summary>
                                    <updated>2026-09-24T21:28:10+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[No need]]></title>
            <link rel="alternate" href="https://stitcher.io/blog/no-need" />
            <id>https://stitcher.io/blog/no-need</id>
            <author>
                <name><![CDATA[Brent Roose]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[Brent explores the practical limitations of TypePHP, questioning whether a compiled PHP variant that lacks ecosystem compatibility truly addresses real developer needs, and argues that the incompatibility with existing frameworks and libraries makes it an impractical choice for production environments.]]>
            </summary>
                                    <updated>2026-09-10T16:13:34+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[PHP 8.6 First Look: What’s Coming and What’s Leaving]]></title>
            <link rel="alternate" href="https://www.youtube.com/watch?v=vmSiuI2tVQ4" />
            <id>https://www.youtube.com/watch?v=vmSiuI2tVQ4</id>
            <author>
                <name><![CDATA[Brent Roose]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[PHP 8.6 is coming this November! Brent takes a look at the most important new features and changes arriving in this release.
]]>
            </summary>
                                    <updated>2026-08-13T16:17:49+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[The New Polling API Explained: What's New in PHP 8.6]]></title>
            <link rel="alternate" href="https://www.youtube.com/watch?v=xGpGslBcoU0" />
            <id>https://www.youtube.com/watch?v=xGpGslBcoU0</id>
            <author>
                <name><![CDATA[Brent Roose]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[The New Polling API Explained: What's New in PHP 8.6]]>
            </summary>
                                    <updated>2026-08-11T10:39:54+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[What's new in PHP 8.6]]></title>
            <link rel="alternate" href="https://stitcher.io/blog/new-in-php-86" />
            <id>https://stitcher.io/blog/new-in-php-86</id>
            <author>
                <name><![CDATA[Brent Roose]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[A comprehensive overview of PHP 8.6's upcoming features including partial function application, readonly property defaults, a new polling API, and the clamp function. The release is scheduled for November 19, 2026.]]>
            </summary>
                                    <updated>2026-08-06T16:30:22+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[PHP needs structs, what do you think?]]></title>
            <link rel="alternate" href="https://www.youtube.com/watch?v=nwoIavIcXKY" />
            <id>https://www.youtube.com/watch?v=nwoIavIcXKY</id>
            <author>
                <name><![CDATA[Brent Roose]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[Structs, do we need them in PHP. Does the new Primary Constructors RFC take things a bit to far and should we strip back and bring in Structs Brent gives his thoughts on this.]]>
            </summary>
                                    <updated>2026-07-16T15:27:37+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[PHP Annotated]]></title>
            <link rel="alternate" href="https://www.youtube.com/watch?v=TGei2LNPHq8" />
            <id>https://www.youtube.com/watch?v=TGei2LNPHq8</id>
            <author>
                <name><![CDATA[Brent Roose]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[Brent shows us how to build an API with Tempest his PHP Framework.]]>
            </summary>
                                    <updated>2026-07-02T17:58:33+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[A generic tragedy]]></title>
            <link rel="alternate" href="https://tempestphp.com/blog/a-generic-tragedy" />
            <id>https://tempestphp.com/blog/a-generic-tragedy</id>
            <author>
                <name><![CDATA[Brent Roose]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[Brent Roose and other PHP developers share their perspectives on why runtime-erased generics are essential for PHP's future, highlighting how the community has been using them in comments for years and why formalising this syntax matters for modern development workflows.]]>
            </summary>
                                    <updated>2026-06-18T15:31:54+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Getting started with Tempest, the PHP framework that gets out your way]]></title>
            <link rel="alternate" href="https://www.youtube.com/watch?v=tK3u5KzDI2A" />
            <id>https://www.youtube.com/watch?v=tK3u5KzDI2A</id>
            <author>
                <name><![CDATA[Brent Roose]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[Brent walks us through getting started with Tempest, installing it in an empty directory and building out a small application.]]>
            </summary>
                                    <updated>2026-06-04T14:57:49+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[The final boss. Generics in PHP]]></title>
            <link rel="alternate" href="https://www.youtube.com/watch?v=4wpW98S2xJQ" />
            <id>https://www.youtube.com/watch?v=4wpW98S2xJQ</id>
            <author>
                <name><![CDATA[Brent Roose]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[Brent goes through the latest Generics RFC that has been submitted. Let's see what he thinks and will we actually get it coming to a PHP near you.]]>
            </summary>
                                    <updated>2026-05-28T16:22:46+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[The Ecosystem Security Team at The PHP Foundation]]></title>
            <link rel="alternate" href="https://www.youtube.com/watch?v=ftiw3_bc2ng" />
            <id>https://www.youtube.com/watch?v=ftiw3_bc2ng</id>
            <author>
                <name><![CDATA[Brent Roose]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[The PHPFoundation have recently received a grant to invest in security which is a great thing. Brent sits down and talks to Volker about his new role for the next 6 months.]]>
            </summary>
                                    <updated>2026-05-21T16:06:25+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Are multiline short closures coming to PHP?]]></title>
            <link rel="alternate" href="https://www.youtube.com/watch?v=bYnJA9qt_94" />
            <id>https://www.youtube.com/watch?v=bYnJA9qt_94</id>
            <author>
                <name><![CDATA[Brent Roose]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[Are we finally going to get Multiline Short Closures in PHP???  A new RFC has landed and Brent walks us through it. Will this finally be the time.]]>
            </summary>
                                    <updated>2026-05-21T15:13:36+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Are the PHP docs really THAT bad?]]></title>
            <link rel="alternate" href="https://www.youtube.com/watch?v=lOWEBdYDswo" />
            <id>https://www.youtube.com/watch?v=lOWEBdYDswo</id>
            <author>
                <name><![CDATA[Brent Roose]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[Brent takes a look at the state of the current PHP Docs to see how easy they are for a newcomer to get up and running, comparing them to other languages docs and ease of use. ]]>
            </summary>
                                    <updated>2026-05-14T15:19:50+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[More dependency considerations]]></title>
            <link rel="alternate" href="https://stitcher.io/blog/more-depedency-considerations" />
            <id>https://stitcher.io/blog/more-depedency-considerations</id>
            <author>
                <name><![CDATA[Brent Roose]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[A follow-up discussion on managing project dependencies, addressing concerns from the Paragon team about removing sodium_compat dependencies and the potential security implications. The post explores the balance between reducing unnecessary dependencies and maintaining compatibility across different server environments.]]>
            </summary>
                                    <updated>2026-04-07T14:18:07+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Dependency Hygiene]]></title>
            <link rel="alternate" href="https://stitcher.io/blog/dependency-hygiene" />
            <id>https://stitcher.io/blog/dependency-hygiene</id>
            <author>
                <name><![CDATA[Brent Roose]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[An insightful analysis of how PHP developers often include unnecessary polyfill dependencies in their projects, with a study showing 15% of scanned packages had unused compatibility libraries. The post explores ways to practice better dependency hygiene and includes practical tips for identifying and removing redundant packages using Composer's replace feature.]]>
            </summary>
                                    <updated>2026-04-09T15:25:56+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[PHP Foundation Director interview]]></title>
            <link rel="alternate" href="https://www.youtube.com/watch?v=x_KmbLtQiJ0" />
            <id>https://www.youtube.com/watch?v=x_KmbLtQiJ0</id>
            <author>
                <name><![CDATA[Brent Roose]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[Today I'm joined by Elizabeth Barron, the new PHP Foundation Director, to talk about PHP, the Foundation, and the future.
]]>
            </summary>
                                    <updated>2026-03-25T08:27:29+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[100-million-row challenge]]></title>
            <link rel="alternate" href="https://github.com/tempestphp/100-million-row-challenge" />
            <id>https://github.com/tempestphp/100-million-row-challenge</id>
            <author>
                <name><![CDATA[Brent Roose]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[We all read the original blog post by Brent well now he's turned it into a challenge and its a great one. See how quickly you can parse 100 million CSV rows of page visit data into optimised JSON format as quickly as possible. The two-week competition offers prizes from PhpStorm and Tideways for the fastest solutions, encouraging developers to explore high-performance PHP techniques.]]>
            </summary>
                                    <updated>2026-02-27T07:50:41+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Once again processing 11 million rows, now in seconds]]></title>
            <link rel="alternate" href="https://stitcher.io/blog/11-million-rows-in-seconds" />
            <id>https://stitcher.io/blog/11-million-rows-in-seconds</id>
            <author>
                <name><![CDATA[Brent Roose]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[Brent continues his optimisation journey from his post last week. This week he's stepped it up and improving PHP database processing performance from 50k to 1.7MILLION events per second through combined inserts, moving calculations to PHP, and fine-tuning queries. Another great deep dive into practical performance optimisation techniques that any Laravel developer can apply to their own database-heavy operations and who knows maybe you can take those slow jobs into lightning fast ones.]]>
            </summary>
                                    <updated>2026-02-06T08:37:52+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Processing MILLIONS OF ROWS in PHP in MINUTES instead of DAYS]]></title>
            <link rel="alternate" href="https://www.youtube.com/watch?v=GY4RIj_zn1M" />
            <id>https://www.youtube.com/watch?v=GY4RIj_zn1M</id>
            <author>
                <name><![CDATA[Brent Roose]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[Brent has created a video on his lastest post how he improved his processing scripts allowing him to go from 30 events per second to millions per minute, taking it from days to minutes! If you want to learn how you might be able to make small incremental changes to your processing code give this video a watch its got some nice tips.]]>
            </summary>
                                    <updated>2026-02-06T08:39:08+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Processing 11 million rows in minutes instead of hours]]></title>
            <link rel="alternate" href="https://stitcher.io/blog/processing-11-million-rows" />
            <id>https://stitcher.io/blog/processing-11-million-rows</id>
            <author>
                <name><![CDATA[Brent Roose]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[A detailed walkthrough of optimizing a Laravel event sourcing system that processes 11 million analytics records, showing how to improve performance from 30 events per second to much faster processing speeds. The post covers practical techniques like removing unnecessary sorting, optimizing database queries, and rebuilding projectors efficiently.]]>
            </summary>
                                    <updated>2026-02-06T08:40:00+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[The action pattern Explained]]></title>
            <link rel="alternate" href="https://t.ly/wRIlV" />
            <id>https://t.ly/wRIlV</id>
            <author>
                <name><![CDATA[Brent Roose]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[The action pattern Explained]]>
            </summary>
                                    <updated>2026-01-15T07:46:33+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[PHP 8.4 Property Hooks, Asymmetric Visibility, Lazy Objects and More]]></title>
            <link rel="alternate" href="https://t.ly/88Fkp" />
            <id>https://t.ly/88Fkp</id>
            <author>
                <name><![CDATA[Brent Roose]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[PHP 8.4 Property Hooks, Asymmetric Visibility, Lazy Objects and More]]>
            </summary>
                                    <updated>2026-01-22T11:27:09+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[An overview of PHP 8.5's pipe operator]]></title>
            <link rel="alternate" href="https://t.ly/PGbfP" />
            <id>https://t.ly/PGbfP</id>
            <author>
                <name><![CDATA[Brent Roose]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[An overview of PHP 8.5's pipe operator]]>
            </summary>
                                    <updated>2026-01-13T22:57:38+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Compile-time generics in PHP???]]></title>
            <link rel="alternate" href="https://t.ly/d0EFZ" />
            <id>https://t.ly/d0EFZ</id>
            <author>
                <name><![CDATA[Brent Roose]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[we have Brent Roose with "Compile-time generics in PHP???" - 📽️ -]]>
            </summary>
                                    <updated>2026-01-15T07:46:32+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Building a procedurally generated game with PHP]]></title>
            <link rel="alternate" href="https://t.ly/n21jB" />
            <id>https://t.ly/n21jB</id>
            <author>
                <name><![CDATA[Brent Roose]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[its Brent Roose with "Building a procedurally generated game with PHP" -]]>
            </summary>
                                    <updated>2026-01-22T15:02:00+00:00</updated>
        </entry>
    </feed>
