PHP Reddit – Telegram
PHP Reddit
34 subscribers
291 photos
37 videos
24.9K links
Channel to sync with /r/PHP /r/Laravel /r/Symfony. Powered by awesome @r_channels and @reddit2telegram
Download Telegram
Are PHP Type Hints really required when using static code analysis tools like PHPStan?

In my current PHP8 project, I started in November, I use consequently type hinting.

Now I jumped to PHPStan at Level 8 and starts to fulfil the compliance requirements.
Nice tool btw.

Honestly, it is my first time to use phpstan, so this maybe be a blasphemy question.

Can some explain me when phpstan, etc. does a great work on checking code, keep variables consistencies and can be even enhanced to hard bleeding modes;

Why is it necessary to implement more and more performance killing runtime checks in a dynamic language?

I liked that type hints reduced the annotation orgies, but that cannot be the only reason?





https://redd.it/1lc0dqv
@r_php
Intelephense not indexing _ide_helper.php in Laravel project

Hey,
I'm having trouble getting Intelephense to index the `_ide_helper.php` file generated by `laravel-ide-helper`. I’ve tested this in both Emacs and Helix to rule out editor-specific issues — same result.

I’ve already:

* Increased `intelephense.files.maxSize` to 5MB,
* Verified it's located in the project root, and technically LSP must be able to index it
* Checked logs, but didn’t find anything useful.

Everything else in the project is indexed fine, it's just this helper file that seems to be ignored.

It can find the Auth facade from Illuminate/Foundation/Helpers, but not from the \_ide\_helper.php file.

Here's the example code where my LSP fails:

public function logout(): void
{
auth()->logout();
}

Any ideas on what might be going wrong, or what else I can check to get it fixed?

Appreciate any pointers!

https://redd.it/1lc2ol6
@r_php
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/1lc57m5
@r_php
Who is using livewire with php n laravel ?

Is there anyone using livewire heavily ?

https://redd.it/1lc93vg
@r_php
Sublime Text setup for Laravel ..... (PLEASE!!!)

Ok. I've given it many months with PHPStorm and other setups --- and I DO NOT like any of them at all. I really really tried. There are a lot of cool things in there... but - After spending the last few days with my classic ol Sublime Text --- please please please do not make me go back... I require so very little. Someone out there - must have a setup that covers the basics.

I'm open to other ideas too. If you've got a PHPStorm setup that is somehow 5x better than what I've got worked out - or want to delete everything in mine -- and show me the light / I'll return the favor.

As it stands -- I'd rather work in Sublime - and then go into every file one by one - afterward in PHPStorm and hit save for formatting and things like that.

https://redd.it/1lcffgq
@r_php
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/1lcijib
@r_php
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/1lclbxt
@r_php
What VS Code plugins do you install now that Laravel official plugin is released?

I had a very old vscode installation with a ton of php/html/laravel plugins and I want to clean up what's no longer necessary or add something new if needed.

So, what other extensions do you install on a fresh vs code setup (besides the official Laravel plugin)?

https://redd.it/1lcnmpb
@r_php
MCP Server Bundle for Symfony

Hello everyone,

I released a Symfony bundle aiming to ease the development of Model Context Protocol (MCP) servers using Symfony.

If you've never heard of MCP before, it is the new big thing in the AI revolution.

To make it simple, Large Language Models (LLMs) are powerful, but they do not have access to the outside world: they cannot navigate on the Internet, browse their host machine’s file system, access an external database…

However, these LLMs can be enhanced with capacities, which are called tools.

These tools are not built into the LLM. They’re provided by you, the developer.
The way it works is the Agent (An app using an LLM to function) is given, in addition to the prompt, a list of external tools which can be used to fulfill the user’s need.

The LLM then decides if it’s able to fulfill the request on its own (like craft a piece of text) or if it needs to use a tool that matches its needs in the provided list.

The Model Context Protocol defines a way of communicating between what could be called “agents” (Clients) and external apps (Servers).

This bundle allows for easy integration of MCP capabilities into any existing Symfony project.

Read more on the GitHub page : https://github.com/EdouardCourty/mcp-server-bundle

Feel free to comment my work, I'll be happy to discuss with the community 😄

https://redd.it/1lcr77s
@r_php
Any way to use Swoole as a drop-in replacement for Apache?

