Conditional Audit Logging in symfony
/r/symfony/comments/1q215l5/conditional_audit_logging/
https://redd.it/1shj7yp
@r_php
/r/symfony/comments/1q215l5/conditional_audit_logging/
https://redd.it/1shj7yp
@r_php
Reddit
From the PHP community on Reddit: Conditional Audit Logging in symfony
Posted by rahul-b-chavan - 1 vote and 0 comments
How I got affected by Shai-Hulud in PHP World
https://sarvendev.com/posts/shai-hulud/
https://redd.it/1shkms6
@r_php
https://sarvendev.com/posts/shai-hulud/
https://redd.it/1shkms6
@r_php
Kamil Ruczyński
How I got affected by Shai-Hulud in PHP World
Recently, in one of my projects, I got affected by a supply chain attack called Shai-Hulud that targeted npm packages. The interesting fact is that it happened to me in a PHP project. That’s why I decided to write about my experience and lessons learned.
This media is not supported in your browser
VIEW IN TELEGRAM
[Showcase] I got tired of building SaaS billing from scratch, so I made an open-source Laravel package with a Filament admin panel. Sets up in 15 mins.
https://redd.it/1shjxj5
@r_php
https://redd.it/1shjxj5
@r_php
Tired of terminal hopping? I built a native GNOME extension to manage Symfony CLI servers 🐘🐧
https://redd.it/1shnh7v
@r_php
https://redd.it/1shnh7v
@r_php
SymfonyLive Berlin 2026: “Symfony AI-Mate.”
https://symfony.com/blog/symfonylive-berlin-2026-symfony-ai-mate?utm_medium=feed&utm_source=Symfony%20Blog%20Feed
https://redd.it/1shi10q
@r_php
https://symfony.com/blog/symfonylive-berlin-2026-symfony-ai-mate?utm_medium=feed&utm_source=Symfony%20Blog%20Feed
https://redd.it/1shi10q
@r_php
Symfony
SymfonyLive Berlin 2026: “Symfony AI-Mate.” (Symfony Blog)
Symfony/AI introduces the Mate component — but how does it work in practice? In “Symfony AI-Mate”, Johannes Wachter explores its implementation, use cases, and limitations.
Integrating React inside a PHP application
/r/reactjs/comments/1shr56i/integrating_react_inside_a_php_application/
https://redd.it/1shr5vt
@r_php
/r/reactjs/comments/1shr56i/integrating_react_inside_a_php_application/
https://redd.it/1shr5vt
@r_php
Reddit
From the PHP community on Reddit: Integrating React inside a PHP application
Posted by Heavy_Technician4419 - 0 votes and 2 comments
With PHP 8.4 Property Hooks, Should Booleans Be Properties or Methods?
PHP 8.4 property hooks let us put logic directly inside properties, and it's forcing me to revisit a convention I thought was settled: should boolean-returning values be properties or methods?
The old rule felt obvious properties hold state, methods hold logic. But now that properties can hold logic, I'm not sure that rule holds anymore.
What makes it worse is naming.
So which side are you on, and has PHP 8.4 changed anything for you?
https://redd.it/1shstdr
@r_php
PHP 8.4 property hooks let us put logic directly inside properties, and it's forcing me to revisit a convention I thought was settled: should boolean-returning values be properties or methods?
$user->isActive // property?
$user->isActive() // method?
The old rule felt obvious properties hold state, methods hold logic. But now that properties can hold logic, I'm not sure that rule holds anymore.
What makes it worse is naming.
isActive, hasPermission, canAccess all read like questions, and questions feel like they belong behind parentheses. Seeing $user->isActive without them genuinely bothers me and even if it works.So which side are you on, and has PHP 8.4 changed anything for you?
https://redd.it/1shstdr
@r_php
Reddit
From the PHP community on Reddit
Explore this post and more from the PHP community
What distroless image do you guys use for PHP?
There don't seem to be many, and they seem like small projects. Do you have any recommendations?
^(\(I use Podman btw\))
https://redd.it/1sif09j
@r_php
There don't seem to be many, and they seem like small projects. Do you have any recommendations?
^(\(I use Podman btw\))
https://redd.it/1sif09j
@r_php
Reddit
From the PHP community on Reddit
Explore this post and more from the PHP community
Symfony Polyfill 1.34.0 released
https://symfony.com/blog/symfony-polyfill-1-34-0-released?utm_medium=feed&utm_source=Symfony%20Blog%20Feed
https://redd.it/1sifvs2
@r_php
https://symfony.com/blog/symfony-polyfill-1-34-0-released?utm_medium=feed&utm_source=Symfony%20Blog%20Feed
https://redd.it/1sifvs2
@r_php
Symfony
Symfony Polyfill 1.34.0 released (Symfony Blog)
Symfony Polyfill 1.34.0 ships ten new polyfills that cover features from PHP 8.4, 8.5, and 8.6, along with a new polyfill for the ``deepclone`` Symfony PHP extension. This release lets you write forwa…
A Database Killed My Wife. They were warned. They ignored it… | by Jamaurice Holt
https://medium.com/@jholt1055/a-database-killed-my-wife-b12a9c2d4d67
https://redd.it/1sj5aam
@r_php
https://medium.com/@jholt1055/a-database-killed-my-wife-b12a9c2d4d67
https://redd.it/1sj5aam
@r_php
Medium
A Database Killed My Wife
They were warned. They ignored it. She’s dead. Here’s the evidence.
Lemmon Validator: A Zod-inspired, type-safe validation library for PHP 8.3
Hey everyone,
I’ve been working on **Lemmon Validator**, a schema-first validation library that brings the fluent API patterns of TypeScript libraries like **Zod** and **Valibot** to modern PHP.
It is designed for developers who want a predictable, type-safe way to validate and transform input data while maintaining zero external dependencies.
# The Core Idea
Most validation in PHP happens against "loose" arrays. Lemmon Validator focuses on building a schema that not only validates but also **coerces** and **transforms** the data into a reliable state (either as a typed array or an object).
# Key Features:
* **Zod-inspired Fluent API:** Highly readable, chainable schema definitions.
* **Form-Safe Coercion:** A common pain point in PHP is handling HTML form inputs where an empty string (`''`) should be treated as `null` rather than `0` or `false`. Lemmon Validator handles this natively when `coerce()` is enabled.
* **Transformation Pipelines:** Use `transform()` to change types (e.g., String to DateTime) or `pipe()` for sanitization (e.g., trim/lowercase).
* **Nested Error Aggregation:** Deeply nested schemas return a structured error map, making it easy to map errors back to UI fields.
* **Zero Dependencies:** Lean, focused, and easy to drop into any project.
# Quick Example:
use Lemmon\Validator\Validator;
$schema = Validator::isAssociative([
'name' => Validator::isString()->notEmpty()->required(),
'email' => Validator::isString()->email()->required(),
'age' => Validator::isInt()->min(18)->coerce(),
'roles' => Validator::isArray()
->items(Validator::isString()->in(['admin', 'user']))
->default(['user']),
]);
try {
// $_POST: ['name' => 'John', 'email' => 'invalid', 'age' => '25']
$data = $schema->validate($_POST);
// $data is now a validated, coerced, and typed array
} catch (ValidationException $e) {
$errors = $e->getFlattenedErrors();
// Returns: [['path' => 'email', 'message' => 'Value must be a valid email address'], ...]
}
# Why PHP 8.3?
The library leverages modern PHP features like readonly properties, enums, and strict typing to ensure the internal engine is as robust as the schemas you build with it.
I'm looking for feedback on the API ergonomics and any specific "edge case" format validators you find yourself constantly rewriting.
**Repo:** [https://github.com/lemmon/validator-php](https://github.com/lemmon/validator-php)
Happy to answer any questions!
https://redd.it/1sj8lky
@r_php
Hey everyone,
I’ve been working on **Lemmon Validator**, a schema-first validation library that brings the fluent API patterns of TypeScript libraries like **Zod** and **Valibot** to modern PHP.
It is designed for developers who want a predictable, type-safe way to validate and transform input data while maintaining zero external dependencies.
# The Core Idea
Most validation in PHP happens against "loose" arrays. Lemmon Validator focuses on building a schema that not only validates but also **coerces** and **transforms** the data into a reliable state (either as a typed array or an object).
# Key Features:
* **Zod-inspired Fluent API:** Highly readable, chainable schema definitions.
* **Form-Safe Coercion:** A common pain point in PHP is handling HTML form inputs where an empty string (`''`) should be treated as `null` rather than `0` or `false`. Lemmon Validator handles this natively when `coerce()` is enabled.
* **Transformation Pipelines:** Use `transform()` to change types (e.g., String to DateTime) or `pipe()` for sanitization (e.g., trim/lowercase).
* **Nested Error Aggregation:** Deeply nested schemas return a structured error map, making it easy to map errors back to UI fields.
* **Zero Dependencies:** Lean, focused, and easy to drop into any project.
# Quick Example:
use Lemmon\Validator\Validator;
$schema = Validator::isAssociative([
'name' => Validator::isString()->notEmpty()->required(),
'email' => Validator::isString()->email()->required(),
'age' => Validator::isInt()->min(18)->coerce(),
'roles' => Validator::isArray()
->items(Validator::isString()->in(['admin', 'user']))
->default(['user']),
]);
try {
// $_POST: ['name' => 'John', 'email' => 'invalid', 'age' => '25']
$data = $schema->validate($_POST);
// $data is now a validated, coerced, and typed array
} catch (ValidationException $e) {
$errors = $e->getFlattenedErrors();
// Returns: [['path' => 'email', 'message' => 'Value must be a valid email address'], ...]
}
# Why PHP 8.3?
The library leverages modern PHP features like readonly properties, enums, and strict typing to ensure the internal engine is as robust as the schemas you build with it.
I'm looking for feedback on the API ergonomics and any specific "edge case" format validators you find yourself constantly rewriting.
**Repo:** [https://github.com/lemmon/validator-php](https://github.com/lemmon/validator-php)
Happy to answer any questions!
https://redd.it/1sj8lky
@r_php
GitHub
GitHub - lemmon/validator-php: Type-safe validation for PHP with a fluent API, schema-based rules, coercion and transformations.…
Type-safe validation for PHP with a fluent API, schema-based rules, coercion and transformations. Built for both fun and rigor. - lemmon/validator-php
A Week of Symfony #1006 (April 6–12, 2026)
https://symfony.com/blog/a-week-of-symfony-1006-april-6-12-2026?utm_medium=feed&utm_source=Symfony%20Blog%20Feed
https://redd.it/1sjaam2
@r_php
https://symfony.com/blog/a-week-of-symfony-1006-april-6-12-2026?utm_medium=feed&utm_source=Symfony%20Blog%20Feed
https://redd.it/1sjaam2
@r_php
Symfony
A Week of Symfony #1006 (April 6–12, 2026) (Symfony Blog)
This week, the upcoming Symfony 8.1 version introduced ServicesBundle and ConsoleBundle as a first step in splitting FrameworkBundle into smaller, standalone bundles. In addition, we released Symfony …
Larabox, Alternate to Laragon/Xampp/Laravel herd
I have been working on an App (Larabox) for setting up local development stack, because Laragon has been plagued with annoying popups that shifts focus even from fullscreen apps and Laravel herd is now too limited for free.
The app contains bundled or minimal installer for PHP, Nginx, Mariadb, Postgres, Mailpit, Redis, Meiliseach and Nodejs with changeable versions and delta updates to binaries. I have not signed the app yet so smart screen warnings will be shown by windows.
If anyone wants to try it out, I'll appreciate the feedback or bug reports. You can download from Larabox.org
https://redd.it/1sjctdz
@r_php
I have been working on an App (Larabox) for setting up local development stack, because Laragon has been plagued with annoying popups that shifts focus even from fullscreen apps and Laravel herd is now too limited for free.
The app contains bundled or minimal installer for PHP, Nginx, Mariadb, Postgres, Mailpit, Redis, Meiliseach and Nodejs with changeable versions and delta updates to binaries. I have not signed the app yet so smart screen warnings will be shown by windows.
If anyone wants to try it out, I'll appreciate the feedback or bug reports. You can download from Larabox.org
https://redd.it/1sjctdz
@r_php
larabox.org
Larabox | Modern Local Development for Windows
Larabox is a modern local development environment for Windows. Native performance, no Docker/WSL complexity, and pre-bundled runtimes.
I built a lightweight alternative to Laravel Horizon that works without Redis (SQS / DB / sync supported)
I built a small package for Laravel to monitor queues without being tied to Redis.
Horizon is great, but:
\- it requires Redis
\- it's a bit heavy for small projects
\- and it doesn’t really work if you're using SQS, database or sync drivers
In many cases, I just wanted to know:
\- did my jobs run?
\- which ones failed?
\- why did they fail?
So I made a lightweight solution:
\- works with any queue driver (Redis, SQS, database, sync)
\- tracks full job lifecycle (processing / success / failed)
\- shows retries and execution time
\- simple Blade dashboard out of the box
\- JSON API included (for custom frontends)
Setup is super simple:
composer require romalytar/yammi-jobs-monitoring-laravel
php artisan migrate
That’s it — you immediately get a UI at `/jobs-monitor`.
Would really appreciate any feedback
Especially what’s missing or what could be improved.
GitHub: https://github.com/RomaLytar/yammi-jobs-monitoring-laravel
https://redd.it/1sjf33x
@r_php
I built a small package for Laravel to monitor queues without being tied to Redis.
Horizon is great, but:
\- it requires Redis
\- it's a bit heavy for small projects
\- and it doesn’t really work if you're using SQS, database or sync drivers
In many cases, I just wanted to know:
\- did my jobs run?
\- which ones failed?
\- why did they fail?
So I made a lightweight solution:
\- works with any queue driver (Redis, SQS, database, sync)
\- tracks full job lifecycle (processing / success / failed)
\- shows retries and execution time
\- simple Blade dashboard out of the box
\- JSON API included (for custom frontends)
Setup is super simple:
composer require romalytar/yammi-jobs-monitoring-laravel
php artisan migrate
That’s it — you immediately get a UI at `/jobs-monitor`.
Would really appreciate any feedback
Especially what’s missing or what could be improved.
GitHub: https://github.com/RomaLytar/yammi-jobs-monitoring-laravel
https://redd.it/1sjf33x
@r_php
GitHub
GitHub - RomaLytar/yammi-jobs-monitoring-laravel: Lightweight queue monitoring package for Laravel that tracks job lifecycle (processing…
Lightweight queue monitoring package for Laravel that tracks job lifecycle (processing, success, failed) across any queue driver (Redis, SQS, sync). Provides simple UI, failure alerts, and executio...
Laravel's wildcard validation is O(n²), here's a fix
I was profiling a slow import endpoint. 100 items, 47 fields each with
When you write
I submitted 10 performance PRs to
Add
class ImportRequest extends FormRequest
{
use HasFluentRules;
}
Benchmarks (CI, PHP 8.4, OPcache, median of 3 runs):
|Scenario|Laravel|With trait|Speedup|
|:-|:-|:-|:-|
|500 items × 7 simple fields|\~200ms|\~2ms|97x|
|500 items × 7 mixed fields (string + date)|\~200ms|\~20ms|10x|
|100 items × 47 conditional fields|\~3,200ms|\~83ms|39x|
It's already noticeable with a handful of wildcard inputs that each have a few rules. The package works with Livewire and Filament, is Octane-safe and has a large set of tests.
https://github.com/SanderMuller/laravel-fluent-validation
Performance issue tracked upstream: laravel/framework issue 49375
https://redd.it/1sjjv6e
@r_php
I was profiling a slow import endpoint. 100 items, 47 fields each with
exclude_unless and required_if. Endpoint took 3.4 seconds. I assumed database queries. Validation alone was 3.2s.When you write
items.*.name => required|string|max:255, Laravel's explodeWildcardRules() flattens data with Arr::dot() and matches regex patterns against every key. 500 items × 7 fields = 3,500 concrete rules, and the expansion is O(n²). Conditional rules like exclude_unless make it worse because they trigger dependent-rule resolution on every attribute.I submitted 10 performance PRs to
laravel/framework. Four merged, the six validation ones were all closed. So I built it as a package: laravel-fluent-validation.Add
use HasFluentRules to your FormRequest, keep your existing rules. The wildcard expansion is replaced with O(n) tree traversal. For 25 common rules it compiles PHP closures (is_string($v) && strlen($v) <= 255 instead of rule parsing + method dispatch + BigNumber). If the value passes, Laravel's validator never sees it. Fails go through Laravel for the correct error message. It also pre-evaluates exclude_unless/exclude_if before validation starts, so instead of 4,700 rules each checking conditions, the validator only sees the \~200 that actually apply.class ImportRequest extends FormRequest
{
use HasFluentRules;
}
Benchmarks (CI, PHP 8.4, OPcache, median of 3 runs):
|Scenario|Laravel|With trait|Speedup|
|:-|:-|:-|:-|
|500 items × 7 simple fields|\~200ms|\~2ms|97x|
|500 items × 7 mixed fields (string + date)|\~200ms|\~20ms|10x|
|100 items × 47 conditional fields|\~3,200ms|\~83ms|39x|
It's already noticeable with a handful of wildcard inputs that each have a few rules. The package works with Livewire and Filament, is Octane-safe and has a large set of tests.
https://github.com/SanderMuller/laravel-fluent-validation
Performance issue tracked upstream: laravel/framework issue 49375
https://redd.it/1sjjv6e
@r_php
GitHub
GitHub - SanderMuller/laravel-fluent-validation: Fluent and extremely fast validation for Laravel
Fluent and extremely fast validation for Laravel. Contribute to SanderMuller/laravel-fluent-validation development by creating an account on GitHub.
Laravel's wildcard validation is O(n²), here's a fix
/r/laravel/comments/1sjjv6e/laravels_wildcard_validation_is_on²_heres_a_fix/
https://redd.it/1sjk26q
@r_php
/r/laravel/comments/1sjjv6e/laravels_wildcard_validation_is_on²_heres_a_fix/
https://redd.it/1sjk26q
@r_php
Reddit
From the PHP community on Reddit: Laravel's wildcard validation is O(n²), here's a fix
Posted by Rhinnii - 3 votes and 0 comments
How is the junior php market in the US?
Job boards all over the place with some showing lots of listing and others barely showing any. Anyone here have some insights on the PHP market for juniors?
https://redd.it/1sjoys5
@r_php
Job boards all over the place with some showing lots of listing and others barely showing any. Anyone here have some insights on the PHP market for juniors?
https://redd.it/1sjoys5
@r_php
Reddit
From the PHP community on Reddit
Explore this post and more from the PHP community
rsync repositories?
Has PHP stopped filling the rsync repositories with PHP updates?
americas.rsync.php.net and rsync.php.net
I'm not seeing 8.5.5 or 8.4.20 on there.
https://redd.it/1sjnr7d
@r_php
Has PHP stopped filling the rsync repositories with PHP updates?
americas.rsync.php.net and rsync.php.net
I'm not seeing 8.5.5 or 8.4.20 on there.
https://redd.it/1sjnr7d
@r_php
Reddit
From the PHP community on Reddit
Explore this post and more from the PHP community
Any Non-Slop Open Source Projects Looking For Contributors?
Looking to escape the professional drudgery that is the new "AI-first engineering", "agentic engineering", or whatever we're calling it these days. I have over a decade of professional experience, and I don't think I've contributed a single commit to an open source project. Are there any smaller, well-maintained projects that could use help from someone who knows better than to just dump a Claude-authored 45 file PR and call it a day?
https://redd.it/1sjtbxh
@r_php
Looking to escape the professional drudgery that is the new "AI-first engineering", "agentic engineering", or whatever we're calling it these days. I have over a decade of professional experience, and I don't think I've contributed a single commit to an open source project. Are there any smaller, well-maintained projects that could use help from someone who knows better than to just dump a Claude-authored 45 file PR and call it a day?
https://redd.it/1sjtbxh
@r_php
Reddit
From the PHP community on Reddit
Explore this post and more from the PHP community