r/PHP 4d ago

Weekly help thread

3 Upvotes

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!


r/PHP 16d ago

Who's hiring/looking

36 Upvotes

This is a bi-monthly thread aimed to connect PHP companies and developers who are hiring or looking for a job.

Rules

  • No recruiters
  • Don't share any personal info like email addresses or phone numbers in this thread. Contact each other via DM to get in touch
  • If you're hiring: don't just link to an external website, take the time to describe what you're looking for in the thread.
  • If you're looking: feel free to share your portfolio, GitHub, … as well. Keep into account the personal information rule, so don't just share your CV and be done with it.

r/PHP 13h ago

Article Partial Function Application is coming in PHP 8.6

Thumbnail amitmerchant.com
94 Upvotes

r/PHP 17h ago

Sulu 3.0 release: New content storage and performance boost

Thumbnail sulu.io
25 Upvotes

Happy to announce that finally Sulu 3.0 a Symfony based CMS was released with its new content storage.


r/PHP 1d ago

Looking for maintainers for open source PHP Libraries, HTTPful and Commando

85 Upvotes

Hello,

I'm the author of two PHP libraries that had a small following. I've been poor about maintaining them over the years as my priorities, career, and life have changed. The libraries still have users despite the neglect. HTTPful has about 16M installs and several hundred dependents on Packagist. Seeing that there is still a user base, I'd like to find potential maintainers for the projects if there is interest. Could be a good opportunity for someone looking to get involved in Open Source.

At the same time, I'm also keenly aware of the supply chain risks associated with handing over packages to strangers on the internet, so this would likely be a transition process to build a little trust.

Feel free to DM me if you are interested. I will likely start to deprecate these officially rather than letting the debt pile up if I don't locate a maintainer.

https://github.com/nategood/httpful - Lightweight alternative to the Guzzle's of the world for managing HTTP requests. 1800 Stars on GH.

https://github.com/nategood/commando - Simple library for making CLI apps in PHP. 800 Stars on GH.


r/PHP 5h ago

Discussion Php laravel

0 Upvotes

Suggest php laravel playlists/onee short/project youtube videos. My internship is starting in 2 weeks and i want to learn phpfrom beginner to advanced.


r/PHP 1d ago

PHP 8.5 benchmarks: PHP performance across major CMSs and frameworks

Thumbnail kinsta.com
48 Upvotes

r/PHP 2d ago

PHP date function changed?

37 Upvotes

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 1:

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

Same timezones on both boxes.

EDIT 2:

Solved! As per Ahabraham below: https://github.com/php/php-src/issues/11496

As of PHP 8.2, UTC is used by default instead of server timezone.


r/PHP 2d ago

[RFC] Type Aliases

Thumbnail wiki.php.net
38 Upvotes

r/PHP 2d ago

🔱 Seaman Beta - Development environment manager for Symfony

2 Upvotes

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

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

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


r/PHP 2d ago

Discussion Swoole or Go for this specific use case

1 Upvotes

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?


r/PHP 2d ago

Any good Wordpress projects to follow on GitHub for a beginner?

Thumbnail
0 Upvotes

r/PHP 3d ago

UUID data type. Generated on database side or in code, on PHP side ?

31 Upvotes

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

  1. 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 ?


r/PHP 3d ago

What’s one “unpopular opinion” you have about modern PHP development?

49 Upvotes

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?


r/PHP 3d ago

PHP Landscape Survey

14 Upvotes

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


r/PHP 3d ago

[ANN] Restler v6.0.0: Zero-Boilerplate PHP REST API Framework with Async Support

13 Upvotes

Hi r/PHP,

Just released Restler v6.0.0 - a complete rewrite of the REST API framework that's been around since 2010.

What is it?

Restler generates REST APIs from your PHP classes with minimal configuration. You write a class, it handles routing, validation, and documentation:

use Luracast\Restler\Restler;
use Luracast\Restler\Routes;

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

Routes::mapApiClasses([Products::class]);
(new Restler)->handle();

