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
1
110
Switching off legacy code using one Symfony command at a time
Loulier Guillaume
November 07, 2023
Tweet
Share
More Decks by Loulier Guillaume
See All by Loulier Guillaume
Demandez et votre application répondra, la recherche sémantique avec PHP et Meilisearch
guikingone
1
67
Building a semantic search experience using PHP and Meilisearch
guikingone
0
90
Symfony UX et le frontend
guikingone
1
42
K6, stresser son application en douceur
guikingone
1
50
Need to search through your data? Heard about Meilisearch?
guikingone
1
200
Meilisearch
guikingone
1
130
SQLite en production ? Et si vous réévaluiez vos options ?
guikingone
1
980
Dagger, la CI, autrement
guikingone
1
260
Rector, time to refactor your code easily
guikingone
2
340
Other Decks in Programming
See All in Programming
フロントエンドテストの育て方
quramy
11
2.9k
安全に倒し切るリリースをするために:15年来レガシーシステムのフルリプレイス挑戦記
sakuraikotone
5
2.7k
タイムゾーンの奥地は思ったよりも闇深いかもしれない
suguruooki
1
500
AIコードエディタの基盤となるLLMのFlutter性能評価
alquist4121
0
190
SEAL - Dive into the sea of search engines - Symfony Live Berlin 2025
alexanderschranz
1
120
これだけは知っておきたいクラス設計の基礎知識 version 2
masuda220
PRO
24
5.8k
MCP調べてみました! / Exploring MCP
uhzz
2
2.2k
英語文法から学ぶ、クリーンな設計の秘訣
newnomad
1
290
家族・子育て重視/沖縄在住を維持しながらエンジニアとしてのキャリアをどのように育てていくか?
ug
0
260
Devinのメモリ活用の学びを自社サービスにどう組み込むか?
itarutomy
0
2k
マルチアカウント環境での、そこまでがんばらない RI/SP 運用設計
wa6sn
0
700
PHPのガベージコレクションを深掘りしよう
rinchoku
0
260
Featured
See All Featured
Making Projects Easy
brettharned
116
6.1k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
The Language of Interfaces
destraynor
157
24k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Building a Modern Day E-commerce SEO Strategy
aleyda
39
7.2k
The Invisible Side of Design
smashingmag
299
50k
Code Review Best Practice
trishagee
67
18k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
Into the Great Unknown - MozCon
thekraken
36
1.7k
Git: the NoSQL Database
bkeepers
PRO
430
65k
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