PHP Reddit – Telegram
PHP Reddit
34 subscribers
286 photos
36 videos
24.7K links
Channel to sync with /r/PHP /r/Laravel /r/Symfony. Powered by awesome @r_channels and @reddit2telegram
Download Telegram
Literature

It’s been a while since I’ve looked at any Laravel books. What are the current books out there for building modern applications using best practices?

https://redd.it/1pc4lul
@r_php
Using landlock in a php noscript

There's a maturing API in Linux called landlock. It looks really promising as a way for applications to state their access intentions and then lock themselves into that.

Based on dealing with past PHP exploits, this would be a great additional way to limit access to the filesystem and to the network in a way that would be another speed bump for the nefarious out there.

However, the settings remain active for a thread/process. I haven't really dug into the weeds on low level php deployments. Do the usual deployment models launch threads/processes for each noscript or use a thread/process pool? If the latter, this wouldn't work.

https://redd.it/1pc4nwb
@r_php
What’s one “unpopular opinion” you have about modern PHP development?

I feel like everyone talks about frameworks, performance, and best practices, but PHP devs rarely share the real hot takes. So I’m curious:

What’s one opinion you have about PHP that most devs would probably disagree with?

https://redd.it/1pc6c4v
@r_php
ANN Restler v6.0.0: Zero-Boilerplate PHP REST API Framework with Async Support

Hi r/PHP! 👋

We're excited to announce Restler v6.0.0, a complete rebuild of our PHP REST API framework that's been in production since 2010.

# What's Restler?

Restler is for developers who want to build REST APIs in PHP without fighting boilerplate. You write a class, Restler handles the rest:

class Products {
function get(int $id): array {
return Database::findProduct($id);
}
}

$api = new Restler();
$api->addAPIClass(Products::class);
$api->handle();

That's it.

Routes? Auto-generated.
Validation? Type hints + PHPDoc.
Documentation? OpenAPI 3.0 auto-generated.
Content negotiation? JSON, XML, CSV, Excel—automatic.
HTTP status codes? Correct ones, automatic.

# What's New in v6?

1. Async Performance

Swoole/ReactPHP support: 10-15x throughput vs traditional PHP-FPM
AWS Lambda/serverless ready (via Bref)
Same code works on all runtimes

2. Modern PHP 8+

Full PHP 8.0-8.5 support
Strict typing throughout
PSR-7 HTTP messages
PSR-11 container

3. Security First

Replaced unsafe `unserialize()` with JSON (prevents object injection)
JSONP callback validation
Template variable hardening
Professional security policy

4. Multi-Format

GET /api/products/123 → JSON
GET /api/products/123.xml → XML
GET /api/products/123.csv → CSV
GET /api/products/123.xlsx → Excel

One class. Every format.

5. Complete Documentation

12 comprehensive guides
18+ working examples
Migration guide from v5
Security best practices

# Comparison with Other Frameworks

|Feature|Restler|Laravel|Symfony|
|:-|:-|:-|:-|
|Boilerplate (LOC)|5|50+|60+|
|Learning curve|Minimal|Steep|Steep|
|Auto-docs||🔨|🔨|
|Multi-format||🔨|🔨|
|Type safety||||
|Async ready||||
|For APIs| Primary| Secondary| Secondary|

Note: This is our take. Other frameworks are great for different use cases.

# Upgrading from v5

If you're using v5:

Minimal breaking changes
Migration guide: https://github.com/Luracast/Restler/blob/master/MIGRATION.md
Most APIs migrate in 2-4 hours
Same simplicity, better performance

# Getting Started

composer require luracast/restler:^6.0

Full docs: https://github.com/Luracast/Restler

# The Numbers

15 years in production
500K+ Packagist downloads
1,300+ GitHub stars
98.8% test coverage
Zero CVEs in recent versions
10-15x performance with async (Swoole)

# Community & Support

