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
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
Reddit
From the PHP community on Reddit
Explore this post and more from the PHP community
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
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
Reddit
From the PHP community on Reddit
Explore this post and more from the PHP community
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
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
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.
Who is using livewire with php n laravel ?
Is there anyone using livewire heavily ?
https://redd.it/1lc93vg
@r_php
Is there anyone using livewire heavily ?
https://redd.it/1lc93vg
@r_php
Reddit
From the PHP community on Reddit
Explore this post and more from the PHP community
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
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
Perpetual Education
What do you really need in a text editor?
Let’s collect the real “must have” features we genuinely enjoy using and that make our work more distraction free…. but – have ...
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
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
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/1lclbxt
@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/1lclbxt
@r_php
Reddit
From the PHP community on Reddit
Explore this post and more from the PHP community
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
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
Reddit
From the laravel community on Reddit
Explore this post and more from the laravel community
🚀 Deploy Your Laravel App on a DigitalOcean Ubuntu Server
https://youtu.be/LOwRfN_wCb4?si=63nWCZ3nHiYGNqaH
https://redd.it/1lcqb4p
@r_php
https://youtu.be/LOwRfN_wCb4?si=63nWCZ3nHiYGNqaH
https://redd.it/1lcqb4p
@r_php
YouTube
🚀 Deploy Laravel App on Ubuntu Server
Learn how to deploy your Laravel application on an Ubuntu 24.04 server using Apache on DigitalOcean! 🌐
This step-by-step guide covers everything from server setup, Laravel configuration, virtual hosts, permissions, to launching your app online. 💻
👉 Perfect…
This step-by-step guide covers everything from server setup, Laravel configuration, virtual hosts, permissions, to launching your app online. 💻
👉 Perfect…
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
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
GitHub
GitHub - EdouardCourty/mcp-server-bundle: A Symfony Bundle to create MCP servers
A Symfony Bundle to create MCP servers. Contribute to EdouardCourty/mcp-server-bundle development by creating an account on GitHub.
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
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
Reddit
From the PHP community on Reddit
Explore this post and more from the PHP community
Headless Platform architecture
https://www.dotkernel.com/headless-platform/dotkernel-headless-platform-the-whats-hows-and-whys/
https://redd.it/1lcujmu
@r_php
https://www.dotkernel.com/headless-platform/dotkernel-headless-platform-the-whats-hows-and-whys/
https://redd.it/1lcujmu
@r_php
Dotkernel | A general purpose PHP headless platform
Dotkernel Headless Platform - The Whats, Hows and Whys
The principle of a Headless Platform is to decouple the User Interface (frontend) from the backend services. The responses from the platform are then used by another system, such as a website or mobile app. In this article we will explore the Dotkernel implementation…
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
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
Reddit
From the PHP community on Reddit
Explore this post and more from the PHP community
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
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
GitHub
GitHub - mattdinthehouse/porm
Contribute to mattdinthehouse/porm development by creating an account on GitHub.
PHPVerse 2025 is happening today - Join Us
https://www.youtube.com/live/3b0ty1iZ8QM
https://redd.it/1ldlzft
@r_php
https://www.youtube.com/live/3b0ty1iZ8QM
https://redd.it/1ldlzft
@r_php
YouTube
JetBrains PHPverse 2025 – Join us to celebrate PHP’s 30th birthday!
PHP turns 30! From humble beginnings to powering the modern web, it’s been quite the journey. Celebrate this milestone with us at a free online event with legends who have shaped PHP’s past, present, and future. For the agenda and details, see https://jb.gg/jb…
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
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
phpquant.github.io
Stochastix
High-Performance Quantitative Backtesting Engine
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
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
Ploi
Ploi - Server Management Tool
Use Ploi.io for easy site deployments. We take all the difficult work out of your hands, so you can focus on doing what you love: developing your application.
SymfonyOnline June 2025: Speakers, Stats & Replays!
https://symfony.com/blog/symfonyonline-june-2025-speakers-stats-and-replays?utm_source=Symfony%20Blog%20Feed&utm_medium=feed
https://redd.it/1lebfv8
@r_php
https://symfony.com/blog/symfonyonline-june-2025-speakers-stats-and-replays?utm_source=Symfony%20Blog%20Feed&utm_medium=feed
https://redd.it/1lebfv8
@r_php
Symfony
SymfonyOnline June 2025: Speakers, Stats & Replays! (Symfony Blog)
Thank you for being part of #SymfonyOnline June 2025! 🌍300 attendees, 15 talks, and a whole lot of Symfony love 💙 Replays now online! 🎬
Typehinting Laravel validation rules using PHPStan's type aliases
https://ohdear.app/news-and-updates/typehinting-laravel-validation-rules-using-phpstans-type-aliases
https://redd.it/1led0d0
@r_php
https://ohdear.app/news-and-updates/typehinting-laravel-validation-rules-using-phpstans-type-aliases
https://redd.it/1led0d0
@r_php
Oh Dear
Typehinting Laravel validation rules using PHPStan's type aliases
Here's the story of how we use static analysis, and how we use type aliases to make type hints more readable.