I have a SaaS company. I have been working on it for several years now and the issue is - when I started, I used Apache and the LAMP stack. Basically we provide a complete website builder like Shopify - so I require features like complex operations with products and their variations, custom template language parsing, etc. and Apache has served me really well with all the feature-related needs.

However, as we grow, I am really feeling the need to switch the website to a faster alternative like Swoole. The only issue is - I don't have the luxury to spend a few months rewriting.

Currently I have my own custom router. And I am using regular php syntax - sessions, cookies, $_SERVER, die() etc.

Is there any way that, just for the time being, I could create a server.php and set it to:

Redirect everything to router.php
Set all the variables that are needed by regular php
Define some php functions that function differently in Swoole (if any)
Clear all global variables so everything resets on page reload

I know that this is probably going to reduce Swoole's benefits, but I just need a one-time solution so I can quickly switch, then I'll gradually rewrite parts of the website in raw swoole.

https://redd.it/1lcs36y
@r_php
Your experience with AI Agents and AI Programming Tools in 2025

Sorry for the long post!

I'm trying to get an idea of which tools are working for people in PHP projects and what doesn't work - and whether my experience is normal or not.


I've worked at the same company for 15 years, and worked on various large and complicated code bases overseeing transitions from PHP4/5 up to 8.4 now. The company adopted an in-house framework in 2006 and there's still a version of it in use today. This approach has meant our code can be bespoke, modular, shared between projects when necessary and throughout this 15 years we've been able to control upgrades and changes and maintain backward compatability. Go look at Symfony v1 compared to what we have today and it's unrecognisable. Laravel wasn't created until 2011 and went through various rewrites in those early years. I expect if we were starting from scratch today we'd probably pick Symfony - but we're not starting from scratch - we have millions of lines of code already.


Anyway - for a little while now myself and other members of my team have tried IDE AI Autocomplete tools like Copilot and the jetbrains PHPStorm AI chat - as well as ocassionally running problems through Chat GPT or Gemini - and those smaller tasks (the amount of code you might fit onto your screen) typically work or at least help us fix issues.

Recently, I've been trying to use some of the AI Agents instead. Junie (PHPStorm), Claude code, Aider - and they just don't work at all for me. They get completely confused by our codebase, the concepts, the structure. They pick and choose the wrong parts to work on (even when I tell them not to). They don't understand our routing, our ORM, our controllers, our caching, our forms - anything.

Presumably an AI is going to be good at solving the sort of problems it's been trained on from the internet - so public Github projects, etc? Probably lots of open source pieces of work. Python, go, nodejs? If we had a Django website maybe it would be fine. I expect it'll be good for Wordpress development and maybe Symfony and Laravel projects too? Although I'm willing to bet few 'enterprise-style' websites have source code in the public domain.

I've realised that our projects, framework, ORM, system, etc is so different from anything else out there (including the way we split our code up into separate repos) that I'm not sure there is going to be much in the training data for an AI to relate it to. I am going to have to explain things in book-level detail to get anywhere and my hunch is that the more understanding that's baked into the model (rather than given in the prompt at runtime) the better.

Am I missing something obvious here? Is everyone else producing incredible work with AI? What are your experiences?

https://redd.it/1ldew5x
@r_php
I made an ORM for the legacy projects I work on

I just published a composer package for the ORM "framework" I've developed from modernising some legacy PHP applications over the last 5 years: https://github.com/mattdinthehouse/porm/ 😊

PORM came about because I wanted to work with consistent model classes but these projects were built with raw SQL everywhere (so many injection vulns) and worked with associative arrays which meant no IDE autocomplete and linting...

Installing a comprehensive ORM like Doctrine was gonna be too disruptive and rebuilds were out of the question, so we chose to slowly migrate code over to a lightweight class-based set of "helper" models which has been a great success and now I'm moving the system into this package to share with everyone

Have a look at the example folder for some demo code, and I'd love to get feedback on it! I'm gonna continue using it for work anyway so it doesn't matter if nobody uses it 😅

This v1 release is just the core ORM functionality and there's a handful of other stuff that I'm going to move into this package like schema output for API endpoints, instantiating model objects from arrays/JSON which I can later wrap in form request validation, diffing objects, and writing to the DB

PS - I live in Australia and I'm about to go to bed so I'll read everybody's comments in the morning 🦘

https://redd.it/1ldkigy
@r_php
Stochastix: a backtesting framework for crypto trading in PHP