Questions? [GitHub Discussions](https://github.com/Luracast/Restler/discussions)
Issues? GitHub Issues
Security? [SECURITY.md](https://github.com/Luracast/Restler/blob/master/SECURITY.md)

# Why This Matters

If you've been frustrated with:

Boilerplate in your REST API framework
Slow performance with traditional PHP-FPM
Overhead of learning complex frameworks just for an API
Documentation that's outdated or incomplete

Restler might be the framework you've been looking for.

We're not trying to replace Laravel/Symfony (great frameworks!). We're offering a focused, simple alternative for API development.

# Questions I Expect

Q: Why not just use Laravel/Symfony?
A: For APIs, Restler does more with less. But Laravel/Symfony are great for web apps.

Q: Is it battle-tested?
A: 15 years in production. Fortune 500 companies use it. Zero recent CVEs.

Q: What if I need a web UI?
A: Restler focuses on APIs. Use it with a separate frontend (React, Vue, etc.).

Q: How hard is the migration from v5?
A: 2-4 hours for typical APIs. See migration guide.

Q: Can I use it with Laravel?
A: Restler is standalone. But you could use both (Restler with Laravel components).

Q: What about GraphQL?
A: Built-in support in v6.

# Links

GitHub:
https://github.com/Luracast/Restler
Packagist: [https://packagist.org/packages/luracast/restler](https://packagist.org/packages/luracast/restler)
Documentation: https://github.com/Luracast/Restler/blob/master/README.md
Blog Post: [https://luracast.com/blog/restler-v6-launch](https://luracast.com/blog/restler-v6-launch) (link to your blog)
Discussions: https://github.com/Luracast/Restler/discussions

We'd love your feedback! Ask questions, share experiences, or tell us what you think.

Excited to hear what you build with Restler v6! 🚀

# P.S.

If you try it, drop a comment here. Love it? Hate it? Somewhere in between? Let us know!

https://redd.it/1pc99qm
@r_php
PHP Landscape Survey

Disclaimer: I'm employed for Perforce Zend.

Calling PHP developers! The 2026 State of Open Source and PHP Survey needs your technical perspective. Help us analyze enterprise OSS adoption patterns and PHP ecosystem evolution.
Plus, for every 500 responses we receive, we'll increase our donation to open source initiatives by $1K 

We will be closing the survey soon. I can share the report with the community once produced in the spring!


https://www.surveymonkey.com/r/7SXYYMQ

https://redd.it/1pcayj8
@r_php
UUID data type. Generated on database side or in code, on PHP side ?

Since Mariadb 10.7, there is the UUID data type available.

In Postgres, UUID data type was available since forever.

Now , my dilemma is: if I want to use in my project UUID data type, should i:

1. generate the uuid on PHP side, using Ramsey's library and insert it in a uuid data type column ?

OR

2. count on database engine to autogenerate an uuid ?

Option #1 have the advantage that Doctrine is ok with it , and I do not need to care if the database can generate an uuid_v4 or uuid_v7.

Option #2 have the advantage that it reduces the CPU cycles of PHP code and move the burden of generating the uuid on database side .

What do you think would be the better options and why ?

https://redd.it/1pcf5hh
@r_php
Looking for a PHP noscript that can timeline email correspondence between people

Hi all

I’m looking for a PHP noscript that can potentially log into an IMAP email Box and read and process these emails (any unread emails) and strip attachments.

Catalogue them into a database and generate a timeline of the correspondence

There may be multiple people involved in this same email chain

Alternatively I’m also looking for a EML file viewer with browser support?

Thanks!

https://redd.it/1pcx44h
@r_php
Cloudflare Vectorize driver for Laravel Scout

I've created a Scout driver for Cloudflare Vectorize vector databases. It's more a proof of concept at the moment, although it is functional - if you're looking for symantic search, Vectorize is a neat way to deliver it.

You can find it here https://github.com/brynj-digital/laravel-scout-vectorize

https://redd.it/1pciy2d
@r_php
Swoole or Go for this specific use case

I have a certain part of my ecommerce website builder SaaS that I'm rewriting from regular PHP. Basically it's a page builder like Shopify's page builder. It allows people to customize sections, which are in turn written in a custom templating language and have reflection built-in to expose customization options inside the page builder per-section and per-block. It also has a live preview that shows the changes made in real-time.

The template interpreter is written in Rust and it also handles the user-facing side of people's websites, while the admin panel is PHP. So the theme builder backend will basically have to ask the Rust process to re-interpret the preview and return the HTML on every change, probably through a socket connection.

There are several reasons for the rewrite apart from speed - the codebase a mess from 3 years of feature additions, removals and just using less-than-optimal logic for many things. and also keeping it as part of the admin panel rather than on a separate domain means if something happens to it or if there's a traffic surge it affects the whole admin panel's performance (the rest of the admin panel is still PHP and I don't plan on migrating).

I love PHP - I think it's probably the most flexible language out there and I wouldn't have been able to make my platform as powerful as it is right now in any other language. I've been using it for 8+ years and it's still my favourite language. However I've never used Swoole or Go (though I have used some Roadrunner) so I was wondering if I should go for Swoole or with Go for this project. Does Swoole have any advantages other than a familiar syntax?

https://redd.it/1pd3f27
@r_php
PHP date function changed?

I might have missed something, but PHP's date function has changed.

PHP 8.1> echo date("Ymd", false) = 19691231
PHP 8.3> echo date("Ymd", false) = 19700101

What changed? Why? Was it announced?

EDIT:

PHP 8.1 is on Ubuntu 22.04
PHP 8.3 is on Ubuntu 24.04

Same timezones on both boxes.

https://redd.it/1pdg8lc
@r_php
🔱 Seaman Beta - Development environment manager for Symfony

I am building **Seaman**, a Docker development environment manager for Symfony 7+ inspired by Laravel Sail.

Features:

* Interactive setup with smart project detection
* PostgreSQL, MySQL, MongoDB, Redis, Elasticsearch, RabbitMQ, etc.
* Xdebug toggle without restarts
* DevContainers support
* Single PHAR, easy install

⚠️ Beta status - There may be bugs! Barely tested on Linux/macOS, Windows needs testing. A lot of bugs may appear; please be merciful, this is a work in progress.

For more information and documentation, please refer to the GitHub repo:

[https://github.com/diego-ninja/seaman](https://github.com/diego-ninja/seaman)

Comments, ideas, contributions, testers, and GitHub 🌟 are always welcome.

Made with ❤️ for Symfony in my free time. Hope you find it useful!

https://redd.it/1pdgwj7
@r_php
🔱 Seaman Beta - Development environment manager for Symfony

I am building **Seaman**, a Docker development environment manager for Symfony 7+ inspired by Laravel Sail.

Features:

* Interactive setup with smart project detection
* PostgreSQL, MySQL, MongoDB, Redis, Elasticsearch, RabbitMQ, etc.
* Xdebug toggle without restarts
* DevContainers support
* Single PHAR, easy install

⚠️ Beta status - There may be bugs! Barely tested on Linux/macOS, Windows needs testing. A lot of bugs may appear; please be merciful, this is a work in progress.

For more information and documentation, please refer to the GitHub repo:

[https://github.com/diego-ninja/seaman](https://github.com/diego-ninja/seaman)

Comments, ideas, contributions, testers, and GitHub 🌟 are always welcome.

Made with ❤️ for Symfony in my free time. Hope you find it useful!

https://redd.it/1pdgvro
@r_php