Philipp Scheit (@pscheit) header
Philipp Scheit (@pscheit) profile picture

(web) developer @packagist, entrepreneur @yaymemoriescom, dad of two, married to the lovely @ischeit, AMA

Ostsee
Joined February 2010
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.
45
83
16
385
24,051
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
4
130
12
273
19,582
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
4
2
705
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.
30
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
51
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...
21
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
3
113
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
3
1
5
2,466
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
32
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
1
25
If you develop your own sdk for php and you implement your own http client, you are doing it wrong :)
21
Hey @Apple this is how you name photos that you download in batches correctly: not just "ICloud-Photos.zip"
1
44
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 !
15
175
26,859
744
203,259
5,063,926
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.
1
371
Und jetzt noch schnell das Pferd verbocken - Jeder Schachfiguren-Designer dieser Erde
1
41
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.
35
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
1
30
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)
1
34
this is crazy.. I just gave my customer access to our minio s3 to upload it
10