Few months ago I discovered the world of crypto trading, which led me to find about algorithmic trading. And in this world, Python is king. Python or MetaTrader's MQL5, which is basically C++. Meh. Interesting and powerful but painful to use, even with vibe coding. Nothing like the great developer experience of Pine Script in TradingView.

So I decided to create Stochastix, a backtesting framework built with PHP 8.4 and Symfony. It was a good opportunity to explore how would work a backtesting framework. Along the way I discovered the PHP extension `ds`. Never heard of it before. I had a x80 performance gain as soon as I implemented its data structures. This lib should be default. The framework also uses `bcmath` for arbitrary precision calculations.

Coming from a web development background, this new way of using PHP was a great experience.

Here's a quick overview of the framework:

* bar-by-bar ("realtime" processing) as opposed to vectorized frameworks
* market, limit, stop orders
* multi-timeframe strategies
* custom indicators
* binary formats to speed up data loading
* automatic data download from lots of exchanges (ccxt lib)
* UI built with nuxt with real-time updates with Mercure
* chart plotting showing indicators and executed trades
* number metrics and visual metrics (equity curve, drawdown, etc.)
* default docker install using frankenphp (one-liner installation)
* background jobs with Symfomy Messenger

It's a work in progress, to be totally honest I'm not totally sure about all the metrics calculations, especially Beta and Alpha. But I think it's a good start, and I know I'll personally use it to build strategies from now on.

If you have a background in algotrading or if you have an sudden interest, I'll be happy to get some feedback.

The website is available at [https://phpquant.github.io/stochastix-docs/](https://phpquant.github.io/stochastix-docs/)

You can have a look at what a strategy code looks like here: [https://github.com/phpquant/stochastix-core/blob/master/recipe/src/Strategy/SampleStrategy.php](https://github.com/phpquant/stochastix-core/blob/master/recipe/src/Strategy/SampleStrategy.php)

https://redd.it/1ldnkrg
@r_php
Simplifying Hosting for 100+ Sites on same Laravel CMS - Multi-Tenant Strategy with Low-Maintenance Infrastructure?

We have around 120 websites that all run on the same simple Laravel-based CMS. Each site is a separate standalone instance with its own database. The websites are basic service business sites, averaging under 1,000 visitors/day each. The websites are essentially just serve up content/data from their databases and without any complicated business logic or resource intensive operations.

# Current Setup:

120 sites are distributed across 3 Leaseweb VPS servers (\~40 each).
Each has its own free SSL certificate, which requires manual renewal.
Sites send occasional notification emails via SendGrid.
Weekly backups go to Amazon S3.
The current websites generate static html copies of all dynamic pages which Akamai serves up in the case of anything other than a 200 response - our last-resort failover layer.

This setup has become difficult to maintain - instability, performance inconsistency and high costs are ongoing issues.

# Goals:

I want to simplify the entire setup while keeping costs reasonable and minimizing DevOps work. I’m a software engineer but relatively new to managing infrastructure at this scale. Here’s my rough plan:

Convert the CMS to support multi-tenancy with dynamic DB switching middleware based on domain.
Run a small number of CMS instances on geographically distributed servers behind a load balancer (or possibly a serverless/cloud environment).
Use a single centralized Redis server for caching/sessions/queue.
Host all tenant databases on a dedicated DB server.
Store media (logos, site specific imagery, etc.) on S3 or similar.
Automate SSL cert renewal
Use something like Cloudflare Always Online or similar CDN as a last-resort failover (Akamai is quite pricey)

# Solutions?:

The big question is how best to implement this in a way that’s low-maintenance and cost-effective.

I’ve looked into solutions like Heroku, Laravel Vapor, AWS Elastic Beanstalk, Kubernetes, etc., but none seem super clear or easy to adopt without a steep DevOps learning curve nor offer all of the needed service management in a single gui.

I’ve used ploi.io with DigitalOcean for personal projects and really like the simplicity. I noticed Ploi offers the ability to create load balancers, standard web servers, Redis, spaces and managed DBs all via DigitalOcean. Is this option worth exploring further?

Is there a plug-and-play platform or combination of tools you’d recommend for this kind of Laravel multi-tenant deployment - ideally with built-in support for load balancing/scaling, redis, databases, SSL, backups and static cache fail over without requiring a full-time DevOps engineer?

Thanks in advance!

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