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
170
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
Giving voice to your agents, the Symfony AI way
guikingone
0
57
La recherche sémantique à l'ère de l'IA, mirage ou miracle ?
guikingone
0
39
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
260
Symfony UX et le frontend
guikingone
1
100
K6, stresser son application en douceur
guikingone
1
110
Need to search through your data? Heard about Meilisearch?
guikingone
1
300
Meilisearch
guikingone
1
160
SQLite en production ? Et si vous réévaluiez vos options ?
guikingone
1
1.2k
Other Decks in Programming
See All in Programming
自動化したのに回らないテスト運用の壁ーAI時代の品質責任と生産性
mfunaki
0
110
「正の参照」と 「負の導出」で組む ハーネスエンジニアリング
cottpan
1
150
これって Effect でできたのでは? / TSKaigi Mashup Kansai #2
susisu
0
100
信頼性について考えてみる(SRE NEXT 2026 miniLT)
hayama17
0
230
音楽のための関数型プログラミング言語mimiumにおける多段階計算の活用
tomoyanonymous
1
370
分散システム、なんですぐ死んでしまうん?耐障害性を高めたいあなたのためのレジリエンスパターン入門
mshibuya
7
7.1k
PHP Application における Kubernetes 内 gRPC 通信
ganchiku
0
560
壊れたパーサから始める関数型設計と構成的なパーサ #fp_matsuri
raiga0310
2
420
AWS DevOps AgentのAzure接続機能を検証して見えた活用法/Use Cases Verified for the AWS DevOps Agent's Azure Connectivity Feature
masakiokuda
0
170
Haskell/Servantを通してWebミドルウェアを捉え直す
pizzacat83
1
630
FDEが実現するAI駆動経営の現在地
gonta
2
240
JAWS-UG横浜 #102 AWSサ終供養LT会 成仏できない AWS サービスたち 〜本日、三体供養します〜
maroon1st
0
270
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1370
210k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
750
GraphQLとの向き合い方2022年版
quramy
50
15k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.5k
GitHub's CSS Performance
jonrohan
1033
470k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.1k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
72
41k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
280
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
190
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
520
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