Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
140
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
91
Building a semantic search experience using PHP and Meilisearch
guikingone
0
180
Symfony UX et le frontend
guikingone
1
69
K6, stresser son application en douceur
guikingone
1
67
Need to search through your data? Heard about Meilisearch?
guikingone
1
240
Meilisearch
guikingone
1
140
SQLite en production ? Et si vous réévaluiez vos options ?
guikingone
1
1.1k
Dagger, la CI, autrement
guikingone
1
280
Rector, time to refactor your code easily
guikingone
2
360
Other Decks in Programming
See All in Programming
JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 / Learning Post-Quantum Crypto Basics from JEP 496 & 497
mackey0225
2
530
dotfiles 式年遷宮 令和最新版
masawada
1
430
TypeScriptで設計する 堅牢さとUXを両立した非同期ワークフローの実現
moeka__c
6
2.8k
しっかり学ぶ java.lang.*
nagise
1
470
スタートアップを支える技術戦略と組織づくり
pospome
8
14k
FluorTracer / RayTracingCamp11
kugimasa
0
160
データファイルをAWSのDWHサービスに格納する / 20251115jawsug-tochigi
kasacchiful
2
100
アーキテクチャと考える迷子にならない開発者テスト
irof
9
3.4k
20251127_ぼっちのための懇親会対策会議
kokamoto01_metaps
2
370
S3 VectorsとStrands Agentsを利用したAgentic RAGシステムの構築
tosuri13
4
240
connect-python: convenient protobuf RPC for Python
anuraaga
0
330
社内オペレーション改善のためのTypeScript / TSKaigi Hokuriku 2025
dachi023
1
290
Featured
See All Featured
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
990
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.1k
How to Ace a Technical Interview
jacobian
280
24k
Designing for humans not robots
tammielis
254
26k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.3k
Docker and Python
trallard
46
3.7k
What's in a price? How to price your products and services
michaelherold
246
12k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Scaling GitHub
holman
464
140k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
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