Hi everyone,
From seasoned developers to beginners, there's only one newsletter that delivers news, updates and guides about php. In Tutorials this week we have guides for Adding comments to a PHP blog without a database, How to Create Safe External Redirects in WordPress, and Best PHP Testing Tools to Ensure Error-Free Web Development. In Podcasts this week we have new episodes from Laravel news and this week they chat about Debounceable jobs, Pest sharding, and API starter kits. Sally Lait joins Robby Russell on Maintainable to explore software maintainability through a different lens… not just code quality, while Syntax tackle Managing Deadlines + Stress.Finally in our Reading section we have articles on Composer Autoload vs npm, Optimizing Database Queries, and Designing Pairing Codes.
We have all that and more, so we do hope you enjoy this week's newsletter. If you have an article, tutorial or podcast that you would like to be featured in our newsletter, feel free to reach out to us at [email protected].
All the best,
Adrian
|
Please help us by clicking to our sponsors:
Give Your Unused Startup a Second Chance
List your unfinished SaaS, app, or project for free. Sell it, find a co-founder, or let someone else bring it to life. No fees, no hassle - just new opportunities!
|
Articles
Self-Revoking Guest Tokens: A WordPress Pattern Without Cron
An ecological consultancy hired me to digitise their reporting workflow. Field surveys, FFH pre-checks, monitoring protocols — nine different report templates, each with mandatory fields, a corporate letterhead, and case numbers that can't collide.
13 CLAUDE.md Rules That Make AI Write Modern PHP (Not PHP 5 Resurrected)
If you've ever asked Claude Code, Cursor, or Copilot to "add a function" to a PHP project, you've seen the output: untyped properties, mysql_query("SELECT * FROM users WHERE email = '$email'"), md5($password . SALT) for hashing, global $db everywhere, extract($_POST) because it's "convenient", and @file_get_contents($url) to silence the error you needed to see.
Mastering Value Objects in PHP 8.5+ (2026 Edition)
If you’ve been following my series on Refactoring & Patterns, you know I’m a fan of the Introduce Parameter Object pattern. But today, I want to go deeper and talk about one of the smallest, yet most powerful building blocks of clean architecture: ** Value Objects**.
Why WordPress Backup Plugins Fail (And What They Don’t Tell You About Server Recovery)
In this article, I break down the real reasons why backup plugins fail, what actually happens during a server‑level crash, and how to build a recovery plan that works in the real world.
Symfony Attributes Are Stable. TypeScript Decorators Aren't.
Day two on the new TypeScript team. You left Symfony last Friday. You open the new TypeScript repo, scroll to a controller, and expect to see something close to.
Secure File Uploads: Seven Checks and Why Each One Exists
Most tutorials cover the happy path: accept the file, store it, return a URL. The problem is never the happy path.
Clean Code and Best Practices in PHP
Guide adapted from personal experience and the references listed at the end of this document.
Best PHP Testing Tools to Ensure Error-Free Web Development
In this guide, we’ll walk through the best PHP testing tools available today, with honest takes on which ones are worth your time, which ones are overkill, and how to pick the right combination for your project.
XMLReader vs XmlExtractKit for Real XML Extraction Tasks in PHP
Compare raw XMLReader with XmlExtractKit on a real extraction task: repeated XML records in, plain PHP arrays out.
|
Tutorials and Talks
Chain of Responsibility Design Pattern — A Practical Guide with Symfony (PHP)
Chain of Responsibility (CoR) is a behavioral design pattern where a request is processed through a sequence of independent handlers. Each handler encapsulates a single responsibility and decides whether to process the request or delegate it to the next handler.
Best PHP Testing Tools to Ensure Error-Free Web Development
In this guide, we’ll walk through the best PHP testing tools available today, with honest takes on which ones are worth your time, which ones are overkill, and how to pick the right combination for your project.
How to build a reactive SPA without writing a single line of React or Vue. Part #2
In Part 1 of this series, we explored the “HTML-over-the-wire” philosophy and successfully scaffolded a beautiful, albeit static, Kanban board using Symfony 7.4,
Real-Time Laravel: Building Live Dashboards, Notifications, and Chat with Livewire
This article walks through three practical real-time patterns using Livewire: live notifications, a collaborative counter (think dashboards), and a basic chat interface.
How to Integrate an SMS API: A Step-by-Step Developer’s Guide
In this tutorial, we will explore how a REST SMS API works and walk through a practical implementation to send SMS programmatically.
Adding comments to a PHP blog without a database
The first article on this blog explained how it was built in 30 minutes with Claude Code. Naturally, a blog needs comments. Same constraints: no database, no external dependencies, no Disqus tracking visitors. Just PHP + JSON files. Built in one session with Claude Code — the interesting part wasn't the code, it was the security audit that followed.
How to Create Safe External Redirects in WordPress
You want to redirect a WordPress post to an external URL. Maybe it's an affiliate link, a resource that moved, or a curated link collection.
Laravel API Authentication: A Practical Guide by Riad Hasan
Riad Hasan has built secure APIs for dozens of applications. In this guide, he tackles one of the most common problems developers face: implementing robust API authentication in Laravel. |
News and Announcements
Join Us for PHPverse 2026 on June 9
JetBrains PHPverse – a community-inspired professional event for PHP developers – returns once more on June 9, 2026. This year, we’re gathering some of the most influential voices in the PHP ecosystem to share their insights on shaping the modern PHP language, the internals of ecosystem tools and frameworks, and the adoption of agentic workflows for shipping PHP code.
RedBerry to Host Georgia's First Laravel Meetup in Tbilisi
The Laravel community continues to expand globally, and now it’s reaching the South Caucasus. On May 14th, the first official Laravel meetup in Tbilisi, Georgia will take place, hosted by RedBerry.
Interruptible Jobs in Laravel 13.7.0
Laravel v13.7.0 introduces the Interruptible interface for queued jobs to respond to worker signals, a new @fonts Blade directive for Vite font optimization, bulk JSON path assertions for testing, SortDirection enum support in collections, and several other improvements across the framework.
April 27 – May 3, 2026 - A Week of Symfony #1009
This week, Symfony released the maintained versions 6.4.37, 7.4.9, and 8.0.9. Meanwhile, we continued merging new features for the upcoming Symfony 8.1 version, such as the new TUI component. Lastly, we published an update about the recent SymfonyInsight improvements.
Symfony 8.0.9, Symfony 7.4.9, & Symfony 6.4.37 released
Read the Symfony upgrade guide to learn more about upgrading Symfony and use the SymfonyInsight upgrade reports to detect the code you will need to change in your project.
|
Podcasts and Vlogs
Laravel News: Debounceable jobs, Pest sharding, and API starter kits
Jake and Michael discuss all the latest Laravel releases, tutorials, and happenings in the community.
The Stack Overflow: What (un)exactly do you mean by semantic search?
Ryan welcomes Bryan O’Grady, Head of Field Research and Solutions Architecture at Qdrant, to discuss the differences between traditional text search engines powered by Lucene and modern vector databases.
Maintainable Podcast: Sally Lait: Confidence Is the Real Metric
Sally Lait joins Robby Russell on Maintainable to explore software maintainability through a different lens… not just code quality, but how teams work together over time.
Software Engineering Radio: SE Radio 718: Will Sentance on JS Modernization
Will Sentance, educator and co-founder of Codesmith, joins SE Radio’s Adi Narayan to discuss the evolution of JavaScript and modern best practices.
Shoptalk Show: AI + Design Systems with Brad and Ian Frost
Brad and Ian Frost are back to chat about integrating AI into website and design system building, how to keep AI slop out of your design systems, building things humans need regardless of the tooling, and thinking of AI as a fancy linter.
WP Builds: 466 – James Welbes on AI, WordPress, and new opportunities
Nathan Wrigley interviews James Welbes, about his journey in the WordPress space, his early frustrations and eventual embrace of WordPress, and the transformative impact of AI on web development.
PHP Architect: The PHP Podcast 2026.04.30
Eric Van Johnson & John Congdon Another fun episode of the PHP Podcast! Here’s what we covered: 🚁 The Drone Slayer Strikes Eric and John wrapped up a Padres game at beautiful Petco Park in downtown San Diego — and things got weird on the way out.
Mostly Technical: 130: Two Grandmas Roll Up
Ian and Aaron discuss the most harrowing experience of Aaron's life (complete with the funniest ad transition in Mostly Technical history), talk about Ian's trip to the Laravel Roadshow in NYC, and dive into what's cooking with Solo.
Syntax: Managing Deadlines + Stress
Scott and Wes tackle the all-too-real stress of crunch time as a web developer—how to handle looming deadlines, avoid sloppy shortcuts, and stay methodical when everything feels like it's falling apart.
The Changelog: Bitwarden CLI compromised
Bitwarden’s CLI got hit by the Checkmarx supply-chain campaign, TypeScript 7.0 beta lands with the Go-rewritten compiler running ~10x faster than 6.0, and pgBackRest lost its maintainer of thirteen years leaving anyone running production Postgres with a real dependency-trust task this week.
|
|
Designing Pairing Codes: Tradeoffs, Mistakes, and a Simple Approach That Works
While building Booth Beam, a digital signage tool, I ran into a problem that looks trivial at first glance: how do you connect a TV to a web app in a way that’s fast, reliable, and hard to mess up?
How I'm Using AI Agents in My Daily Dev Workflow
I was skeptical at first. Not about AI in general — but about whether it would actually fit into my workflow.
Composer Autoload vs npm: The PHP Mental Model That Hurts You
A Laravel developer on their first TypeScript project opens the repo and sees a familiar shape. There is a manifest at the root. There is a lockfile next to it.
Optimizing Database Queries in PHP & CodeIgniter 4 for Financial ERPs
Today, I want to share a few advanced database optimization techniques I use when writing backend logic in PHP and CodeIgniter 4.
Your Laravel App Is Losing Money Right Now — And You Don’t Even Know It
You ship the feature. Tests pass. Staging looks great. Then Black Friday hits — and your inventory count goes negative.
Senior PHP Developers Make These Security Mistakes Too — And Nobody Talks About It
You’ve moved past the basics. Here’s the layer of security mistakes that still ships to production — written by experienced developers who should’ve known better.
|
Interesting Projects, Tools and Libraries
laminas/laminas-serializer
Serialize and deserialize PHP structures to a variety of representations.
spatie/laravel-json-api-paginate
A paginator that plays nice with the JSON API spec.
fico7489/laravel-pivot
This package introduces new eloquent events for sync(), attach(), detach() or updateExistingPivot() methods on BelongsToMany relation.
kartik-v/yii2-widget-datepicker
Enhanced Yii2 wrapper for the bootstrap datepicker plugin (sub repo split from yii2-widgets).
humbug/php-scoper
Prefixes all PHP namespaces in a file or directory.
stechstudio/backoff
PHP library providing retry functionality with multiple backoff strategies and jitter support.
gravitypdf/querypath
PHP library for HTML(5)/XML querying (CSS 4 or XPath) and processing (like jQuery) with PHP 7.1 to 8.5 support.
weitzman/drupal-test-traits
Traits for testing Drupal sites that have user content (versus unpopulated sites).
ryangjchandler/laravel-cloudflare-turnstile
A simple package to help integrate Cloudflare Turnstile.
coconutcraig/laravel-postmark
Laravel package for sending mail via the Postmark API.
|
Jobs
------
Do you have a position that you would like to fill? PHP Weekly is ideal for targeting developers and the cost is only $75/week for an advert. Please let me know if you are interested by emailing me at [email protected] |
Please help us by clicking to our sponsor:
Protect your PHP Code
Why not try SourceGuardian 17. Click here to download a 14 Day Trial copy. Protect your code using Windows, Linux or Mac and run everywhere with our free Loaders. |
So, how did you like this issue?
|
|
|
|