Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Switching off legacy code using one Symfony com...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Loulier Guillaume
November 07, 2023
Programming
170
1
Share
Switching off legacy code using one Symfony command at a time
Loulier Guillaume
November 07, 2023
More Decks by Loulier Guillaume
See All by Loulier Guillaume
La recherche sémantique à l'ère de l'IA, mirage ou miracle ?
guikingone
0
26
Demandez et votre application répondra, la recherche sémantique avec PHP et Meilisearch
guikingone
1
120
Building a semantic search experience using PHP and Meilisearch
guikingone
0
240
Symfony UX et le frontend
guikingone
1
99
K6, stresser son application en douceur
guikingone
1
100
Need to search through your data? Heard about Meilisearch?
guikingone
1
290
Meilisearch
guikingone
1
160
SQLite en production ? Et si vous réévaluiez vos options ?
guikingone
1
1.2k
Dagger, la CI, autrement
guikingone
1
300
Other Decks in Programming
See All in Programming
CSC307 Lecture 17
javiergs
PRO
0
280
Talking to terminals (and how they talk back) (KotlinConf 2026)
jakewharton
PRO
1
160
Hive Metastoreを通して学ぶIceberg REST Catalog ― 仕様から実装まで
okumin
0
310
net-httpのHTTP/2対応について
naruse
0
370
関係性から理解する"同一性"の型用語たち
pvcresin
2
620
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
390
OSもどきOS
arkw
0
330
[KCD Czech] eBPF Meets the GPU: Future of AI Infra Observability
doniacld
0
130
誰も頼んでない機能を出荷した話
zekutax
0
150
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
310
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
11
3.1k
Spec-Driven Development with AI-Agents: From High-Level Requirements to Working Software
antonarhipov
2
390
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Facilitating Awesome Meetings
lara
57
6.9k
Done Done
chrislema
186
16k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
130
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
240
Product Roadmaps are Hard
iamctodd
PRO
55
12k
A better future with KSS
kneath
240
18k
We Have a Design System, Now What?
morganepeng
55
8.2k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
180
Java REST API Framework Comparison - PWX 2021
mraible
34
9.3k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
540
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Transcript
Switching off legacy code using one Symfony command at a
time
Greetings
Hellcome Guillaume Loulier / @Guikingone Lead developer @SensioLabs Works mainly
with PHP and Rust Sometimes, I break things, especially legacy ones (and I like that)
Summary 01 - Legacy code is fun 02 - Migrating,
a far far away dream 04 - Symfony to the rescue 05 - Wrapping up 01
Legacy code is fun
Well, it should
Diving into the joke Refu*toring - The process of taking
a well-designed piece of code and, through a series of small, reversible changes, making it completely unmaintainable by anyone except yourself. Jason Gorman
Let the fun begin A legacy code is just an
abandoned one that generate revenues Maintaining legacy code should be easy At least, until it breaks Never needed to migrate PHP 5 code?
Dealing with technical debt Technical debt is ambiguous Yesterday code
is already outdated, sorry Need to migrate it? Bon chance
Keep dreamin’
I made a dream
Time for a wishlist Tracking, being aware of changes, updating
and deleting A new interface? For which use case? What about this method arguments type? Code spread across repositories?
Sadly What about using a dedicated channel? Or using trigger_error?
Or tools like Sentry, OpenTelemetry and many more? What if we’re in a special architecture?
Symfony?
Well…
The full experience Symfony brings a lot of components Could
we bring them together to help us? Look at Rector, PHPStan and more! What if we could “track & switch off” files?
Time to “Switchoff” Built on top of Symfony components and
nikic/PHP-Parser (chief kiss) Attributes for the win! Analyze, check, switch off, repeat Could be used via the CLI / CI
Want a demo?
What’s next?
To sum it up Handling migration is hard, not to
say boring Symfony could ease the process but lack of tools Relying on a framework is a recipe for failure Each project has its own rules / flaws
What about switchoff? Not fully stable (for now) A Symfony
bundle? (Already planned) An HTML dashboard What about a PHPStan / Rector bridge?
Wrapping up