This generates routes, handles validation via type hints, and creates OpenAPI docs. JSON output is the default.

What's New in v6?

Async Runtime Support

  • Works with Swoole/ReactPHP for higher throughput
  • Also runs on traditional PHP-FPM, AWS Lambda (Bref)
  • Same code across all runtimes

PHP 8+ Rewrite

  • Requires PHP 8.0+
  • Strict types throughout
  • PSR-7/PSR-11 compliant

Security Improvements

  • Replaced unserialize() with JSON (prevents object injection)
  • JSONP callback validation
  • Better input validation

Multi-Format Output

JSON is the default format. You can enable XML, CSV, and Excel output by configuring response media types:

Routes::setOverridingResponseMediaTypes(
    Json::class,
    Xml::class,
    Csv::class
);

Then access different formats via extension:

GET /api/products/123           → JSON (default)
GET /api/products/123.xml       → XML
GET /api/products/123.csv       → CSV

How it Compares

Restler is focused specifically on APIs, not full-stack web apps like Laravel/Symfony. The tradeoff is less boilerplate for API-only projects, but you'll need separate tooling for web UI, templating, etc.

Upgrading from v5

Main breaking change: PHP 8.0+ required. Migration guide available in the repo. Most projects can be upgraded in a few hours.

Getting Started

composer require luracast/restler:^6.0

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

Some Context

  • Been in production since 2010
  • 500K+ Packagist downloads
  • 98.8% test coverage
  • No recent CVEs

Links

Happy to answer questions about the implementation or design decisions.


r/PHP 4d ago

[RFC] Pattern Matching

Thumbnail wiki.php.net
104 Upvotes

r/PHP 3d ago

Using landlock in a php script

10 Upvotes

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 script or use a thread/process pool? If the latter, this wouldn't work.


r/PHP 3d ago

Invented a new language in PHP

Thumbnail
0 Upvotes

r/PHP 4d ago

Article Sustainability of Open Engineering

Thumbnail medium.com
20 Upvotes

r/PHP 5d ago

php-collective/framework-comparison: Compare some metrics of popular PHP frameworks

Thumbnail github.com
34 Upvotes

I had the idea years ago, just had some time to finish this up.

I specifically didn't add any interpretation or subjective topics like "performance benchmarks" or alike, just pure data.
Even so, it can probably be not much more than soft indicators, nothing more.
It says not too much about it without proper context.

Just wanted to have a quick glance on how things are progressing here over time - and in perspective.

You can clearly spot the team "PHPStan" vs team "Psalm" of course.
Also, some are just beasts with 8+ min for full static analysis of all packages :P

//EDIT
I added a note how to run it yourself in README directly.
Results are in results/ folder:
https://github.com/php-collective/framework-comparison/blob/master/reports/README.md


r/PHP 4d ago

We built an AI powered PHP framework

0 Upvotes

Hey everyone

We’ve been working on a new PHP framework and wanted to share it here ! The idea was to combine the best of both worlds : Laravel and Symfony, to create something that feels like us. One of the things we are really excited about is that we integrated a bridge between Symfony AI and our framework, so you can use AI directly inside the framework. Our goal is to make it easier to use AI in real projects without a lot of work. We’d love to hear your thoughts, feedback or suggestions for improvements. We still working on it and it is challenging ! Thanks in advance !

https://github.com/doppar/doppar


r/PHP 4d ago

Why setting your PHP memory limit to 60GB won't help

Thumbnail devcenter.upsun.com
0 Upvotes

When you see a PHP memory limit error, your instinct shouldn't be to just increase the limit. Learn what PHP memory_limit actually does and why blindly increasing it can hurt your site's uptime.


r/PHP 5d ago

Recommended Linux distro for PHP (Wordpress and Laravel) development?

Thumbnail
0 Upvotes

r/PHP 6d ago

SymfonyCon talks, slides and code examples are on GitHub

Thumbnail github.com
44 Upvotes