
(web) developer @packagist, entrepreneur @yaymemoriescom, dad of two, married to the lovely @ischeit, AMA
Ostsee
Joined February 2010
- Tweets5.8K
- Following355
- Followers224
- Likes5.3K
Philipp Scheit retweeted
Lot of #PHP snark going around right now from folks who've either never written software, or never done it in PHP (in the last 20 years).
I've architected, designed and hand-coded copious amounts of software in Java/Spring/Hibernate, .Net/C# Entity Framework and PHP/Symfony/Doctrine, applying very similar patterns and better practices of completely stack-agnostic concepts such as:
- Test-Driven Development (and given half-day and full-day hands-on live-coding workshops at conferences worldwide)
- Onion/Hexagonal Architecture
- Domain-Driven Design
- Data Mapper ORMs
Beyond workshops, I have spoken on these topics at conferences worldwide as well.
I might argue that I am not completely devoid of clue when it comes to these stacks' capabilities.
In fact, I have hired, coached and cross-trained engineers across these 3 stacks.
And I can assure you PHP shines within these paradigms, with an extremely vibrant, mature and robust ecosystem of Application Frameworks, Security Frameworks and Tools, and Open-Source Software Components and Libraries.
PHP is not WordPress. WordPress is not PHP. If you care about quality software, PHP is a great home for you. So is Java. So is C#. So are other languages. If you suck at software you'll suck in any stack. If you're good, each stack has strengths you can play to.
NOW let's talk about security.
This vulnerability, is the very first RCE to this level in PHP's history. It was reported back in August. AI did help. A lot. (Wiz claims one researcher did in a week what would previously have taken a team months)
Previous PHP RCEs had limited attack surfaces:
- 2024 - Windows CGI Only
- 2019 - One specific nginx setup
- 2012 - CGI only
None of which applied to reasonably-better practice typical Linux + Nginx + php-fpm deployments.
This right here was ... unique, I think even across any stack. The only language-runtime equivalent to it was probably Windows IIS Code Red.
That's not to say other stacks didn't have framework-level vulnerabilities with devastating impacts, if memory needs refreshed:
Ruby — Rails CVE-2013-0156: every Rails app, default config, pre-controller, botnet-exploited. The strongest analogue in any stack.
Java — Struts 2 CVE-2017-5638 (Equifax). Log4Shell needed the app to log attacker input; Spring4Shell needed WAR-on-Tomcat + JDK 9+ + POJO binding.
Node — React2Shell CVE-2025-55182 (Dec 2025, CVSS 10, CISA KEV): default create-next-app exploitable, but Express/Fastify/Nest untouched.
.NET — MS10-070 padding oracle (2010) leaked web.config/machineKey on every ASP (dot NET) site; RCE was a derived second step. Kestrel/ASP.NET Core has never had an RCE.
Look ... let's drop the snark. LLM-driven vulnerability research and breaching frameworks are about to humble the absolute heck out of all of us. They already have.
If you think your stack is not at risk, think again.
Philipp Scheit retweeted
If all the govs shutting down servers for a PHP update, all the hosters & enterprises terrified by the vuln, gave $100k, or just $50k a year to the PHP Foundation, things could look very differently. Go, make your employer sponsor *today* thephp.foundation/sponsor/ #php #phpc @ThePHPF
Philipp Scheit retweeted
Our deploy pipeline never sleeps! Here are all the improvements to Private Packagist of the last months: We added support for PIE, streamlined our GitHub sync, made it easier to track setup progress, more on our blog: blog.packagist.com/whats-new… #composerphp #composer #php #phpc
Feels like ages to bootstrap a full app.
Even with symfony flex, symfony standard edition, teamcity build templates, ...
And it isnt event deployed yet. waaaah.
How do you let your customers do checkout?
Everyone with an webshop probably has one, but what about SaaS. Yes, you can use Stripe checkout, but feel like this doesnt work well for german business + customers.
So what did you do to solve this?
#ecommerce #saas #buildinpublic
Dont add another boolean to the end of your method that has a default to false ^^ and "completely" changes what the method does.
Just create two methods...
What app do you use for your accounting of your on SaaS? (in germany)
We need to file expenses and import invoices from stripe.
Those are the ones I already know:
Lexware Office (Lexoffice)
Papierkram
Buchhaltungsbuttler
accountable.de
sevdesk
fastbill
Wiso mein Büro
Philipp Scheit retweeted
Excited to finally get more than the first handful of customers to use Conductor. It's already been so much fun getting PRs from Conductor ourselves. Been working on this idea on & off for years, finally got it right. Sign up for the early access waitlist!
We're excited to introduce you to 🧑✈️Conductor! Automatic dependency update PRs with Composer for PHP projects - Security fixes patched in minutes - Continuous updates without the hassle - all running in your own CI env! #composerphp #php #phpc
We already are using Conductor internally for a few months now
Philipp: "Wow, we never did SO MANY updates in the last month"
Jordi: "It's as if automating this has helped!"
🤣
It really does! You need to try it :)
We're excited to introduce you to 🧑✈️Conductor! Automatic dependency update PRs with Composer for PHP projects - Security fixes patched in minutes - Continuous updates without the hassle - all running in your own CI env! #composerphp #php #phpc
mhhh. Percy is SO CLOSE being the best visual diff tool in the whole market, but it has a few issues that make it nearly unusable.
I wonder if I didnt understood Mike Fotinakis vision, or if someone else could recommend another tool? (Used a lot)
percy.io
If you develop your own sdk for php and you implement your own http client, you are doing it wrong :)
Hey @Apple this is how you name photos that you download in batches correctly:
not just "ICloud-Photos.zip"
And this is how you export metadata with your binary files. Just dump it as json
so easy.. so convenient!
Not weird metadata that only exiftool can read buried in the files somewhere...
great job @googlephotos !
It's a crime that cameras are still naming files like IMG_4923.img
the problems that this has caused for us in the past are INCREDIBLE.
If the camera would use a better name, things wouldnt go south so much.
Remember the time where we had to apt install php-xzy
to upgrade a php version?
The sweat included: will my next deployment run?
So happy that this is behind us.
I should have replaced docker compose in prod with nomad a long time ago.
Took some time to learn, but now I am super happy
2024.. this comic is STILL valid
xkcd.com/949/
except that
- dropbox does not send original images on apple?
- you still cannot share an icloud album with non apple users
- google photos seems to be workish, but we had problems as well (and you need to buy it)








