<?xml version="1.0" encoding="UTF-8"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/"><category term="PHP" label="r/PHP"/><updated>2026-05-29T18:18:55+00:00</updated><icon>https://www.redditstatic.com/icon.png/</icon><id>/r/PHP/.rss</id><link rel="self" href="https://www.reddit.com/r/PHP/.rss" type="application/atom+xml" /><link rel="alternate" href="https://www.reddit.com/r/PHP/" type="text/html" /><subtitle>Share and discover the latest news about the PHP ecosystem and its community. Please respect r/php's rules.</subtitle><title>PHP: The latest news in the PHP world</title><entry><author><name>/u/brendt_gd</name><uri>https://www.reddit.com/user/brendt_gd</uri></author><category term="PHP" label="r/PHP"/><content type="html">&lt;!-- SC_OFF --&gt;&lt;div class=&quot;md&quot;&gt;&lt;p&gt;Hey there!&lt;/p&gt; &lt;p&gt;This subreddit isn&amp;#39;t meant for help threads, though there&amp;#39;s one exception to the rule: in this thread you can ask anything you want PHP related, someone will probably be able to help you out!&lt;/p&gt; &lt;/div&gt;&lt;!-- SC_ON --&gt; &amp;#32; submitted by &amp;#32; &lt;a href=&quot;https://www.reddit.com/user/brendt_gd&quot;&gt; /u/brendt_gd &lt;/a&gt; &lt;br/&gt; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1tn04he/weekly_help_thread/&quot;&gt;[link]&lt;/a&gt;&lt;/span&gt; &amp;#32; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1tn04he/weekly_help_thread/&quot;&gt;[comments]&lt;/a&gt;&lt;/span&gt;</content><id>t3_1tn04he</id><link href="https://www.reddit.com/r/PHP/comments/1tn04he/weekly_help_thread/" /><updated>2026-05-25T06:00:06+00:00</updated><published>2026-05-25T06:00:06+00:00</published><title>Weekly help thread</title></entry><entry><author><name>/u/brendt_gd</name><uri>https://www.reddit.com/user/brendt_gd</uri></author><category term="PHP" label="r/PHP"/><content type="html">&lt;!-- SC_OFF --&gt;&lt;div class=&quot;md&quot;&gt;&lt;p&gt;This is a bi-monthly thread aimed to connect PHP companies and developers who are hiring or looking for a job. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Rules&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;No recruiters&lt;/li&gt; &lt;li&gt;Don&amp;#39;t share any personal info like email addresses or phone numbers in this thread. Contact each other via DM to get in touch&lt;/li&gt; &lt;li&gt;If you&amp;#39;re hiring: don&amp;#39;t just link to an external website, take the time to describe what you&amp;#39;re looking for in the thread.&lt;/li&gt; &lt;li&gt;If you&amp;#39;re looking: feel free to share your portfolio, GitHub, … as well. Keep into account the personal information rule, so don&amp;#39;t just share your CV and be done with it.&lt;/li&gt; &lt;/ul&gt; &lt;/div&gt;&lt;!-- SC_ON --&gt; &amp;#32; submitted by &amp;#32; &lt;a href=&quot;https://www.reddit.com/user/brendt_gd&quot;&gt; /u/brendt_gd &lt;/a&gt; &lt;br/&gt; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1thg2cy/whos_hiringlooking/&quot;&gt;[link]&lt;/a&gt;&lt;/span&gt; &amp;#32; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1thg2cy/whos_hiringlooking/&quot;&gt;[comments]&lt;/a&gt;&lt;/span&gt;</content><id>t3_1thg2cy</id><link href="https://www.reddit.com/r/PHP/comments/1thg2cy/whos_hiringlooking/" /><updated>2026-05-19T08:00:13+00:00</updated><published>2026-05-19T08:00:13+00:00</published><title>Who's hiring/looking</title></entry><entry><author><name>/u/wouter_j</name><uri>https://www.reddit.com/user/wouter_j</uri></author><category term="PHP" label="r/PHP"/><content type="html">&amp;#32; submitted by &amp;#32; &lt;a href=&quot;https://www.reddit.com/user/wouter_j&quot;&gt; /u/wouter_j &lt;/a&gt; &lt;br/&gt; &lt;span&gt;&lt;a href=&quot;https://symfony.com/blog/symfony-8-1-curated-new-features&quot;&gt;[link]&lt;/a&gt;&lt;/span&gt; &amp;#32; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1tra1ci/symfony_81_released/&quot;&gt;[comments]&lt;/a&gt;&lt;/span&gt;</content><id>t3_1tra1ci</id><link href="https://www.reddit.com/r/PHP/comments/1tra1ci/symfony_81_released/" /><updated>2026-05-29T17:58:00+00:00</updated><published>2026-05-29T17:58:00+00:00</published><title>Symfony 8.1 released!</title></entry><entry><author><name>/u/True_Musician_3911</name><uri>https://www.reddit.com/user/True_Musician_3911</uri></author><category term="PHP" label="r/PHP"/><content type="html">&lt;!-- SC_OFF --&gt;&lt;div class=&quot;md&quot;&gt;&lt;ol&gt; &lt;li&gt;Version tags on &lt;a href=&quot;http://Packagist.org&quot;&gt;Packagist.org&lt;/a&gt; are now immutable — the exact trick the attacker used to rewrite tags to their malicious fork is now rejected at the registry level.&lt;/li&gt; &lt;li&gt;Also: composer install now blocks malware even if it already slipped into your lockfile, &lt;/li&gt; &lt;li&gt;and composer audit now fails on flagged malware versions.&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;run: composer self-update to update&lt;/p&gt; &lt;p&gt;full breakdown: &lt;a href=&quot;https://medium.com/@abderahmane.merradou/update-composer-now-version-2-10-blocks-the-exact-attack-that-hit-laravel-on-may-22-a46e54bdbefd&quot;&gt;https://medium.com/@abderahmane.merradou/update-composer-now-version-2-10-blocks-the-exact-attack-that-hit-laravel-on-may-22-a46e54bdbefd&lt;/a&gt;&lt;/p&gt; &lt;/div&gt;&lt;!-- SC_ON --&gt; &amp;#32; submitted by &amp;#32; &lt;a href=&quot;https://www.reddit.com/user/True_Musician_3911&quot;&gt; /u/True_Musician_3911 &lt;/a&gt; &lt;br/&gt; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1tq87zh/composer_210_just_dropped_it_directly_addresses/&quot;&gt;[link]&lt;/a&gt;&lt;/span&gt; &amp;#32; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1tq87zh/composer_210_just_dropped_it_directly_addresses/&quot;&gt;[comments]&lt;/a&gt;&lt;/span&gt;</content><id>t3_1tq87zh</id><link href="https://www.reddit.com/r/PHP/comments/1tq87zh/composer_210_just_dropped_it_directly_addresses/" /><updated>2026-05-28T16:14:36+00:00</updated><published>2026-05-28T16:14:36+00:00</published><title>Composer 2.10 just dropped — it directly addresses the May 22 attack.</title></entry><entry><author><name>/u/Informal-Coyote9142</name><uri>https://www.reddit.com/user/Informal-Coyote9142</uri></author><category term="PHP" label="r/PHP"/><content type="html">&lt;!-- SC_OFF --&gt;&lt;div class=&quot;md&quot;&gt;&lt;pre&gt;&lt;code&gt;I just shipped my second Laravel package: Notify Matrix. It manages per-user notification preferences with per-channel opt-in/opt-out and per-group default policies. The pattern came from rebuilding the same notification settings logic in every SaaS I&amp;#39;ve worked on. The question is always &amp;quot;should this user receive this notification on this channel?&amp;quot; and the answer is always a hand-rolled mess of config arrays and `if/else` in `via()`. Usage: // User model use Scabarcas\LaravelNotifyMatrix\Concerns\HasNotificationPreferences; class User extends Authenticatable { use HasNotificationPreferences; } // Notification class use Scabarcas\LaravelNotifyMatrix\Attributes\NotificationGroup; #[NotificationGroup(&amp;#39;orders&amp;#39;)] class OrderShipped extends Notification { /* ... */ } // Anywhere $user-&amp;gt;wants(&amp;#39;orders&amp;#39;, &amp;#39;mail&amp;#39;); // true | false $user-&amp;gt;disable(&amp;#39;orders&amp;#39;, &amp;#39;mail&amp;#39;); $user-&amp;gt;enable(&amp;#39;orders&amp;#39;, &amp;#39;database&amp;#39;); A listener on `NotificationSending` filters channels automatically — no changes to your existing `via()` methods. Forced channels (security alerts) bypass user preferences. Third-party notifications without an attribute can be mapped via config. Architecture is intentionally boring: `PreferenceManager` orchestrates resolution, `PreferenceRepository` and `GroupResolver` are contracts you can swap. Pest 27/27, PHPStan max clean, Laravel 11/12/13, PHP 8.3/8.4. - Repo: https://github.com/scabarcas17/laravel-notify-matrix - Packagist: https://packagist.org/packages/scabarcas/laravel-notify-matrix Would love feedback on the API — especially if you&amp;#39;ve shipped notification settings before. What did you miss? &lt;/code&gt;&lt;/pre&gt; &lt;/div&gt;&lt;!-- SC_ON --&gt; &amp;#32; submitted by &amp;#32; &lt;a href=&quot;https://www.reddit.com/user/Informal-Coyote9142&quot;&gt; /u/Informal-Coyote9142 &lt;/a&gt; &lt;br/&gt; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1tr6wel/laravel_notify_matrix_peruser_notification/&quot;&gt;[link]&lt;/a&gt;&lt;/span&gt; &amp;#32; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1tr6wel/laravel_notify_matrix_peruser_notification/&quot;&gt;[comments]&lt;/a&gt;&lt;/span&gt;</content><id>t3_1tr6wel</id><link href="https://www.reddit.com/r/PHP/comments/1tr6wel/laravel_notify_matrix_peruser_notification/" /><updated>2026-05-29T16:16:43+00:00</updated><published>2026-05-29T16:16:43+00:00</published><title>Laravel Notify Matrix — per-user notification preferences package</title></entry><entry><author><name>/u/naderman</name><uri>https://www.reddit.com/user/naderman</uri></author><category term="PHP" label="r/PHP"/><content type="html">&amp;#32; submitted by &amp;#32; &lt;a href=&quot;https://www.reddit.com/user/naderman&quot;&gt; /u/naderman &lt;/a&gt; &lt;br/&gt; &lt;span&gt;&lt;a href=&quot;https://blog.packagist.com/composer-2-10-release/&quot;&gt;[link]&lt;/a&gt;&lt;/span&gt; &amp;#32; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1tq0odb/composer_210_release/&quot;&gt;[comments]&lt;/a&gt;&lt;/span&gt;</content><id>t3_1tq0odb</id><link href="https://www.reddit.com/r/PHP/comments/1tq0odb/composer_210_release/" /><updated>2026-05-28T11:22:22+00:00</updated><published>2026-05-28T11:22:22+00:00</published><title>Composer 2.10 Release</title></entry><entry><author><name>/u/BackgroundCompany721</name><uri>https://www.reddit.com/user/BackgroundCompany721</uri></author><category term="PHP" label="r/PHP"/><content type="html">&lt;!-- SC_OFF --&gt;&lt;div class=&quot;md&quot;&gt;&lt;p&gt;Last week, I posted here about a minimal TUI/GUI tool I built (&lt;code&gt;phpvm&lt;/code&gt;) to make switching PHP versions on Linux easier. The feedback was great, but one comment by &lt;a href=&quot;/u/rycegh&quot;&gt;u/rycegh&lt;/a&gt; completely changed the direction of the project.&lt;/p&gt; &lt;p&gt;A fundamental flaw: relying on &lt;code&gt;update-alternatives&lt;/code&gt; to change the global PHP binary is a bad pattern. It means you cannot work on two different projects on different versions in parallel, and switching global PHP knocks over unrelated background CLI tools (like global time trackers).&lt;/p&gt; &lt;p&gt;Suggested pivoting was to manage isolated local environments instead.&lt;/p&gt; &lt;p&gt;That feedback inspired me to rewrite the architecture from scratch for the 2.5 line. The v2.5.1 is live with fully isolated, per-shell version switching.&lt;/p&gt; &lt;h3&gt;How the New Architecture Works&lt;/h3&gt; &lt;p&gt;Instead of touching &lt;code&gt;/usr/bin/php&lt;/code&gt; globally, phpvm now functions like &lt;code&gt;nvm&lt;/code&gt; or &lt;code&gt;rbenv&lt;/code&gt;:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;strong&gt;Shell Hook&lt;/strong&gt;: The installer adds a shell hook (for bash, zsh, or fish) that prepends a shim directory to your &lt;code&gt;PATH&lt;/code&gt;.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Path Shim&lt;/strong&gt;: A small executable shim at &lt;code&gt;&amp;lt;hook-dir&amp;gt;/shims/php&lt;/code&gt; intercepts calls to &lt;code&gt;php&lt;/code&gt;.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Environment Resolution&lt;/strong&gt;: &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Shell Pin&lt;/strong&gt;: Pinned manually via &lt;code&gt;phpvm shell &amp;lt;version&amp;gt;&lt;/code&gt; (sticky for that terminal tab only, no sudo).&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Project Default&lt;/strong&gt;: Read automatically from &lt;code&gt;.php-version&lt;/code&gt; or &lt;code&gt;composer.json&lt;/code&gt; requirements when you &lt;code&gt;cd&lt;/code&gt; into a directory.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Global Default&lt;/strong&gt;: Falls back to the global &lt;code&gt;update-alternatives&lt;/code&gt; symlink if no local pin exists.&lt;/li&gt; &lt;/ul&gt;&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;This means you can have PHP 8.2 running in one tab and PHP 8.4 running in another, with zero password prompts and zero impact on other shells or system processes.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Install:&lt;/strong&gt; &lt;code&gt;bash curl -fsSL https://raw.githubusercontent.com/rijverse/phpvm/main/install.sh | sudo bash &lt;/code&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Website:&lt;/strong&gt; &lt;a href=&quot;https://rijverse.github.io/phpvm&quot;&gt;https://rijverse.github.io/phpvm&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href=&quot;https://github.com/rijverse/phpvm&quot;&gt;https://github.com/rijverse/phpvm&lt;/a&gt;&lt;/p&gt; &lt;/div&gt;&lt;!-- SC_ON --&gt; &amp;#32; submitted by &amp;#32; &lt;a href=&quot;https://www.reddit.com/user/BackgroundCompany721&quot;&gt; /u/BackgroundCompany721 &lt;/a&gt; &lt;br/&gt; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1tqb80n/i_redesigned_my_php_version_manager_after_reddit/&quot;&gt;[link]&lt;/a&gt;&lt;/span&gt; &amp;#32; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1tqb80n/i_redesigned_my_php_version_manager_after_reddit/&quot;&gt;[comments]&lt;/a&gt;&lt;/span&gt;</content><id>t3_1tqb80n</id><link href="https://www.reddit.com/r/PHP/comments/1tqb80n/i_redesigned_my_php_version_manager_after_reddit/" /><updated>2026-05-28T18:00:22+00:00</updated><published>2026-05-28T18:00:22+00:00</published><title>I redesigned my PHP version manager after Reddit feedback: Per-shell switching is now live in phpvm v2.5.1 (No sudo, no global breaks)</title></entry><entry><author><name>/u/OndrejMirtes</name><uri>https://www.reddit.com/user/OndrejMirtes</uri></author><category term="PHP" label="r/PHP"/><content type="html">&amp;#32; submitted by &amp;#32; &lt;a href=&quot;https://www.reddit.com/user/OndrejMirtes&quot;&gt; /u/OndrejMirtes &lt;/a&gt; &lt;br/&gt; &lt;span&gt;&lt;a href=&quot;https://phpstan.org/blog/phpstan-2-2-unsealed-array-shapes-safer-array-keys&quot;&gt;[link]&lt;/a&gt;&lt;/span&gt; &amp;#32; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1tpxpvc/phpstan_22_unsealed_array_shapes_safer_array_keys/&quot;&gt;[comments]&lt;/a&gt;&lt;/span&gt;</content><id>t3_1tpxpvc</id><link href="https://www.reddit.com/r/PHP/comments/1tpxpvc/phpstan_22_unsealed_array_shapes_safer_array_keys/" /><updated>2026-05-28T08:44:17+00:00</updated><published>2026-05-28T08:44:17+00:00</published><title>PHPStan 2.2: Unsealed Array Shapes, Safer Array Keys, and More!</title></entry><entry><author><name>/u/brendt_gd</name><uri>https://www.reddit.com/user/brendt_gd</uri></author><category term="PHP" label="r/PHP"/><content type="html">&amp;#32; submitted by &amp;#32; &lt;a href=&quot;https://www.reddit.com/user/brendt_gd&quot;&gt; /u/brendt_gd &lt;/a&gt; &lt;br/&gt; &lt;span&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=4wpW98S2xJQ&quot;&gt;[link]&lt;/a&gt;&lt;/span&gt; &amp;#32; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1tqzj0a/reading_through_the_new_generics_rfc_and_sharing/&quot;&gt;[comments]&lt;/a&gt;&lt;/span&gt;</content><id>t3_1tqzj0a</id><link href="https://www.reddit.com/r/PHP/comments/1tqzj0a/reading_through_the_new_generics_rfc_and_sharing/" /><updated>2026-05-29T11:55:08+00:00</updated><published>2026-05-29T11:55:08+00:00</published><title>Reading through the new generics RFC and sharing my thoughts on why this is the way.</title></entry><entry><author><name>/u/AbstractStaticVoid</name><uri>https://www.reddit.com/user/AbstractStaticVoid</uri></author><category term="PHP" label="r/PHP"/><content type="html">&lt;!-- SC_OFF --&gt;&lt;div class=&quot;md&quot;&gt;&lt;p&gt;I’m launching a book on June 15th,&lt;a href=&quot;https://leanpub.com/legacy-to-symfony&quot;&gt; Legacy to Symfony: The Enterprise Blueprint for Zero-Downtime PHP Migrations&lt;/a&gt;, which documents an end-to-end blueprint for zero-downtime, vertical-slice migrations.&lt;/p&gt; &lt;p&gt;Throughout the process, I found that standard migration tools weren&amp;#39;t enough to bridge the gap between a 10-year-old mutated schema and Doctrine ORM. So, I built &lt;a href=&quot;https://github.com/Kerrialn/indoctrinate&quot;&gt;indoctrinate&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Think of it as Rector for your database schema. It’s an open-source, rule-based audit and remediation tool designed to align your legacy database with Doctrine or simply fix database issues.&lt;/p&gt; &lt;p&gt;For example you can run the DoctrineCompatibilitySet with the dry flag to check exactly what issues are preventing Doctrine ORM integration. &lt;/p&gt; &lt;p&gt;If anyone ends up testing it against their own legacy database, I’d love to know if it misses any of your weird edge cases. Happy coding! &lt;/p&gt; &lt;/div&gt;&lt;!-- SC_ON --&gt; &amp;#32; submitted by &amp;#32; &lt;a href=&quot;https://www.reddit.com/user/AbstractStaticVoid&quot;&gt; /u/AbstractStaticVoid &lt;/a&gt; &lt;br/&gt; &lt;span&gt;&lt;a href=&quot;https://github.com/Kerrialn/indoctrinate&quot;&gt;[link]&lt;/a&gt;&lt;/span&gt; &amp;#32; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1tpx12g/rector_but_for_the_database_indoctrinate/&quot;&gt;[comments]&lt;/a&gt;&lt;/span&gt;</content><id>t3_1tpx12g</id><link href="https://www.reddit.com/r/PHP/comments/1tpx12g/rector_but_for_the_database_indoctrinate/" /><updated>2026-05-28T08:04:33+00:00</updated><published>2026-05-28T08:04:33+00:00</published><title>Rector but for the database: Indoctrinate</title></entry><entry><author><name>/u/d_abernathy89</name><uri>https://www.reddit.com/user/d_abernathy89</uri></author><category term="PHP" label="r/PHP"/><content type="html">&lt;!-- SC_OFF --&gt;&lt;div class=&quot;md&quot;&gt;&lt;p&gt;Note that the schedule this year is slightly different - just 2 days (Tutorial day + main conference days). Because of this tickets are also cheaper than previous years. Grab your ticket or submit a talk idea!&lt;/p&gt; &lt;/div&gt;&lt;!-- SC_ON --&gt; &amp;#32; submitted by &amp;#32; &lt;a href=&quot;https://www.reddit.com/user/d_abernathy89&quot;&gt; /u/d_abernathy89 &lt;/a&gt; &lt;br/&gt; &lt;span&gt;&lt;a href=&quot;https://cfp.longhornphp.com/&quot;&gt;[link]&lt;/a&gt;&lt;/span&gt; &amp;#32; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1tq67ql/call_for_papers_longhorn_php_2026/&quot;&gt;[comments]&lt;/a&gt;&lt;/span&gt;</content><id>t3_1tq67ql</id><link href="https://www.reddit.com/r/PHP/comments/1tq67ql/call_for_papers_longhorn_php_2026/" /><updated>2026-05-28T15:02:34+00:00</updated><published>2026-05-28T15:02:34+00:00</published><title>Call for Papers - Longhorn PHP 2026</title></entry><entry><author><name>/u/naderman</name><uri>https://www.reddit.com/user/naderman</uri></author><category term="PHP" label="r/PHP"/><content type="html">&amp;#32; submitted by &amp;#32; &lt;a href=&quot;https://www.reddit.com/user/naderman&quot;&gt; /u/naderman &lt;/a&gt; &lt;br/&gt; &lt;span&gt;&lt;a href=&quot;https://blog.packagist.com/an-update-on-composer-packagist-supply-chain-security/&quot;&gt;[link]&lt;/a&gt;&lt;/span&gt; &amp;#32; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1tp8sq7/an_update_on_composer_packagist_supply_chain/&quot;&gt;[comments]&lt;/a&gt;&lt;/span&gt;</content><id>t3_1tp8sq7</id><link href="https://www.reddit.com/r/PHP/comments/1tp8sq7/an_update_on_composer_packagist_supply_chain/" /><updated>2026-05-27T15:22:34+00:00</updated><published>2026-05-27T15:22:34+00:00</published><title>An Update on Composer &amp; Packagist Supply Chain Security</title></entry><entry><author><name>/u/elizabethn</name><uri>https://www.reddit.com/user/elizabethn</uri></author><category term="PHP" label="r/PHP"/><content type="html">&amp;#32; submitted by &amp;#32; &lt;a href=&quot;https://www.reddit.com/user/elizabethn&quot;&gt; /u/elizabethn &lt;/a&gt; &lt;br/&gt; &lt;span&gt;&lt;a href=&quot;https://thephp.foundation/blog/2026/05/27/impact-and-transparency-report-2025/&quot;&gt;[link]&lt;/a&gt;&lt;/span&gt; &amp;#32; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1tpg6ay/the_php_foundation_impact_and_transparency_report/&quot;&gt;[comments]&lt;/a&gt;&lt;/span&gt;</content><id>t3_1tpg6ay</id><link href="https://www.reddit.com/r/PHP/comments/1tpg6ay/the_php_foundation_impact_and_transparency_report/" /><updated>2026-05-27T19:36:59+00:00</updated><published>2026-05-27T19:36:59+00:00</published><title>The PHP Foundation Impact and Transparency Report 2025</title></entry><entry><author><name>/u/7ncyy</name><uri>https://www.reddit.com/user/7ncyy</uri></author><category term="PHP" label="r/PHP"/><content type="html">&lt;!-- SC_OFF --&gt;&lt;div class=&quot;md&quot;&gt;&lt;p&gt;I&amp;#39;m tired of switching to the browser or opening Ray to see my dumps. I&amp;#39;m building a VS Code extension that renders Laravel payloads inline. Would anyone pay $30/yr for this?&lt;/p&gt; &lt;/div&gt;&lt;!-- SC_ON --&gt; &amp;#32; submitted by &amp;#32; &lt;a href=&quot;https://www.reddit.com/user/7ncyy&quot;&gt; /u/7ncyy &lt;/a&gt; &lt;br/&gt; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1tqltfs/vs_code_cursor_extension/&quot;&gt;[link]&lt;/a&gt;&lt;/span&gt; &amp;#32; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1tqltfs/vs_code_cursor_extension/&quot;&gt;[comments]&lt;/a&gt;&lt;/span&gt;</content><id>t3_1tqltfs</id><link href="https://www.reddit.com/r/PHP/comments/1tqltfs/vs_code_cursor_extension/" /><updated>2026-05-29T00:39:00+00:00</updated><published>2026-05-29T00:39:00+00:00</published><title>VS Code / Cursor Extension</title></entry><entry><author><name>/u/yoeriboven</name><uri>https://www.reddit.com/user/yoeriboven</uri></author><category term="PHP" label="r/PHP"/><content type="html">&amp;#32; submitted by &amp;#32; &lt;a href=&quot;https://www.reddit.com/user/yoeriboven&quot;&gt; /u/yoeriboven &lt;/a&gt; &lt;br/&gt; &lt;span&gt;&lt;a href=&quot;https://yoeri.me/blog/automate-your-php-security-updates&quot;&gt;[link]&lt;/a&gt;&lt;/span&gt; &amp;#32; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1tqe5j1/automate_your_php_security_updates/&quot;&gt;[comments]&lt;/a&gt;&lt;/span&gt;</content><id>t3_1tqe5j1</id><link href="https://www.reddit.com/r/PHP/comments/1tqe5j1/automate_your_php_security_updates/" /><updated>2026-05-28T19:44:22+00:00</updated><published>2026-05-28T19:44:22+00:00</published><title>Automate your PHP security updates</title></entry><entry><author><name>/u/nyamsprod</name><uri>https://www.reddit.com/user/nyamsprod</uri></author><category term="PHP" label="r/PHP"/><content type="html">&lt;!-- SC_OFF --&gt;&lt;div class=&quot;md&quot;&gt;&lt;p&gt;Tokei is a PHP library dedicated to time-of-day handling, circular intervals and durations — all with microsecond precision and a developer-friendly API. It brings proper abstractions for modeling opening hours, night shifts, and any logic that crosses midnight.&lt;/p&gt; &lt;/div&gt;&lt;!-- SC_ON --&gt; &amp;#32; submitted by &amp;#32; &lt;a href=&quot;https://www.reddit.com/user/nyamsprod&quot;&gt; /u/nyamsprod &lt;/a&gt; &lt;br/&gt; &lt;span&gt;&lt;a href=&quot;https://nyamsprod.com/blog/tokei-a-time-handling-library-for-php/&quot;&gt;[link]&lt;/a&gt;&lt;/span&gt; &amp;#32; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1tp650w/tokei_a_time_handling_library_for_php/&quot;&gt;[comments]&lt;/a&gt;&lt;/span&gt;</content><id>t3_1tp650w</id><link href="https://www.reddit.com/r/PHP/comments/1tp650w/tokei_a_time_handling_library_for_php/" /><updated>2026-05-27T13:48:42+00:00</updated><published>2026-05-27T13:48:42+00:00</published><title>Tokei, a Time handling library for PHP</title></entry><entry><author><name>/u/arhimedosin</name><uri>https://www.reddit.com/user/arhimedosin</uri></author><category term="PHP" label="r/PHP"/><content type="html">&lt;!-- SC_OFF --&gt;&lt;div class=&quot;md&quot;&gt;&lt;p&gt;I know that middlewares has been around forever, but I can&amp;#39;t find a graph that properly explains the flow of a request in a middleware application.&lt;/p&gt; &lt;p&gt;In this article I tried to highlight each step in the flow, from the request, to the middleware pipeline (a simplified version), and the response.&lt;/p&gt; &lt;p&gt;It&amp;#39;s focused on our Dotkernel Light, but it should be similar for other applications.&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;https://www.dotkernel.com/architecture/request-lifecycle-for-a-mezzio-based-application/&quot;&gt;https://www.dotkernel.com/architecture/request-lifecycle-for-a-mezzio-based-application/&lt;/a&gt;&lt;/p&gt; &lt;/div&gt;&lt;!-- SC_ON --&gt; &amp;#32; submitted by &amp;#32; &lt;a href=&quot;https://www.reddit.com/user/arhimedosin&quot;&gt; /u/arhimedosin &lt;/a&gt; &lt;br/&gt; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1tp203o/what_does_the_middleware_request_lifecycle_really/&quot;&gt;[link]&lt;/a&gt;&lt;/span&gt; &amp;#32; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1tp203o/what_does_the_middleware_request_lifecycle_really/&quot;&gt;[comments]&lt;/a&gt;&lt;/span&gt;</content><id>t3_1tp203o</id><link href="https://www.reddit.com/r/PHP/comments/1tp203o/what_does_the_middleware_request_lifecycle_really/" /><updated>2026-05-27T10:52:44+00:00</updated><published>2026-05-27T10:52:44+00:00</published><title>What does the middleware request lifecycle really look like?</title></entry><entry><author><name>/u/Euphoric_Crazy_5773</name><uri>https://www.reddit.com/user/Euphoric_Crazy_5773</uri></author><category term="PHP" label="r/PHP"/><content type="html">&lt;!-- SC_OFF --&gt;&lt;div class=&quot;md&quot;&gt;&lt;p&gt;Oh no, what about principle of least privilege?&lt;/p&gt; &lt;/div&gt;&lt;!-- SC_ON --&gt; &amp;#32; submitted by &amp;#32; &lt;a href=&quot;https://www.reddit.com/user/Euphoric_Crazy_5773&quot;&gt; /u/Euphoric_Crazy_5773 &lt;/a&gt; &lt;br/&gt; &lt;span&gt;&lt;a href=&quot;https://wilaak.github.io/articles/php-is-too-verbose/&quot;&gt;[link]&lt;/a&gt;&lt;/span&gt; &amp;#32; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1tq5mfs/php_is_too_verbose/&quot;&gt;[comments]&lt;/a&gt;&lt;/span&gt;</content><id>t3_1tq5mfs</id><link href="https://www.reddit.com/r/PHP/comments/1tq5mfs/php_is_too_verbose/" /><updated>2026-05-28T14:40:55+00:00</updated><published>2026-05-28T14:40:55+00:00</published><title>PHP is too verbose</title></entry><entry><author><name>/u/wwwery-good-apps</name><uri>https://www.reddit.com/user/wwwery-good-apps</uri></author><category term="PHP" label="r/PHP"/><content type="html">&lt;!-- SC_OFF --&gt;&lt;div class=&quot;md&quot;&gt;&lt;p&gt;Been working on this for a few months, started at 37 tools and it kept growing. Now sitting at 105 and open-sourced under MIT.&lt;/p&gt; &lt;p&gt;The server connects any MCP client to WordPress through Bricks Builder, a visual page builder. Architecture is pretty straightforward — MCP server talks to a custom REST API plugin on the WordPress side, no PHP eval, no filesystem access, everything goes through structured endpoints.&lt;/p&gt; &lt;p&gt;Some things I ran into that might be useful for others building larger MCP servers:&lt;/p&gt; &lt;p&gt;Tool organization gets real fast. I ended up grouping into 17 categories (pages, SEO, templates, backup, styles, media, etc.) and keeping each tool focused on a single operation. Tried combining related operations into fewer tools early on but the AI clients handled discrete single-purpose tools much better.&lt;/p&gt; &lt;p&gt;Batch operations matter more than I expected. Going from one element per call to 20 per request cut page build time roughly in half. If your MCP server touches any kind of document structure, batch support is worth adding early.&lt;/p&gt; &lt;p&gt;Runtime multi-site switching was a late addition that changed the workflow completely. Instead of reconfiguring credentials, the AI just says &amp;quot;switch to staging&amp;quot; mid-conversation.&lt;/p&gt; &lt;p&gt;Named snapshots turned out to be the safety net that made the whole thing usable for production sites. Every destructive operation gets a snapshot first, rollback is one tool call.&lt;/p&gt; &lt;p&gt;Stack is Node.js, three npm dependencies, works with Claude Code, Cursor, Windsurf, and Hermes Agent. Also runs as a self-hosted MCP environment on Railway for mobile access via the Claude Code app.&lt;/p&gt; &lt;p&gt;GitHub: &lt;a href=&quot;https://github.com/developer2013/bricks-mcp-open&quot;&gt;https://github.com/developer2013/bricks-mcp-open&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Curious what patterns others have found when building MCP servers past the &amp;quot;10 tools&amp;quot; stage.&lt;/p&gt; &lt;/div&gt;&lt;!-- SC_ON --&gt; &amp;#32; submitted by &amp;#32; &lt;a href=&quot;https://www.reddit.com/user/wwwery-good-apps&quot;&gt; /u/wwwery-good-apps &lt;/a&gt; &lt;br/&gt; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1tpvmek/built_an_opensource_mcp_server_with_105_tools_for/&quot;&gt;[link]&lt;/a&gt;&lt;/span&gt; &amp;#32; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1tpvmek/built_an_opensource_mcp_server_with_105_tools_for/&quot;&gt;[comments]&lt;/a&gt;&lt;/span&gt;</content><id>t3_1tpvmek</id><link href="https://www.reddit.com/r/PHP/comments/1tpvmek/built_an_opensource_mcp_server_with_105_tools_for/" /><updated>2026-05-28T06:45:23+00:00</updated><published>2026-05-28T06:45:23+00:00</published><title>Built an open-source MCP server with 105 tools for WordPress page building — lessons from scaling past 100 tools</title></entry><entry><author><name>/u/mrmanpgh</name><uri>https://www.reddit.com/user/mrmanpgh</uri></author><category term="PHP" label="r/PHP"/><content type="html">&lt;!-- SC_OFF --&gt;&lt;div class=&quot;md&quot;&gt;&lt;p&gt;I&amp;#39;m in the us. Making 130k as a senior PHP dev. The job is very flexible. Everything about it is pretty good, but I wish I could make more. Maybe I should accept that what I make it pretty good?&lt;/p&gt; &lt;p&gt;I don&amp;#39;t want to lose the flexibility and work life balance just to make a 20k more.&lt;/p&gt; &lt;p&gt;Where do I go from here? I work for a large company and everyone is always complaining that our salary needs to be market corrected and the C suite always ignores us. &lt;/p&gt; &lt;p&gt;I have a lot of stock but it&amp;#39;s privately owned. Has been for years. When they finally sell my stock it will be worth a good deal. But who knows when that is going to be. &lt;/p&gt; &lt;p&gt;Raises are pathetic. Maybe 2.4 percent if I am lucky. &lt;/p&gt; &lt;/div&gt;&lt;!-- SC_ON --&gt; &amp;#32; submitted by &amp;#32; &lt;a href=&quot;https://www.reddit.com/user/mrmanpgh&quot;&gt; /u/mrmanpgh &lt;/a&gt; &lt;br/&gt; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1tpsex8/making_over_130k_in_php/&quot;&gt;[link]&lt;/a&gt;&lt;/span&gt; &amp;#32; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1tpsex8/making_over_130k_in_php/&quot;&gt;[comments]&lt;/a&gt;&lt;/span&gt;</content><id>t3_1tpsex8</id><link href="https://www.reddit.com/r/PHP/comments/1tpsex8/making_over_130k_in_php/" /><updated>2026-05-28T03:59:52+00:00</updated><published>2026-05-28T03:59:52+00:00</published><title>Making over 130k in PHP?</title></entry><entry><author><name>/u/Terabytesoftw</name><uri>https://www.reddit.com/user/Terabytesoftw</uri></author><category term="PHP" label="r/PHP"/><content type="html">&amp;#32; submitted by &amp;#32; &lt;a href=&quot;https://www.reddit.com/user/Terabytesoftw&quot;&gt; /u/Terabytesoftw &lt;/a&gt; &lt;br/&gt; &lt;span&gt;&lt;a href=&quot;/r/Yii2/comments/1tpf36g/aiassisted_open_source_maintenance_yii2_went_from/&quot;&gt;[link]&lt;/a&gt;&lt;/span&gt; &amp;#32; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1tppeaq/mantenimiento_de_código_abierto_con_ayuda_de_ia/&quot;&gt;[comments]&lt;/a&gt;&lt;/span&gt;</content><id>t3_1tppeaq</id><link href="https://www.reddit.com/r/PHP/comments/1tppeaq/mantenimiento_de_código_abierto_con_ayuda_de_ia/" /><updated>2026-05-28T01:41:32+00:00</updated><published>2026-05-28T01:41:32+00:00</published><title>Mantenimiento de código abierto con ayuda de IA: Yii2 pasó de 488 issues abiertas a 273</title></entry><entry><author><name>/u/superterran</name><uri>https://www.reddit.com/user/superterran</uri></author><category term="PHP" label="r/PHP"/><content type="html">&amp;#32; submitted by &amp;#32; &lt;a href=&quot;https://www.reddit.com/user/superterran&quot;&gt; /u/superterran &lt;/a&gt; &lt;br/&gt; &lt;span&gt;&lt;a href=&quot;https://experiencedigest.org/2026/05/26/cve-critical-cvss.html&quot;&gt;[link]&lt;/a&gt;&lt;/span&gt; &amp;#32; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1tol72b/critical_vulnerability_discovered_for_mirasvit/&quot;&gt;[comments]&lt;/a&gt;&lt;/span&gt;</content><id>t3_1tol72b</id><link href="https://www.reddit.com/r/PHP/comments/1tol72b/critical_vulnerability_discovered_for_mirasvit/" /><updated>2026-05-26T21:40:02+00:00</updated><published>2026-05-26T21:40:02+00:00</published><title>Critical Vulnerability discovered for Mirasvit Full Page Cache Warmer</title></entry><entry><author><name>/u/Influenceseful96</name><uri>https://www.reddit.com/user/Influenceseful96</uri></author><category term="PHP" label="r/PHP"/><content type="html">&lt;!-- SC_OFF --&gt;&lt;div class=&quot;md&quot;&gt;&lt;p&gt;Joined a mid-sized fashion brand earlier this spring as a senior backend dev.&lt;/p&gt; &lt;p&gt;Background in Laravel and Symfony, a bit of Magento 2 work years ago, never owned a full commerce stack before, and current brand is around €60M GMV across European markets.&lt;/p&gt; &lt;p&gt;Last week our payment provider sent us a sunset notice on their v1 API and gave us a few weeks to migrate, which should have been routine until I opened the repo to scope the work and now i can&amp;#39;t unsee what&amp;#39;s in there.&lt;/p&gt; &lt;p&gt;Our entire returns and refund flow runs through one custom Magento 1 module last touched a few years back, written by a contractor who finished his engagement around that time, whose email bounces and whose Linkedin says he&amp;#39;s at a games studio in Lisbon.&lt;/p&gt; &lt;p&gt;The module hardcodes the Klarna v1 API key directly in the class constants, the endpoint returns 410 now, and the fallback writes every failed return attempt to a log file that is now 14GB.&lt;/p&gt; &lt;p&gt;There is also a cron job that runs every night at 03:17 with no documentation, which i disabled in staging to see what would happen, and returns broke almost immediately so i re-enabled it without ever figuring out what it does.&lt;/p&gt; &lt;p&gt;And then there is this comment in the source (literally):&lt;/p&gt; &lt;p&gt;// DO NOT REMOVE - this is what makes the size chart work&lt;/p&gt; &lt;p&gt;The size chart is not referenced anywhere else in the codebase. we are running Magento 1 in 2026 and the size chart logic is held together by a comment.&lt;/p&gt; &lt;p&gt;We do €60M a year through this…&lt;/p&gt; &lt;p&gt;The founders had asked me earlier why our infrastructure costs kept climbing, and when i sent them the dependency map they agreed to take the meetings with SCAYLE and commercetools they had refused the last time someone in my seat pushed for an evaluation.&lt;/p&gt; &lt;p&gt;For PHP devs who&amp;#39;ve inherited a production Magento 1 install past EOL, how did you handle the conversation about telling the founders the real migration timeline?&lt;/p&gt; &lt;p&gt;I don&amp;#39;t want to be the one blaming the person before me and i don&amp;#39;t see how this gets fixed in a single quarter.&lt;/p&gt; &lt;/div&gt;&lt;!-- SC_ON --&gt; &amp;#32; submitted by &amp;#32; &lt;a href=&quot;https://www.reddit.com/user/Influenceseful96&quot;&gt; /u/Influenceseful96 &lt;/a&gt; &lt;br/&gt; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1tngx8m/how_did_you_tell_your_founders_the_magento_1/&quot;&gt;[link]&lt;/a&gt;&lt;/span&gt; &amp;#32; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1tngx8m/how_did_you_tell_your_founders_the_magento_1/&quot;&gt;[comments]&lt;/a&gt;&lt;/span&gt;</content><id>t3_1tngx8m</id><link href="https://www.reddit.com/r/PHP/comments/1tngx8m/how_did_you_tell_your_founders_the_magento_1/" /><updated>2026-05-25T18:04:51+00:00</updated><published>2026-05-25T18:04:51+00:00</published><title>how did you tell your founders the Magento 1 stack has to go?</title></entry><entry><author><name>/u/Designer-Age7726</name><uri>https://www.reddit.com/user/Designer-Age7726</uri></author><category term="PHP" label="r/PHP"/><content type="html">&lt;!-- SC_OFF --&gt;&lt;div class=&quot;md&quot;&gt;&lt;h1&gt;I built a static site generator : kiss-php&lt;/h1&gt; &lt;p&gt;(First post,I&amp;#39;m learning the hard way about machine translation, and the fact that you can&amp;#39;t change the title)&lt;/p&gt; &lt;p&gt;I&amp;#39;d like to share &lt;code&gt;kiss-php&lt;/code&gt; a static site generator built around data first. One of those projects that started 1,000 years ago and was never finished, because the basic idea was cool, but finishing a personal project is always a bit of a gamble, given that there’s often a new interesting topic that comes along and takes precedence. And for this kind of side project, AI is, in my humble opinion, an incredible game-changer that makes the difference between a proof of concept and a publishable project.&lt;/p&gt; &lt;p&gt;So, &lt;code&gt;kiss-php&lt;/code&gt;.&lt;/p&gt; &lt;p&gt;The basic idea is to write Twig templates, but populate your site using data files (YAML, JSON, INI, XML, PHP, MD) that are converted to PHP during compilation.&lt;/p&gt; &lt;h1&gt;What&amp;#39;s different: DataSources + DataTree&lt;/h1&gt; &lt;p&gt;Instead of blindly re‑parsing every file on each build, I built a system where:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Each data source (YAML, JSON, PHP, etc.) is read once and transformed into plain PHP and cached.&lt;/li&gt; &lt;li&gt;The DataTree keeps a full, in‑memory/cached tree of all data sources.&lt;/li&gt; &lt;li&gt;With &lt;code&gt;kiss watch&lt;/code&gt; (using &lt;code&gt;inotifywait&lt;/code&gt; / &lt;code&gt;fswatch&lt;/code&gt;), only the modified source is re‑parsed and reinjected into the tree. The rest of the data stays in cache, so partial builds are fast.&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;This could be great for sites with lots of content (blogs, catalogs, documentation) where you often change just one file. If this is something you can use, feel free to take it.&lt;/p&gt; &lt;p&gt;Note: I don&amp;#39;t have a Mac on hand, only Linux machines, so support for &lt;code&gt;fswatch&lt;/code&gt; is theoretical at this point.&lt;/p&gt; &lt;p&gt;Code : &lt;a href=&quot;https://github.com/Amund/kiss-php&quot;&gt;https://github.com/Amund/kiss-php&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Docs : &lt;a href=&quot;https://amund.github.io/kiss-php/&quot;&gt;https://amund.github.io/kiss-php/&lt;/a&gt;&lt;/p&gt; &lt;/div&gt;&lt;!-- SC_ON --&gt; &amp;#32; submitted by &amp;#32; &lt;a href=&quot;https://www.reddit.com/user/Designer-Age7726&quot;&gt; /u/Designer-Age7726 &lt;/a&gt; &lt;br/&gt; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1toldpv/jai_créé_un_générateur_de_sites_statiques_kissphp/&quot;&gt;[link]&lt;/a&gt;&lt;/span&gt; &amp;#32; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1toldpv/jai_créé_un_générateur_de_sites_statiques_kissphp/&quot;&gt;[comments]&lt;/a&gt;&lt;/span&gt;</content><id>t3_1toldpv</id><link href="https://www.reddit.com/r/PHP/comments/1toldpv/jai_créé_un_générateur_de_sites_statiques_kissphp/" /><updated>2026-05-26T21:46:48+00:00</updated><published>2026-05-26T21:46:48+00:00</published><title>J'ai créé un générateur de sites statiques : kiss-php</title></entry><entry><author><name>/u/k42b3</name><uri>https://www.reddit.com/user/k42b3</uri></author><category term="PHP" label="r/PHP"/><content type="html">&lt;!-- SC_OFF --&gt;&lt;div class=&quot;md&quot;&gt;&lt;p&gt;Hey everyone,&lt;/p&gt; &lt;p&gt;I&amp;#39;m the maintainer of Fusio, a self-hosted, open-source API management platform written in PHP. We just launched a major milestone with Fusio 7.0, and I wanted to share the key technical updates in this release:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;We&amp;#39;ve introduced an action and schema Commit Log, along with a production &amp;quot;Freeze&amp;quot; mode.&lt;/li&gt; &lt;li&gt;Added a dedicated view for developers to visually inspect API schemas.&lt;/li&gt; &lt;li&gt;Implemented a new custom filter query language for the backend.&lt;/li&gt; &lt;li&gt;Added a new taxonomy system to categorize actions, schemas and operations.&lt;/li&gt; &lt;li&gt;An agent connection to a remote LLM based on Symfony AI.&lt;/li&gt; &lt;li&gt;The backend admin panel has been migrated to Angular 21.&lt;/li&gt; &lt;li&gt;Introduced a new Agent concept which helps create custom agents for internal or external usage.&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;If you are interested you can get more details through the links below:&lt;/p&gt; &lt;p&gt;GitHub Repository: &lt;a href=&quot;https://github.com/apioo/fusio&quot;&gt;https://github.com/apioo/fusio&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Release post: &lt;a href=&quot;https://www.fusio-project.org/blog/post/fusio-7.0-released&quot;&gt;https://www.fusio-project.org/blog/post/fusio-7.0-released&lt;/a&gt;&lt;/p&gt; &lt;/div&gt;&lt;!-- SC_ON --&gt; &amp;#32; submitted by &amp;#32; &lt;a href=&quot;https://www.reddit.com/user/k42b3&quot;&gt; /u/k42b3 &lt;/a&gt; &lt;br/&gt; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1tnkriz/fusio_70_released_api_and_agentplatform/&quot;&gt;[link]&lt;/a&gt;&lt;/span&gt; &amp;#32; &lt;span&gt;&lt;a href=&quot;https://www.reddit.com/r/PHP/comments/1tnkriz/fusio_70_released_api_and_agentplatform/&quot;&gt;[comments]&lt;/a&gt;&lt;/span&gt;</content><id>t3_1tnkriz</id><link href="https://www.reddit.com/r/PHP/comments/1tnkriz/fusio_70_released_api_and_agentplatform/" /><updated>2026-05-25T20:23:08+00:00</updated><published>2026-05-25T20:23:08+00:00</published><title>Fusio 7.0 released - API and Agent-Platform</title></entry></feed>