improved HTTP and queue transport handling
# [Audit Transports Documentation](https://github.com/rcsofttech85/AuditTrailBundle)
AuditTrailBundle supports multiple transports to dispatch audit logs. This allows you to offload audit processing to external services or queues, keeping your main application fast.
# 1. Queue Transport (Symfony Messenger)
The Queue transport dispatches audit logs as messages via Symfony Messenger. This is the recommended way to handle audits in high-traffic applications.
# Configuration for Queue transport
Enable the queue transport in `config/packages/audit_trail.yaml`:
audit_trail:
transports:
queue:
enabled: true
bus: 'messenger.bus.default' # Optional: specify a custom bus
You must define a transport named `audit_trail` in `config/packages/messenger.yaml`:
framework:
messenger:
transports:
audit_trail: '%env(MESSENGER_TRANSPORT_DSN)%'
# Advanced Usage: Messenger Stamps
You can pass Messenger stamps (like `DelayStamp` or `DispatchAfterCurrentBusStamp`) in two ways:
# 1. Manually (Programmatic Audits)
Pass them via the `$context` array when creating an audit log or performing a revert.
use Symfony\Component\Messenger\Stamp\DelayStamp;
// Programmatic audit log with a 5-second delay
$auditService->createAuditLog($entity, 'custom_action', null, null, [
'messenger_stamps' => [new DelayStamp(5000)]
]);
# 2. Automatically (Event Subscriber)
Use the `AuditMessageStampEvent` to add stamps to the message right before it is dispatched to the bus. This is the recommended way to add transport-specific stamps.
namespace App\EventSubscriber;
use Rcsofttech\AuditTrailBundle\Event\AuditMessageStampEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Messenger\Stamp\DelayStamp;
class AuditMessengerSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents(): array
{
return [
AuditMessageStampEvent::class => 'onAuditMessageStamp',
];
}
public function onAuditMessageStamp(AuditMessageStampEvent $event): void
{
// Add a 5-second delay to all audit logs sent via Queue
$event->addStamp(new DelayStamp(5000));
}
}
# Queue Payload Signing
When `audit_trail.integrity.enabled` is true, the bundle automatically signs the payload to ensure authenticity. The signature is added as a `SignatureStamp` to the Messenger envelope.
use Rcsofttech\AuditTrailBundle\Message\Stamp\SignatureStamp;
// In your message handler
$signature = $envelope->last(SignatureStamp::class)?->signature;
# 2. HTTP Transport
The HTTP transport audit logs to an external API endpoint (e.g., a logging service.
# Configuration for http transport
audit_trail:
transports:
http:
enabled: true
endpoint: 'https://audit-api.example.com/v1/logs'
headers:
'Authorization': 'Bearer your-api-token'
'X-App-Name': 'MySymfonyApp'
timeout: 10 # seconds
# HTTP Payload Signing
When `audit_trail.integrity.enabled` is true, the bundle adds an `X-Signature` header to the HTTP request. This header contains the HMAC signature of the JSON body.
POST /api/logs HTTP/1.1
X-Signature: a1b2c3d4...
Content-Type: application/json
{ ... }
# Payload Structure
The transport sends a `POST` request with a JSON body:
{
"entity_class": "App\\Entity\\Product",
"entity_id": "123",
"action": "update",
"old_values": {"price": 100},
"new_values": {"price": 120},
"changed_fields": ["price"],
"user_id": 1,
"username": "admin",
"ip_address": "127.0.0.1",
"user_agent": "Mozilla/5.0...",
"transaction_hash": "a1b2c3d4...",
"signature":
# [Audit Transports Documentation](https://github.com/rcsofttech85/AuditTrailBundle)
AuditTrailBundle supports multiple transports to dispatch audit logs. This allows you to offload audit processing to external services or queues, keeping your main application fast.
# 1. Queue Transport (Symfony Messenger)
The Queue transport dispatches audit logs as messages via Symfony Messenger. This is the recommended way to handle audits in high-traffic applications.
# Configuration for Queue transport
Enable the queue transport in `config/packages/audit_trail.yaml`:
audit_trail:
transports:
queue:
enabled: true
bus: 'messenger.bus.default' # Optional: specify a custom bus
You must define a transport named `audit_trail` in `config/packages/messenger.yaml`:
framework:
messenger:
transports:
audit_trail: '%env(MESSENGER_TRANSPORT_DSN)%'
# Advanced Usage: Messenger Stamps
You can pass Messenger stamps (like `DelayStamp` or `DispatchAfterCurrentBusStamp`) in two ways:
# 1. Manually (Programmatic Audits)
Pass them via the `$context` array when creating an audit log or performing a revert.
use Symfony\Component\Messenger\Stamp\DelayStamp;
// Programmatic audit log with a 5-second delay
$auditService->createAuditLog($entity, 'custom_action', null, null, [
'messenger_stamps' => [new DelayStamp(5000)]
]);
# 2. Automatically (Event Subscriber)
Use the `AuditMessageStampEvent` to add stamps to the message right before it is dispatched to the bus. This is the recommended way to add transport-specific stamps.
namespace App\EventSubscriber;
use Rcsofttech\AuditTrailBundle\Event\AuditMessageStampEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Messenger\Stamp\DelayStamp;
class AuditMessengerSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents(): array
{
return [
AuditMessageStampEvent::class => 'onAuditMessageStamp',
];
}
public function onAuditMessageStamp(AuditMessageStampEvent $event): void
{
// Add a 5-second delay to all audit logs sent via Queue
$event->addStamp(new DelayStamp(5000));
}
}
# Queue Payload Signing
When `audit_trail.integrity.enabled` is true, the bundle automatically signs the payload to ensure authenticity. The signature is added as a `SignatureStamp` to the Messenger envelope.
use Rcsofttech\AuditTrailBundle\Message\Stamp\SignatureStamp;
// In your message handler
$signature = $envelope->last(SignatureStamp::class)?->signature;
# 2. HTTP Transport
The HTTP transport audit logs to an external API endpoint (e.g., a logging service.
# Configuration for http transport
audit_trail:
transports:
http:
enabled: true
endpoint: 'https://audit-api.example.com/v1/logs'
headers:
'Authorization': 'Bearer your-api-token'
'X-App-Name': 'MySymfonyApp'
timeout: 10 # seconds
# HTTP Payload Signing
When `audit_trail.integrity.enabled` is true, the bundle adds an `X-Signature` header to the HTTP request. This header contains the HMAC signature of the JSON body.
POST /api/logs HTTP/1.1
X-Signature: a1b2c3d4...
Content-Type: application/json
{ ... }
# Payload Structure
The transport sends a `POST` request with a JSON body:
{
"entity_class": "App\\Entity\\Product",
"entity_id": "123",
"action": "update",
"old_values": {"price": 100},
"new_values": {"price": 120},
"changed_fields": ["price"],
"user_id": 1,
"username": "admin",
"ip_address": "127.0.0.1",
"user_agent": "Mozilla/5.0...",
"transaction_hash": "a1b2c3d4...",
"signature":
GitHub
GitHub - rcsofttech85/AuditTrailBundle: A lightweight, high-performance Symfony bundle that automatically tracks and stores Doctrine…
A lightweight, high-performance Symfony bundle that automatically tracks and stores Doctrine ORM entity changes for audit logging and compliance. - rcsofttech85/AuditTrailBundle
"hmac-signature...",
"context": {
"app_version": "1.0.0",
"custom_meta": "value"
},
"created_at": "2024-01-01T12:00:00+00:00"
}
# 3. Doctrine Transport (Default)
The Doctrine transport stores logs in your local database. It is enabled by default.
audit_trail:
transports:
doctrine: true
# 4. Chain Transport (Multiple Transports)
You can enable multiple transports simultaneously. The bundle will automatically use a `ChainAuditTransport` to dispatch logs to all enabled transports.
audit_trail:
transports:
doctrine: true
queue:
enabled: true
# 5. Signature vs. Payload Signing
It is important to distinguish between the two types of signatures:
1. **Entity Signature (**`signature` **field in JSON):**
* Generated at the moment of creation.
* Signs the business data (Entity Class, ID, Changes).
* **Purpose:** Long-term data integrity and non-repudiation. Stored in the database.
2. **Transport Signature (**`X-Signature` **header or** `SignatureStamp`**):**
* Generated just before sending.
* Signs the *entire* payload (including the Entity Signature).
* **Purpose:** Transport security. Ensures the message wasn't tampered with during transit.
https://redd.it/1q3rey3
@r_php
"context": {
"app_version": "1.0.0",
"custom_meta": "value"
},
"created_at": "2024-01-01T12:00:00+00:00"
}
# 3. Doctrine Transport (Default)
The Doctrine transport stores logs in your local database. It is enabled by default.
audit_trail:
transports:
doctrine: true
# 4. Chain Transport (Multiple Transports)
You can enable multiple transports simultaneously. The bundle will automatically use a `ChainAuditTransport` to dispatch logs to all enabled transports.
audit_trail:
transports:
doctrine: true
queue:
enabled: true
# 5. Signature vs. Payload Signing
It is important to distinguish between the two types of signatures:
1. **Entity Signature (**`signature` **field in JSON):**
* Generated at the moment of creation.
* Signs the business data (Entity Class, ID, Changes).
* **Purpose:** Long-term data integrity and non-repudiation. Stored in the database.
2. **Transport Signature (**`X-Signature` **header or** `SignatureStamp`**):**
* Generated just before sending.
* Signs the *entire* payload (including the Entity Signature).
* **Purpose:** Transport security. Ensures the message wasn't tampered with during transit.
https://redd.it/1q3rey3
@r_php
Reddit
From the symfony community on Reddit: improved HTTP and queue transport handling
Explore this post and more from the symfony community
I built a Laravel app for vibe coding Laravel apps from my phone, using my voice
https://x.com/simonhamp/status/2007773433724117138?s=46
https://redd.it/1q3qc0s
@r_php
https://x.com/simonhamp/status/2007773433724117138?s=46
https://redd.it/1q3qc0s
@r_php
X (formerly Twitter)
Simon Hamp (@simonhamp) on X
i'm going to build all my Laravel apps this way from now on
📱 from my phone
🗣️ with my voice
⏰ previewing in realtime
📱 from my phone
🗣️ with my voice
⏰ previewing in realtime
Weekly /r/Laravel Help Thread
Ask your Laravel help questions here. To improve your chances of getting an answer from the community, here are some tips:
What steps have you taken so far?
What have you tried from the documentation?
Did you provide any error messages you are getting?
Are you able to provide instructions to replicate the issue?
Did you provide a code example?
Please don't post a screenshot of your code. Use the code block in the Reddit text editor and ensure it's formatted correctly.
For more immediate support, you can ask in the official Laravel Discord.
Thanks and welcome to the r/Laravel community!
https://redd.it/1q3wpbo
@r_php
Ask your Laravel help questions here. To improve your chances of getting an answer from the community, here are some tips:
What steps have you taken so far?
What have you tried from the documentation?
Did you provide any error messages you are getting?
Are you able to provide instructions to replicate the issue?
Did you provide a code example?
Please don't post a screenshot of your code. Use the code block in the Reddit text editor and ensure it's formatted correctly.
For more immediate support, you can ask in the official Laravel Discord.
Thanks and welcome to the r/Laravel community!
https://redd.it/1q3wpbo
@r_php
Laravel
Installation - Laravel 12.x - The PHP Framework For Web Artisans
Laravel is a PHP web application framework with expressive, elegant syntax. We’ve already laid the foundation — freeing you to create without sweating the small things.
My Laravel API Starter Template just got updated! you are welcome to try it!
Hello everyone,
Today, I’d like to share a Laravel API Starter Template that I’ve been using personally for quite a long time to build production-ready API projects. I’ve recently updated it to the latest Laravel version, and I believe it may be useful for many of you as well.
🔗 GitHub Repository
https://github.com/Innovix-Matrix-Systems/ims-laravel-api-starter
This starter template is designed to help you avoid rebuilding the same foundational features every time you start a new API project, so you can focus more on your actual business logic.
# What you’ll find in this starter:
🔐 Authentication & Security
Secure API authentication using Laravel Sanctum
Multi-device login with device-specific token management and logout
Phone-based OTP authentication with rate limiting
Role-Based Access Control (RBAC) with roles and permissions
📚 API Documentation
Scalar, Swagger UI, and OpenAPI support
Fully compatible with Postman for easy testing and sharing
📊 Monitoring & Observability
Laravel Telescope, Pulse, and Health
A unified dashboard to monitor application and system health
🏗️ Clean & Maintainable Architecture
Repository pattern
DTOs and service layer
Scalable, clean, and production-friendly structure
💾 Data & Background Processing
User management
Excel / CSV data import and export
Queue-based background job processing
Real-time job progress tracking
Automated cleanup for completed jobs and temporary files
🌍 Additional Features
Multi-language support (English and Bengali, with easy extensibility)
Fully containerized Docker development environment
Developer tools (code generators, IDE helpers, Git hooks)
Production-ready testing setup (Pest PHP, Mockery, queue testing, DTO validation)
If you work with Laravel and regularly build API or backend-focused projects, I hope this starter template can save you time and effort.
I kindly invite you to take a look, try it out, and share your feedback. Suggestions, issues, or contributions are always very welcome.
Thank you for your time.
https://redd.it/1q3zl4p
@r_php
Hello everyone,
Today, I’d like to share a Laravel API Starter Template that I’ve been using personally for quite a long time to build production-ready API projects. I’ve recently updated it to the latest Laravel version, and I believe it may be useful for many of you as well.
🔗 GitHub Repository
https://github.com/Innovix-Matrix-Systems/ims-laravel-api-starter
This starter template is designed to help you avoid rebuilding the same foundational features every time you start a new API project, so you can focus more on your actual business logic.
# What you’ll find in this starter:
🔐 Authentication & Security
Secure API authentication using Laravel Sanctum
Multi-device login with device-specific token management and logout
Phone-based OTP authentication with rate limiting
Role-Based Access Control (RBAC) with roles and permissions
📚 API Documentation
Scalar, Swagger UI, and OpenAPI support
Fully compatible with Postman for easy testing and sharing
📊 Monitoring & Observability
Laravel Telescope, Pulse, and Health
A unified dashboard to monitor application and system health
🏗️ Clean & Maintainable Architecture
Repository pattern
DTOs and service layer
Scalable, clean, and production-friendly structure
💾 Data & Background Processing
User management
Excel / CSV data import and export
Queue-based background job processing
Real-time job progress tracking
Automated cleanup for completed jobs and temporary files
🌍 Additional Features
Multi-language support (English and Bengali, with easy extensibility)
Fully containerized Docker development environment
Developer tools (code generators, IDE helpers, Git hooks)
Production-ready testing setup (Pest PHP, Mockery, queue testing, DTO validation)
If you work with Laravel and regularly build API or backend-focused projects, I hope this starter template can save you time and effort.
I kindly invite you to take a look, try it out, and share your feedback. Suggestions, issues, or contributions are always very welcome.
Thank you for your time.
https://redd.it/1q3zl4p
@r_php
GitHub
GitHub - Innovix-Matrix-Systems/ims-laravel-api-starter: ims-laravel-api-starter is a streamlined backend API starter application…
ims-laravel-api-starter is a streamlined backend API starter application built using the powerful Laravel framework. - Innovix-Matrix-Systems/ims-laravel-api-starter
Weekly Ask Anything Thread
Feel free to ask any questions you think may not warrant a post. Asking for help here is also fine.
https://redd.it/1q4bpu4
@r_php
Feel free to ask any questions you think may not warrant a post. Asking for help here is also fine.
https://redd.it/1q4bpu4
@r_php
Reddit
From the symfony community on Reddit
Explore this post and more from the symfony community
Weekly help thread
Hey there!
This subreddit isn't meant for help threads, though there'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!
https://redd.it/1q4evsy
@r_php
Hey there!
This subreddit isn't meant for help threads, though there'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!
https://redd.it/1q4evsy
@r_php
Reddit
From the PHP community on Reddit
Explore this post and more from the PHP community
PHP Version Changer?
I have several projects written in PHP, using different frameworks and CMSs. Recently, I installed PHP 8.4, and now I’m planning to install PHP 8.5 as well. After upgrading, I noticed that some of my older projects are showing deprecated warnings.
I’m looking for software or tools that allow me to easily switch between PHP versions so I can maintain and test these projects without constantly breaking compatibility.
I’ve already searched for some tools but I haven’t tested any of them yet.
Which tool would you recommend for managing multiple PHP versions efficiently in Linux and Windows.
https://redd.it/1q4kijh
@r_php
I have several projects written in PHP, using different frameworks and CMSs. Recently, I installed PHP 8.4, and now I’m planning to install PHP 8.5 as well. After upgrading, I noticed that some of my older projects are showing deprecated warnings.
I’m looking for software or tools that allow me to easily switch between PHP versions so I can maintain and test these projects without constantly breaking compatibility.
I’ve already searched for some tools but I haven’t tested any of them yet.
Which tool would you recommend for managing multiple PHP versions efficiently in Linux and Windows.
https://redd.it/1q4kijh
@r_php
Reddit
From the PHP community on Reddit
Explore this post and more from the PHP community
Multithreading in PHP: Looking to the Future
https://medium.com/@edmond.ht/multithreading-in-php-looking-to-the-future-4f42a48e47fe
https://redd.it/1q4sdkf
@r_php
https://medium.com/@edmond.ht/multithreading-in-php-looking-to-the-future-4f42a48e47fe
https://redd.it/1q4sdkf
@r_php
Medium
Multithreading in PHP: Looking to the Future
Exploring solutions and challenges for implementing parallelism in PHP. True Async coroutines and threads.
Your thoughts on Zed for Laravel development
Hi Laravel people.
I've been trying to use Zed for a while now. I keep coming back to VSCode because while Zed is so fast and nice to play with, VSCode seems to work better than VSCode for Laravel development (using regular blade and livewire).
I really wish I could use Zed more, but I don't know where to go from there to make it a great experience.
Do you use Zed full time? If so, what are the addons and settings do you use?
https://redd.it/1q4zwy6
@r_php
Hi Laravel people.
I've been trying to use Zed for a while now. I keep coming back to VSCode because while Zed is so fast and nice to play with, VSCode seems to work better than VSCode for Laravel development (using regular blade and livewire).
I really wish I could use Zed more, but I don't know where to go from there to make it a great experience.
Do you use Zed full time? If so, what are the addons and settings do you use?
https://redd.it/1q4zwy6
@r_php
Zed
Zed — Love your editor again
Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.
Deployed Laravel 12 (Concurrency) + Nuxt 4 in production. The performance boost is wild
Hey everyone,
I know using bleeding-edge versions (Laravel 12 + Nuxt 4) for a production app is risky, but I wanted to test the limits for a new project I'm building (a PPP pricing widget).
The Challenge: Since it's an embeddable widget, latency is everything. I need to resolve the user's GeoIP location AND fetch the Real-time Exchange Rate before rendering the discount.
Doing this sequentially (the old way) was adding too much overhead (\~300-400ms depending on the external APIs).
The Laravel 12 Solution: I utilized the improved
use Illuminate\Support\Facades\Concurrency;
// Both APIs are hit simultaneously $geoData, rateData =
Concurrency::run( fn () => $geoService->locate($ip), fn () => $currencyService->getRate('USD', $targetCurrency), );
The Result: The API response time dropped to \\<80ms (basically just the latency of the slowest provider + small overhead).
Combined with Nuxt 4 on the frontend (the new unbundled layer size is tiny), the widget feels instant.
Has anyone else started migrating to v12 for the Concurrency features? Would love to hear if you are hitting any edge cases.
(Link to the live demo in comments if you want to check the speed)
https://redd.it/1q77r1m
@r_php
Hey everyone,
I know using bleeding-edge versions (Laravel 12 + Nuxt 4) for a production app is risky, but I wanted to test the limits for a new project I'm building (a PPP pricing widget).
The Challenge: Since it's an embeddable widget, latency is everything. I need to resolve the user's GeoIP location AND fetch the Real-time Exchange Rate before rendering the discount.
Doing this sequentially (the old way) was adding too much overhead (\~300-400ms depending on the external APIs).
The Laravel 12 Solution: I utilized the improved
Concurrency facade to run these tasks in parallel without the complexity of configuring heavy queues for a simple read operation.use Illuminate\Support\Facades\Concurrency;
// Both APIs are hit simultaneously $geoData, rateData =
Concurrency::run( fn () => $geoService->locate($ip), fn () => $currencyService->getRate('USD', $targetCurrency), );
The Result: The API response time dropped to \\<80ms (basically just the latency of the slowest provider + small overhead).
Combined with Nuxt 4 on the frontend (the new unbundled layer size is tiny), the widget feels instant.
Has anyone else started migrating to v12 for the Concurrency features? Would love to hear if you are hitting any edge cases.
(Link to the live demo in comments if you want to check the speed)
https://redd.it/1q77r1m
@r_php
Reddit
From the laravel community on Reddit
Explore this post and more from the laravel community
I Don’t Understand What NativePHP Solves
I've been making web apps for a long time and I find Electron to be a really intuitive solution for making cross-platform desktop apps. It's not perfect, but it works and gives access to people who are not ready or interested in going fully native.
But NativePHP feels weird. You write your app in Laravel, but under the hood it still uses Electron. I had expected it to use the PHP CLI to export HTML, similar to how PHP normally works but this time without a server and just exporting it as a file. You could still use Blade and PHP syntax to generate the frontend while keeping things fast, and a smart wrapper could even let you use PHP for the backend as well. I’ve done this before with Electron, and it kinda works. I quickly threw it together in an hour just for fun, but if someone invested more time and energy, this could really be something.
Instead, NativePHP just starts a local Laravel development server and uses Electron for the window. This feels wrong. One of Electron’s advantages is using Node.js to avoid server overhead, but NativePHP reintroduces that overhead. In my experience, PHP’s cold start means starting a new app can take almost 10 seconds, and loading a new route can take several seconds even for simple text.
Many features are also broken on Windows, which makes it feel clearly aimed at macOS.
Overall, NativePHP feels like the wrong approach. Rather than using PHP CLI with a smart wrapper to generate HTML efficiently while keeping PHP as a backend, it just runs a local server inside Electron, losing the potential benefits of a “native PHP” desktop app.
So I'm not exacly sure what NativePHP solves as I dont see many pratical applications for it even for hobbying like myselfs I found many troubles trying to make simple app due to cold start making the experince rough and server having classic errors like HTTP range requests, things I think should probably not be happening on desktop apps.
https://redd.it/1q6nu8d
@r_php
I've been making web apps for a long time and I find Electron to be a really intuitive solution for making cross-platform desktop apps. It's not perfect, but it works and gives access to people who are not ready or interested in going fully native.
But NativePHP feels weird. You write your app in Laravel, but under the hood it still uses Electron. I had expected it to use the PHP CLI to export HTML, similar to how PHP normally works but this time without a server and just exporting it as a file. You could still use Blade and PHP syntax to generate the frontend while keeping things fast, and a smart wrapper could even let you use PHP for the backend as well. I’ve done this before with Electron, and it kinda works. I quickly threw it together in an hour just for fun, but if someone invested more time and energy, this could really be something.
Instead, NativePHP just starts a local Laravel development server and uses Electron for the window. This feels wrong. One of Electron’s advantages is using Node.js to avoid server overhead, but NativePHP reintroduces that overhead. In my experience, PHP’s cold start means starting a new app can take almost 10 seconds, and loading a new route can take several seconds even for simple text.
Many features are also broken on Windows, which makes it feel clearly aimed at macOS.
Overall, NativePHP feels like the wrong approach. Rather than using PHP CLI with a smart wrapper to generate HTML efficiently while keeping PHP as a backend, it just runs a local server inside Electron, losing the potential benefits of a “native PHP” desktop app.
So I'm not exacly sure what NativePHP solves as I dont see many pratical applications for it even for hobbying like myselfs I found many troubles trying to make simple app due to cold start making the experince rough and server having classic errors like HTTP range requests, things I think should probably not be happening on desktop apps.
https://redd.it/1q6nu8d
@r_php
Reddit
From the PHP community on Reddit
Explore this post and more from the PHP community
Orchestrated UI with Symfony UX and Mercure
https://clegginabox.co.uk/orchestrated-ui-with-symfony-ux-and-mercure/
https://redd.it/1q6thc5
@r_php
https://clegginabox.co.uk/orchestrated-ui-with-symfony-ux-and-mercure/
https://redd.it/1q6thc5
@r_php
Clegginabox
Orchestrated UI with Symfony UX and Mercure
In a previous post I wrote about a workflow/server driven UI using Symfony Forms and React. I created a demo to go with it, but it was rough and incomplete. Plus having a back-end sending a JSON representation of a form was only ever going to get me so
Awesome PHP ML: a curated list of ML resources for PHP
Hey folks,
Every time I searched for machine learning in PHP, I kept finding the same thing:
old blog posts, random repos, LLM generated posts and "PHP isn't for ML" comments.
But there are real libraries, tools, and projects out there - they're just scattered.
So I put them in one place:
👉 https://github.com/apphp/awesome-php-ml
The repo is a curated list of:
PHP machine learning & AI libraries
math, data processing, and stats tools
example projects
articles and learning resources
The goal isn't to turn PHP into ... (you know what I mean, right?), just to make it easier to see what's already possible and save people from hunting across GitHub and outdated posts.
It's early and definitely incomplete – contributions and suggestions are welcome.
If you've ever wondered “is anyone actually doing ML with PHP?” – this is my attempt to answer that.
https://redd.it/1q6rezq
@r_php
Hey folks,
Every time I searched for machine learning in PHP, I kept finding the same thing:
old blog posts, random repos, LLM generated posts and "PHP isn't for ML" comments.
But there are real libraries, tools, and projects out there - they're just scattered.
So I put them in one place:
👉 https://github.com/apphp/awesome-php-ml
The repo is a curated list of:
PHP machine learning & AI libraries
math, data processing, and stats tools
example projects
articles and learning resources
The goal isn't to turn PHP into ... (you know what I mean, right?), just to make it easier to see what's already possible and save people from hunting across GitHub and outdated posts.
It's early and definitely incomplete – contributions and suggestions are welcome.
If you've ever wondered “is anyone actually doing ML with PHP?” – this is my attempt to answer that.
https://redd.it/1q6rezq
@r_php
GitHub
GitHub - apphp/awesome-php-ml: The most comprehensive curated list of Machine Learning, Artificial Intelligence, NLP, LLM, and…
The most comprehensive curated list of Machine Learning, Artificial Intelligence, NLP, LLM, and Data Science libraries for PHP - apphp/awesome-php-ml
Investigating the performance of Laravel's `whereIn` vs `whereIntegerInRaw` - blog.thms.uk
https://blog.thms.uk/2026/01/laravel-wherein?utm_source=reddit
https://redd.it/1q7au88
@r_php
https://blog.thms.uk/2026/01/laravel-wherein?utm_source=reddit
https://redd.it/1q7au88
@r_php
blog.thms.uk
Investigating the performance of Laravel's `whereIn` vs `whereIntegerInRaw` - blog.thms.uk
Revisiting a classic Laravel tip: does `whereIntegerInRaw()` outperform `whereIn()` in 2026?
Typing in Yii3 is the strictest in PHP universe?
I haven't thought about it before, but it seems Yii3 is the most strictly typed framework in the whole PHP frameworks universe. Psalm level 1 (similar to PhpStan level 10).
It allows you to catch errors while developing and is another layer of automatic checks to watch for what the LLM agent is doing.
What's the static typing level of your favorite framework?
https://redd.it/1q81l9d
@r_php
I haven't thought about it before, but it seems Yii3 is the most strictly typed framework in the whole PHP frameworks universe. Psalm level 1 (similar to PhpStan level 10).
It allows you to catch errors while developing and is another layer of automatic checks to watch for what the LLM agent is doing.
What's the static typing level of your favorite framework?
https://redd.it/1q81l9d
@r_php
Reddit
From the PHP community on Reddit
Explore this post and more from the PHP community
Laravel Tips You Probably Haven’t Seen Yet (Strongly Typed Config Objects, Cachable Closures, Testing Tricks)
https://www.youtube.com/watch?v=pNpfVmlcdaA
https://redd.it/1q81hb3
@r_php
https://www.youtube.com/watch?v=pNpfVmlcdaA
https://redd.it/1q81hb3
@r_php
YouTube
What if...; a collection of Laravel tips with Sandro Gehri
Christmas is just around the corner - time for a few DX wishes. Sandro will present a collection of ideas that arose from his desire for readable and clean code.
Maybe there's something here that you can give yourself for Christmas 🎄
*Chapters*
00:14 Start…
Maybe there's something here that you can give yourself for Christmas 🎄
*Chapters*
00:14 Start…
Advanced Query Scopes - Laravel In Practice EP2
https://youtu.be/2yQBIfcDzkY
https://redd.it/1q82gii
@r_php
https://youtu.be/2yQBIfcDzkY
https://redd.it/1q82gii
@r_php
YouTube
Advanced Query Scopes - Laravel In Practice EP2
In this episode, Harris from Laravel News shows you exactly how to:
- Use Laravel 12's new #[Scope] attribute for clean query filtering
- Chain scopes together for expressive database queries
- Combine query scopes with custom collections for powerful data…
- Use Laravel 12's new #[Scope] attribute for clean query filtering
- Chain scopes together for expressive database queries
- Combine query scopes with custom collections for powerful data…
SymfonyLive Paris 2026: Plus que 2 semaines avant le changement de prix ! ⏰
https://symfony.com/blog/symfonylive-paris-2026-plus-que-2-semaines-avant-le-changement-de-prix?utm_medium=feed&utm_source=Symfony%20Blog%20Feed
https://redd.it/1q6kmuv
@r_php
https://symfony.com/blog/symfonylive-paris-2026-plus-que-2-semaines-avant-le-changement-de-prix?utm_medium=feed&utm_source=Symfony%20Blog%20Feed
https://redd.it/1q6kmuv
@r_php
Symfony
SymfonyLive Paris 2026: Plus que 2 semaines avant le changement de prix ! ⏰ (Symfony Blog)
Plus que 2 semaines avant l’augmentation des prix pour SymfonyLive Paris 🇫🇷⏰ Rejoignez la communauté, profitez de talks Symfony concrets et réservez votre billet avant la hausse des tarif…
Neuron AI Laravel SDK
It was asked by many Laravel developers. Not that Neuron needs invasive abstractions. So I kept it deliberately simple to automate some integration points with Laravel, such as the ready-made configuration file, provider facades, artisan commands, and other utilities for a more "Laravel native" experience. Otherwise, you can take advantage of Neuron's native APIs to develop your agent systems seamlessly.
I hope it's what some Laravel developers need to better understand the potential of Neuron framework. Feel free to share any feedback, I'm here to learn from your experience.
https://github.com/neuron-core/neuron-laravel
https://redd.it/1q78zu3
@r_php
It was asked by many Laravel developers. Not that Neuron needs invasive abstractions. So I kept it deliberately simple to automate some integration points with Laravel, such as the ready-made configuration file, provider facades, artisan commands, and other utilities for a more "Laravel native" experience. Otherwise, you can take advantage of Neuron's native APIs to develop your agent systems seamlessly.
I hope it's what some Laravel developers need to better understand the potential of Neuron framework. Feel free to share any feedback, I'm here to learn from your experience.
https://github.com/neuron-core/neuron-laravel
https://redd.it/1q78zu3
@r_php
GitHub
GitHub - neuron-core/neuron-laravel: Utility Package for using Neuron AI in Laravel applications.
Utility Package for using Neuron AI in Laravel applications. - neuron-core/neuron-laravel
I made a php documentation generator
https://github.com/thecichos/AutoDocumentation
https://redd.it/1q86fkk
@r_php
https://github.com/thecichos/AutoDocumentation
https://redd.it/1q86fkk
@r_php
GitHub
GitHub - thecichos/AutoDocumentation: Automatic API and code documentation generation using PHP attributes
Automatic API and code documentation generation using PHP attributes - thecichos/AutoDocumentation