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
Loulier Guillaume
November 07, 2023
Programming
160
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
19
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
98
K6, stresser son application en douceur
guikingone
1
99
Need to search through your data? Heard about Meilisearch?
guikingone
1
280
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
ついに来た!本格的なマルチクラウド時代の Google Cloud
maroon1st
0
320
書籍「ユーザーストーリーマッピング」が私のバイブル
asumikam
4
450
エラー処理の温故知新 / history of error handling technic
ryotanakaya
7
1.8k
ハーネスエンジニアリングにどう向き合うか 〜ルールファイルを超えて開発プロセスを設計する〜 / How to approach harness engineering
rkaga
24
16k
20年以上続くプロダクトでも使い続けられる静的解析ツールを求めて
matsuo_atsushi
0
100
Symfony AI in Action - SymfonyLive Berlin 2026
chr_hertel
1
100
Structured Concurrency, Scoped Values and Joiners in the JDK 25 26 27
josepaumard
0
110
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
320
リセットCSSを1行消したらアクセシビリティが向上した話
pvcresin
2
360
Terraform言語の静的解析 / static analysis of Terraform language
wata727
1
120
ハーネスエンジニアリングとは?
kinopeee
13
6.5k
CDK Deployのための ”反響定位”
watany
5
910
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
225
10k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Mind Mapping
helmedeiros
PRO
1
170
Unsuck your backbone
ammeep
672
58k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
61
43k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2k
WCS-LA-2024
lcolladotor
0
560
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Paper Plane (Part 1)
katiecoart
PRO
0
6.9k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
330
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
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