├── icon
├── twitter.svg
├── bluesky.svg
├── rss.svg
├── linkedin.svg
├── threads.svg
├── gitlab.svg
├── github.svg
└── mastodon.svg
└── README.md
/icon/twitter.svg:
--------------------------------------------------------------------------------
1 |
2 |
7 |
--------------------------------------------------------------------------------
/icon/bluesky.svg:
--------------------------------------------------------------------------------
1 |
2 |
7 |
--------------------------------------------------------------------------------
/icon/rss.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
19 |
--------------------------------------------------------------------------------
/icon/linkedin.svg:
--------------------------------------------------------------------------------
1 |
2 |
8 |
--------------------------------------------------------------------------------
/icon/threads.svg:
--------------------------------------------------------------------------------
1 |
2 |
8 |
--------------------------------------------------------------------------------
/icon/gitlab.svg:
--------------------------------------------------------------------------------
1 |
2 |
10 |
--------------------------------------------------------------------------------
/icon/github.svg:
--------------------------------------------------------------------------------
1 |
2 |
7 |
--------------------------------------------------------------------------------
/icon/mastodon.svg:
--------------------------------------------------------------------------------
1 |
2 |
14 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # [SymfonyCon - Vienna 2024](https://live.symfony.com/2024-vienna-con/schedule) talks
2 |
3 | > [!IMPORTANT]
4 | > If you’re a speaker, please consider sharing your insights in a blog post, it would really help beginners and uplift the entire community! 🤗
5 |
6 | > [!NOTE]
7 | > - All talks are in **English**.
8 | > - You can send feedback and love to speakers on their social networks.
9 | > - Social posts during the event: [Blusky](https://bsky.app/search?q=%23symfonycon+since%3A2024-12-04+until%3A2024-12-10) · [Mastodon](https://mastodon.social/tags/symfonycon) · [Twitter](https://x.com/search?f=live&q=%28%23symfonycon+OR+%40symfonycon%29+until%3A2024-12-10+since%3A2024-12-04+-filter%3Areplies)
10 |
11 | ---
12 |
13 | ## Keynote · Twig: Still relevent in 2025?
14 |
15 | [Slides](https://speakerdeck.com/fabpot/symfonycon-vienna-2025-twig-still-relevant-in-2025)
16 | [Video](https://live.symfony.com/account/replay/video/984) (not free)
17 | Blog post: [part 1](https://symfony.com/blog/new-in-twig-3-15-part-1) + [part 2](https://symfony.com/blog/new-in-twig-3-15-part-2)
18 |
19 | By [Fabien Potencier](https://connect.symfony.com/profile/fabpot)
20 | 💻 on [ @fabpot](https://github.com/fabpot) [💚](https://github.com/sponsors/fabpot)
21 | ✍ on [🌐 fabien.potencier.org](https://fabien.potencier.org)
22 | 💬 on [ @fabien.potencier.org](https://bsky.app/profile/fabien.potencier.org)
23 | · [ @fabpot](https://twitter.com/fabpot)
24 | · [ @fabpot@mastodon.social](https://mastodon.social/@fabpot)
25 | · [ @fabienpotencier](https://www.linkedin.com/in/fabienpotencier)
26 |
27 | ---
28 |
29 | ## HTTP compression in Symfony apps
30 |
31 |
32 |
Description
33 |
Compressing HTTP responses can significantly improve the performance of your Symfony applications. But you still need to find your way through the jungle of standards and formats.
34 |
35 | In this presentation, we'll discover how HTTP compression works, the different formats supported by modern web browsers (deflate, gzip, Brotli, and the brand new Zstandard), and how to use them correctly with Symfony.
36 |
37 | We'll also look at which formats to compress, which not to, when to use dynamic compression, and when (and how) to pre-compress responses that can be compressed for even better performance.
Content management is more than just adding a text editor to your project. Initially, you may only need a basic text editor for your Entity. However, as your project grows, you might require support for multiple languages, and when drafting or versioning come into play, things can get tricky.
59 |
60 | In this talk, I will provide a quick introduction to different ways of data modeling and the libraries available to meet these needs. I'll also share a brief history of Sulu's content storage and explain why we decided to redesign the entire content storage system for a better future.
61 |
62 | You'll learn how to evolve from a simple Doctrine entity to a translatable entity, and finally, to a multi-dimensional entity that supports multiple languages, drafting, versioning, and more. These concepts are reusable even if you're not using our beloved CMS.
Discover how to bridge the gap between legacy PHP code and the performance of Go in hybrid CLI development. Using the Symfony Console library, you'll see how we blend these two languages in the Upsun CLI, embedding the Legacy Platform.sh PHP CLI within Go for seamless functionality.
84 |
85 | This approach not only enhances performance but also preserves backward compatibility, saving time while migrating from the older PHP-based CLI to the new, faster Go implementation. You'll learn how we maintain intuitive command routing, make it invisible to users, and tackle authentication across both platforms.
86 |
87 | This talk is perfect for those looking to modernize their tools without starting from scratch.
You've mastered the fundamentals of Symfony form, now you want more? In this talk, we'll go beyond the documentation tutorials and explore real-world use cases to showcase the power and flexibility of Symfony's form component.
108 | Come prepared to level up your Symfony form skills with practical examples and actionable takeaways.
Symfony UX is a set of components for creating rich front-end interfaces with Symfony. This December, it celebrates its 4th anniversary. (Happy UX-Birthday!)
128 |
129 | What a year 2024 has been for Symfony UX!
130 |
131 | We’ll review all that happened: new components (Icon, Map), added features to TwigComponent and LiveComponent, and discuss the philosophy and directions taken by the Symfony UX team.
132 |
133 | Then we’ll explore the future of Symfony UX with a sneak peek at 2025, including one or two surprises!
134 |
135 |
136 | [Slides](https://speakerdeck.com/smnandre/symfony-ux-2024-recap-and-whats-next)
137 | [Video](https://live.symfony.com/account/replay/video/1001) (not free)
138 | ~~Blog post~~
139 |
140 | By [Simon André](https://connect.symfony.com/profile/simonandre)
141 | 💻 on [ @smnandre](https://github.com/smnandre) [💚](https://github.com/sponsors/smnandre)
142 | _✍ blog not found_
143 | 💬 on [ @smnandre.dev](https://bsky.app/profile/mtarld.bsky.social)
144 | · [ @simonandre](https://twitter.com/simonandre)
145 | · [ @smnandre](https://www.linkedin.com/in/smnandre)
146 |
147 | ---
148 |
149 | ## Machine Learning Inference in PHP by example: leverage ONNX and Transformers on Symfony
150 |
151 |
152 |
Description
153 |
Whether you're an AI enthusiast or a developer curious about machine learning, this session will equip you with the knowledge to implement ML inference in your Symfony applications.
154 |
155 | This talk will show by example how to implement ONNX (Open Neural Network Exchange) and Transformer models to bring advanced AI capabilities to your Symfony projects.
156 |
157 |
158 | [Slides](https://guillaume.id/pdfs/SymfonyCon2024Vienna.pdf)
159 | [Code example](https://github.com/gmoigneu/symfonycon2024-acmestore)
160 | [Video](https://live.symfony.com/account/replay/video/1030) (not free)
161 | ~~Blog post~~
162 |
163 | By [Guillaume Moigneu](https://connect.symfony.com/profile/gmoigneu)
164 | 💻 on [ @gmoigneu](https://github.com/gmoigneu)
165 | · [ @gmoigneu](https://gitlab.com/gmoigneu)
166 | ✍ [🌐 guillaume.id](https://guillaume.id)
167 | 💬 on [ @guillaumedotid](https://twitter.com/guillaumedotid)
168 | · [ @guillaumemoigneu](https://www.linkedin.com/in/guillaumemoigneu)
169 |
170 | ---
171 |
172 | ## A brand-new way to serialize data in Symfony
173 |
174 |
175 |
Description
176 |
Rethink serialization in Symfony using new components like JsonEncoder and ObjectMapper. Learn how to simplify data serialization workflows.
177 |
178 |
179 | [Slides](https://www.canva.com/design/DAGXxVq6D10/flKFopidYBR-gSgRXU8OIg/view)
180 | [Video](https://live.symfony.com/account/replay/video/1003) (not free)
181 | ~~Blog post~~
182 | [New `symfony/json-encoder` Component](https://github.com/symfony/json-encoder) ([merged Pull Request](https://github.com/symfony/symfony/pull/51718))
183 |
184 | By [Mathias Arlaud](https://connect.symfony.com/profile/mtarld)
185 | 💻 on [ @mtarld](https://github.com/mtarld) [💚](https://github.com/sponsors/mtarld)
186 | _✍ blog not found_
187 | 💬 on [ @mtarld.bsky.social](https://bsky.app/profile/mtarld.bsky.social)
188 | · [ @matarld](https://twitter.com/matarld)
189 | · [ matarld](https://www.linkedin.com/in/matarld)
190 |
191 | ---
192 |
193 | ## Flexibility in the Face of Uncertainty
194 |
195 |
196 |
Description
197 |
In this forward-thinking talk, I'll take you on a journey through the integration of AI in Symfony projects. Drawing from our real-world experiences, I'll demonstrate how to build adaptable AI systems that can withstand the ever-shifting landscape of AI technologies and regulations. You'll learn our strategies for creating a provider-agnostic AI architecture, ensuring your Symfony applications remain flexible amidst changing requirements and GDPR considerations. Join me to discover how to future-proof your projects and avoid vendor lock-in while harnessing the power of AI in your Symfony ecosystem.
198 |
199 |
200 | [Slides](https://modelflow-ai.github.io/symfony-con-2024/index.html)
201 | [Video](https://live.symfony.com/account/replay/video/1012) (not free)
202 | ~~Blog post~~
203 |
204 | By [Johannes Wachter](https://connect.symfony.com/profile/wjohannes)
205 | 💻 on [ @wachterjohannes](https://github.com/wachterjohannes)
206 | ✍ on [🌐 asapo.at/blog](https://asapo.at/blog)
207 | 💬 on [ @mtarld.bsky.social](https://bsky.app/profile/mtarld.bsky.social)
208 | · [ @wachterjohannes](https://twitter.com/wachterjohannes)
209 |
210 | ---
211 |
212 | ## Building a Fraud Prevention component using Symfony
213 |
214 |
215 |
Description
216 |
Develop a Symfony-based fraud prevention system. Collect data, expose APIs, guide resource access, and block suspicious activities smoothly.
217 |
218 |
219 | [Slides](https://docs.google.com/presentation/d/e/2PACX-1vR5aKfFNnB2zoWoF0P3VpPBGjkazsN2RRqmnKMtgMJE0la5sgc8aLeCMK1kDutcZ0M7WLWVZj8kHkYw/pub)
220 | [Video](https://live.symfony.com/account/replay/video/1031) (not free)
221 | ~~Blog post~~
222 |
223 | By [Moritz Schuh](https://connect.symfony.com/profile/moritz-schuh)
224 | 💻 on [ @moritzschuh](https://github.com/moritzschuh)
225 | _✍ blog not found_
226 | 💬 on [ moritz-schuh-…](https://www.linkedin.com/in/moritz-schuh-2a63264)
227 |
228 | ---
229 |
230 | ## Refactor your code - refactor yourself
231 |
232 |
233 |
Description
234 |
Looking at old legacy code, you usually know "a better way to do it" by now. But did you ever look at "the code in your mind"?
235 | Let's go through a helpful mindset for refactoring projects and apply some principles of refactoring to yourself.
236 | This talk will give you a better understanding of how you and your brain evolved from index.php to a complete fully grown application - and what parts of your brain still run legacy code.
As software engineers it is sometimes too easy to forget the impact that our code has on the environment. We build for changeability, speed and hopefully quality, but we forget about sustainability. The time to act is now. It is time for us to take responsibility and to write more sustainable tech. In this talk I will talk about things we can do to write more energy efficient code. I will also talk about hosting your code more sustainably. And last but not least… I will share the software architecture needed to build greener applications using Symfony Messenger.
256 |
257 |
258 | ~~Slides~~
259 | [Video](https://live.symfony.com/account/replay/video/986) (not free)
260 | ~~Blog post~~
261 |
262 | By [Michelle Sanver](https://connect.symfony.com/profile/michellesanver)
263 | 💻 on [ @michellesanver](https://github.com/michellesanver)
264 | _✍ blog not found_
265 | 💬 on [ @michelle@phpc.social](https://phpc.social/@michelle)
266 | · [ @michellesanver.bsky.social](https://bsky.app/profile/michellesanver.bsky.social)
267 | · [ @michellesanver](https://twitter.com/michellesanver)
268 | · [ @michellesanver](https://linkedin.com/in/michellesanver)
269 |
270 | ---
271 |
272 | ## Flawless collaboration between front and back developers
273 |
274 |
275 |
Description
276 |
This talk will demonstrate a streamlined workflow for two developers collaborating on a project through a live coding session. We will build a frontend using Next.js and an API backend using Symfony. We aim to create a visually appealing and functional decoupled application in only 30 minutes.
277 |
278 | During the presentation, we will discuss the tools and techniques we use to facilitate efficient teamwork, including real-time code review, infrastructure as code, version control, and preview environments. Attendees will leave with a solid understanding of streamlining their development workflows and improving collaboration with their colleagues.
279 |
280 |
281 | ~~Slides~~
282 | ~~Video~~
283 | ~~Blog post~~
284 |
285 | By [Augustin Delaporte](https://connect.symfony.com/profile/guguss)
286 | 💻 on [ @GuGuss](https://github.com/GuGuss)
287 | _✍ blog not found_
288 | 💬 on [ @augustindelaporte](https://linkedin.com/in/augustindelaporte)
289 |
290 | And [Florent Huck](https://connect.symfony.com/profile/flovntp)
291 | 💻 on [ @flovntp](https://github.com/flovntp)
292 | _✍ blog not found_
293 | 💬 on [ @flovntp](https://twitter.com/flovntp)
294 | · [ @michellesanver](https://linkedin.com/in/michellesanver)
295 |
296 | ---
297 |
298 | ## Who did that? Auditing data changes at scale
299 |
300 |
301 |
Description
302 |
As your application evolves from a side project into a serious business, you will likely encounter situations where you, your support team, or even your customers question why certain configurations changed, why information is incorrect, or why data seemingly vanished "on its own." Understanding and effectively managing these issues is crucial to maintaining the integrity and reliability of your application.
303 |
304 | This talk will explore various strategies for auditing data changes in Symfony applications. We will discuss where to begin and what factors to consider as the volume of data increases.
305 |
306 |
307 | [Slides](https://basti.dev/talks/20241205_SymfonyCon_Vienna_Auditing_Data_Changes.pdf)
308 | [Video](https://live.symfony.com/account/replay/video/1011) (not free)
309 | ~~Blog post~~
310 |
311 | By [Sebastian Plagemann](https://connect.symfony.com/profile/splagemann)
312 | 💻 on [ @splagemann](https://github.com/splagemann)
313 | _✍ blog not found_
314 | 💬 on [ @sebastian-plagemann-…](https://linkedin.com/in/sebastian-plagemann-b2a77268)
315 | · [ @me@social.basti.dev](https://social.basti.dev/@me)
316 |
317 | ---
318 |
319 | ## An Unholy Bond: Harmonizing Dev and Marketing
320 |
321 |
322 |
Description
323 |
Connecting the broken dots between the dev team and the marketing team to create an unholy synergy. Giving a simple guide to help marketing and development teams work better and more effectively as a team to create better products, messaging, and user experiences. Highlight collaboration practices, tools and real-world experiences to ensure both teams are aligned and achieve success.
324 |
325 |
326 | [Slides](https://docs.google.com/presentation/d/1le7IqTFVIKvxxcaNnDOZ18fiKxG29BT5A1Q4F0-WO5c)
327 | [Video](https://live.symfony.com/account/replay/video/1027) (not free)
328 | ~~Blog post~~
329 |
330 | By [Celeste Van Der Watt](https://connect.symfony.com/profile/cvanderwatt)
331 | _✍ blog not found_
332 | 💬 on [ @celereeee](https://twitter.com/celereeee)
333 | · [ @sebastian-plagemann-…](https://linkedin.com/in/sebastian-plagemann-b2a77268)
334 |
335 | ---
336 |
337 | ## Cutting-Edge Symfony Pipelines with Dagger
338 |
339 |
340 |
Description
341 |
I truly believe Dagger is the next evolution of CI/CD implementation. Myself, as a subject matter expert in CI/CD, I spent years building the perfect system to mitigate challenges we face at a tech level and business level. Now along comes Dagger, created by Solomon, the founder of Docker, and it makes so many challenges disappear, by design, and opens up so many new possibilities along the way.
342 |
343 | In this talk I'll be your guide in a deep dive into Dagger-land, demonstrating how to strategically start integrating this into your existing projects and start benefiting from the awesomeness.
344 |
345 |
346 | ~~Slides~~
347 | [Video](https://live.symfony.com/account/replay/video/994) (not free)
348 | ~~Blog post~~
349 | [Pull Request for `symfony/symfony`](https://github.com/symfony/symfony/pull/59240)
350 |
351 | By [Paul Dragoonis](https://connect.symfony.com/profile/dragoonis)
352 | 💻 on [ @dragoonis](https://github.com/dragoonis)
353 | _✍ blog not found_
354 | 💬 on [ @dr4goonis](https://twitter.com/dr4goonis)
355 | · [ @pauldragoonis](https://linkedin.com/in/pauldragoonis)
356 |
357 | ---
358 |
359 | ## Break Things Fast: Accelerated QA and Testing with Upsun
360 |
361 |
362 |
Description
363 |
In the fast-paced world of development, the ability to test and iterate quickly is paramount. This talk explores how Upsun empowers developers to "break things fast" by providing full-stack preview environments that can be spun up on demand, mirroring production settings without the risks associated with traditional cloning methods. Learn how to leverage these transient environments for rapid QA, experimentation, profiling, load testing, and debugging.
364 |
365 | Upsun is a cloud application platform that empowers developers to build, deploy, and manage applications with greater flexibility and efficiency. It offers advanced resource and container management, allowing teams to dynamically allocate computing resources and customize container configurations to meet the specific needs of their applications.
366 |
367 |
368 | [Slides](https://docs.google.com/presentation/d/1Pz8wZKB_mZ3XVS4mmOXuBK4R8ps1nbrJpvXaXqKV4lM)
369 | [Video](https://live.symfony.com/account/replay/video/1028) (not free)
370 | ~~Blog post~~
371 | Related Links: [Upsun Developer Center](https://devcenter.upsun.com/) · [Preview Environments](https://devcenter.upsun.com/posts/preview-environments-a-developers-secret-weapon/#but-what-do-you-need-to-make-this-happen)
372 | · [What is instant data cloning?](https://upsun.com/blog/data-cloning-the-game-changer-for-developing-cloud-based-applications/)
373 |
374 | By [Greg Qualls](https://connect.symfony.com/profile/gregqualls)
375 | 💻 on [ @gregqualls](https://github.com/gregqualls)
376 | _✍ blog not found_
377 | 💬 on [ @gregqualls.com](https://bsky.app/profile/gregqualls.com)
378 | · [ @gregqualls](https://twitter.com/gregqualls)
379 | · [ @gregqualls](https://linkedin.com/in/gregqualls)
380 |
381 | ---
382 |
383 | ## Demystifying Dependency Injection in Symfony
384 |
385 |
386 |
Description
387 |
Understand DI fundamentals, configure Symfony’s service container, and use attributes for smoother, type-safe code and better maintainability.
Mapping is something that you see in many frameworks over the web in every programming languages. Doctrine, for example, has a quite complex mapper to transform the relational database representation to your well-known entity.
409 | After covering the history behind years of discussion and research by the Symfony community, we'll study the needs for such a component in Symfony. We'll analyse how different it is from the Symfony Serializer, and what are the solutions popular frameworks on the Web offer. At least, we'll showcase the new Mapper component and its application from API design to day to day use cases.
Ever wondered what happens under the hood when you run a Composer update or why Composer 2 got so much faster? Learn about some of its inner workings, some lesser known parts and why they may be useful to you, as well as upcoming features and future plans.
Postgres is famous for its support for SQL data. However, Postgres also has powerful capabilities to work with JSON. I will show how to leverage the various JSON functions of modern Postgres to work with your less structured data. I will also show how to use some of that functionality from within Doctrine.
453 |
454 |
455 |
456 | [Slides](https://davidbu.ch/slides/2024-12-05-symfonycon-vienna-postgres-json.html)
457 | [Code: Examples and performance measurements](https://github.com/dbu/postgres-json)
458 | [Video](https://live.symfony.com/account/replay/video/990) (not free)
459 | [Blog post](https://www.liip.ch/en/blog/doctrine-orm-support-for-json)
460 |
461 | By [David Buchmann](https://connect.symfony.com/profile/dbu)
462 | 💻 on [ @dbu](https://github.com/dbu)
463 | ✍ on [🌐 davidbu.ch/mann/blog](https://davidbu.ch/mann/blog) [](https://davidbu.ch/mann/atom.xml)
464 | 💬 on [ @dbu@phpc.social](https://phpc.social/@dbu)
465 | · [ @dbu](https://twitter.com/dbu)
466 | · [ @david-buchmann-…](https://linkedin.com/in/david-buchmann-5308654)
467 |
468 | ---
469 |
470 | ## 42 best practices for Symfony, a decade later
471 |
472 |
473 |
Description
474 |
Revisit best practices from 10 years ago. See what’s still relevant, what’s changed, and how the Symfony ecosystem evolved over the last decade.
475 |
476 |
477 | [Slides](https://speakerdeck.com/tucksaun/42-best-practices-for-symfony-a-decade-later)
478 | [Video](https://live.symfony.com/account/replay/video/1000) (not free)
479 | ~~Blog post~~
480 |
481 | By [Tugdual Saunier](https://connect.symfony.com/profile/tucksaun)
482 | 💻 on [ @tucksaun](https://github.com/tucksaun)
483 | _✍ blog not found_
484 | 💬 on [ @tucksaun](https://twitter.com/tucksaun)
485 | · [ @tucksaun.bsky.social](https://bsky.app/profile/tucksaun.bsky.social)
486 | · [ @tucksaun@mastodon.social](https://mastodon.social/@tucksaun)
487 | · [ @tugdual-saunier](https://linkedin.com/in/tugdual-saunier)
488 |
489 | ---
490 |
491 | ## Carry out the best audit for your client
492 |
493 |
494 |
Description
495 |
When you're faced with auditing an application or a set of applications, it's easy to get lost and forget the big picture. Let's discuss which tools are best suitable for every part of the audit, which aspects of the stack should be audited and how to proceed. Join me in finding out which traps to avoid and how to best carry out your next audit.
496 |
497 |
498 |
499 | ~~Slides~~
500 | [Video](https://live.symfony.com/account/replay/video/995) (not free)
501 | ~~Blog post~~
502 |
503 | By [Marie Minasyan](https://connect.symfony.com/profile/marie.minassyan)
504 | 💻 on [ @MarieMinasyan](https://github.com/MarieMinasyan)
505 | ✍ on [🌐 blog.eleven-labs.com](https://blog.eleven-labs.com/fr/authors/marishka/) [](https://blog.eleven-labs.com/feed.xml)
506 | 💬 on [ @MarieMinasyan](https://twitter.com/MarieMinasyan)
507 | · [ @marieminasyan](https://linkedin.com/in/marieminasyan)
508 |
509 | ---
510 |
511 | ## Designing for Change: Extensibility points in practice
512 |
513 |
514 |
Description
515 |
Extensibility points are the cornerstone of reusable software components, empowering developers to adapt and extend functionality. But how do you design these points effectively? This sessions is practical guide for introducing extensibility into your codebase using Symfony components.
516 |
As tech leaders we like to think we’re responsible for driving organisational and cultural change, but in most cases, we’re just catching up to the possibilities created by new kinds of software, and re-forming our engineering organisations to take advantage of them.
536 |
537 | Organisational dynamics are critical, but success at enabling fast flow is ultimately dependent upon how well your tech stack enables it. It’s technology that drives progress.
538 |
539 | In this talk Nigel will take a tour through some history of the DevOps movement, findings from a decade of State of DevOps Reports, his experience driving change at large and small companies, discuss some relevant inflection points in software and how they influence organisational dynamics, argue that the dominance of “culture” topics divorced from technological progress fails to advance our industry, and demonstrate how platform and framework adoption drives the best kind of cultural changes.
Since wkhtmltopdf was deprecated, it is difficult to find an easy to use / setup library to generate PDF's.
562 | Amongst the existing solutions, we chose to focus solely on Gotenberg.
563 |
564 | The existing SDK did not match our needs as it provides only static classes, so we decided to give a try and create ourselves a brand new Bundle with the DX possible for Symfony Developpers & PHPStorm users.
565 |
566 | From the fast HttpClient to the forgotten Webhook, let's see how existing components can help us to make PDF generation fast and easy to use.
567 |
568 | To do so we had to ask ourselves a few questions which we will cover together !
569 |
570 | How do we expose a friendly, yet semantic configuration ?
571 | How to ensure great auto-completion for ease of use ?
572 | What needs to be done to have a proper Profiler ?
573 | How to keep memory efficiency by leveraging the HttpClient ?
574 | How to make the asynchrone generation easy ?
575 |
576 | Come and discover how generating PDF's is now as easy as using twig !
Its loose type system and implicit type casts make PHP a perfect programming language for beginners. However, if we rely on those features heavily, we will eventually end up with a codebase that is hard to control and maintain. In this session, Alexander will open up his toolbox and show how a stricter way of programming PHP applications helps him to not lose pace when applying changes to PHP applications.
The holiday season, especially Black Friday, is a goldmine for e-commerce apps—but only if they can handle the traffic. When the surge hits, unprepared applications buckle under pressure, leading to frustrated users and crashed servers. Been there, done that...
625 | In this talk, I’ll share some e-commerce horror stories from the trenches and show you how to avoid becoming one. We’ll dive into a proven roadmap to reliability using production cloning, traffic generation, and real-time observability.
626 | With these strategies (plus a dash of your magic), you’ll have the perfect recipe to ensure your app withstands the holiday rush—and you can relax, knowing your system won’t let you down
627 |
628 |
629 | [Slides](https://speakerdeck.com/thomasdiluccio/bulletproofing-for-black-friday-symfonycon-vienna-2024)
630 | [Video](https://www.youtube.com/watch?v=93PUVIjDuHY) (free)
631 | [Blog post](https://blog.blackfire.io/bulletproofing-for-black-friday-video-recap.html)
632 |
633 | By [Thomas di Luccio](https://connect.symfony.com/profile/thomasdiluccio)
634 | 💻 on [ @thomasdiluccio](https://github.com/thomasdiluccio)
635 | ✍ on [🌐 thomas.diluccio.fr](https://thomas.diluccio.fr/) [](https://thomas.diluccio.fr/feed/)
636 | 💬 on [ @thomas.diluccio.fr](https://bsky.app/profile/thomas.diluccio.fr)
637 | · [ @thomasdiluccio](https://linkedin.com/in/thomasdiluccio)
638 |
639 | ---
640 |
641 | ## Crafting a Microservice That Fits Your Needs
642 |
643 |
644 |
Description
645 |
Microservices offer substantial benefits in terms of scalability and flexibility. However, these advantages come with challenges, including increased complexity and the potential for service fragmentation. In this talk, we’ll delve into a real-life case study demonstrating how adopting a microservice was the ideal solution for expanding functionality within an existing system. Through this example, we will explore the decision-making process, the implementation strategy, and the ultimate impact on system performance and flexibility.
646 |
647 |
648 | [Slides](https://speakerdeck.com/hayleemillar/symfonycon-vienna-2024)
649 | [Video](https://live.symfony.com/account/replay/video/1033) (not free)
650 | ~~Blog post~~
651 |
652 | By [Haylee Millar](https://connect.symfony.com/profile/haylee)
653 | 💻 on [ @hayleemillar](https://github.com/hayleemillar)
654 | _✍ blog not found_
655 | 💬 on [ @hayleemillar](https://linkedin.com/in/hayleemillar)
656 |
657 | ---
658 |
659 | ## How to migrate from Cron to Symfony Scheduler
660 |
661 |
662 |
Description
663 |
In our project, we had a couple of hundred scheduled jobs. Recently, we've successfully migrated the project from Cron to Symfony Scheduler. It was a long way and I would like to share our experience:
664 |
665 | - How to do it smoothly?
666 | - What advantages and disadvantages can we get from migration from Cron to Scheduler?
667 | - What problems face we face during the migration?
668 |
669 |
670 | [Slides](https://haru-atari.com/files/conferences/how-to-migrate-the-application-to-symfony-scheduler.pdf)
671 | [Video](https://live.symfony.com/account/replay/video/983) (not free)
672 | ~~Blog post~~
673 |
674 | By [Viktor Pikaev](https://connect.symfony.com/profile/haruatari)
675 | 💻 on [ @HaruAtari](https://github.com/HaruAtari)
676 | ✍ on [🌐 medium.com/@reg_55279](https://medium.com/@reg_55279) [](https://medium.com/feed/@reg_55279)
677 | 💬 on [ @HaruAtari](https://twitter.com/HaruAtari)
678 | · [ @viktor-pikaev](https://linkedin.com/in/viktor-pikaev)
679 |
680 | ---
681 |
682 | ## GraphQL, REST or RPC? Making the choice!
683 |
684 |
685 |
Description
686 |
Pick the right HTTP API architecture. Compare GraphQL, REST, and RPC, their strengths, and when to choose each for your project’s needs.
Static analysis tools like PHPStan have become essential for PHP developers, and Symfony projects can greatly benefit from custom rules tailored to their specific needs. In this talk, I will guide Symfony developers through the process of writing custom PHPStan rules to enforce project-specific standards and catch domain-specific bugs, and freeing up valuable time by automating repetitive code review tasks.
Let's delve into the intricacies of Symfony Notifier component: you'll learn all about its inner workings, from channels to transports and configuration.
728 | We'll take advantage of this journey to develop a new feature of the component: sending postal mails.
729 |
730 |
731 | [Slides](https://slides.com/raphael-geffroy/symfony-notifier-return-of-the-mailman)
732 | [Video](https://live.symfony.com/account/replay/video/1010) (not free)
733 | ~~Blog post~~
734 |
735 | By [Raphaël Geffroy](https://connect.symfony.com/profile/raphael-geffroy)
736 | 💻 on [ @raphael-geffroy](https://github.com/raphael-geffroy)
737 | _✍ blog not found_
738 | 💬 on [ @raphael-geffroy.bsky.social](https://bsky.app/profile/raphael-geffroy.bsky.social)
739 | · [ @raphael_geffroy](https://twitter.com/raphael_geffroy)
740 | · [ @geffroy@mastodon.social](https://mastodon.social/@geffroy)
741 | · [ @raphaël-geffroy](https://linkedin.com/in/raphaël-geffroy)
742 |
743 | ---
744 |
745 | ## The Role of Empathy in Technical Writing
746 |
747 |
748 |
Description
749 |
It’s easy to assume that our users are experts when writing documentation. But technical writing without diagrams, code examples, videos, screenshots and more can ostracise a large chunk of users who are simply searching for help when using your product. When writing technical documentation, empathy allows us to imagine ourselves as the reader: a junior developer who just started on the job, a sales manager who needs more information for a client deck, a member of the customer success team helping a client on a video call. When we’re able to understand that our docs form the foundation of knowledge for a wide range of users, we’re able to write in a manner that positively impacts all. We may be writing about logical concepts, but our approach can definitely benefit from a bit of heart. This talk will break down the vital role empathy plays in the process of writing technical documentation for users from all business backgrounds.
750 |
751 |
752 | ~~Slides~~
753 | [Video](https://live.symfony.com/account/replay/video/1029) (not free)
754 | ~~Blog post~~
755 |
756 | By [Kemi Elizabeth Ojogbede](https://connect.symfony.com/profile/kemiojogbede)
757 | 💻 on [ @KemiOjogbede](https://github.com/KemiOjogbede)
758 | _✍ blog not found_
759 | 💬 on [ @kemi-elizabeth-ojogbede-…](https://linkedin.com/in/kemi-elizabeth-ojogbede-629010156/)
760 |
761 | ---
762 |
763 | ## Green IT, Accessibility, GDPR: 360 Vision of Sustainability
764 |
765 |
766 |
Description
767 |
Join us for an insightful session on more sustainable and ethical tech practices. This conference will cover the essentials of Green IT, showing you how to minimize environmental impact through optimized development processes. You’ll also learn about the importance of accessibility, ensuring that your web applications are inclusive and meet accessibility standards. Additionally, the session will delve into data privacy, providing practical advice on managing data protection in your projects. Gain valuable knowledge and tools to integrate sustainability into your Symfony applications and contribute to a more responsible tech ecosystem.
768 |
769 |
770 | ~~Slides~~
771 | [Video](https://live.symfony.com/account/replay/video/996) (not free)
772 | ~~Blog post~~
773 |
774 | By [Céline Déis Nuel](https://connect.symfony.com/profile/celine-deis)
775 | ✍ on [🌐 greenit.fr/author/celinedeis](https://www.greenit.fr/author/celinedeis/) [](https://www.greenit.fr/feed/)
776 | 💬 on [ @celinedeis](https://linkedin.com/in/celinedeis)
777 | · [ @celine_deis](https://twitter.com/celine_deis)
778 |
779 | And [Vincent Maucorps](https://connect.symfony.com/profile/vmaucorps)
780 | 💻 on [ @vmaucorps](https://github.com/vmaucorps)
781 | ✍ on [🌐 smile.eu/fr/publications-et-evenements](https://smile.eu/fr/publications-et-evenements?type[]=news)
782 | 💬 on [ @vincent-maucorps-…](https://linkedin.com/in/vincent-maucorps-digital-experience-solutions-free-software)
783 | · [ @vmaucorps](https://twitter.com/vmaucorps)
784 |
785 | ---
786 |
787 | ## Resurrecting the Dead
788 |
789 |
790 |
Description
791 |
Have you ever considered what would happen when a popular open source package is abandoned?
792 | Now, what about when that package is one of your essential dependencies?
793 |
794 | This scenario is not some abstract scenario for a far away future. Projects get abandoned every day and your dependency might be next... But you can help!
795 | Come & listen to some tales of an accidental maintainer and learn about what you can do to help try and prevent these situations from getting out of hand.
Communication is key but challenging for developers, especially when working with people using different programming languages. Front-end developers extensively use Component Architecture, as it is implemented in all major JavaScript frameworks. Let’s explore what Component Architecture is and how to implement it in a real Symfony application. This approach will enable your team to work efficiently on the same codebase, fostering better communication and collaboration by speaking the same technical language.
Creating an unforgettable user experience in searchandising is a challenge for both developers and business professionals.
835 |
836 | Enter Gally, our open-source searchandising solution, designed to meet the ecosystem's technical and functional needs with excellence.
837 |
838 | Join us for an engaging talk where we unveil our journey in crafting Gally.
839 |
840 | Discover how Gally harnesses the power of Symfony and API Platform to offer seamless extensibility for developers while boosting ease of use and revenue for businesses.
841 |
842 |
843 | [Slides](https://speakerdeck.com/romainruaud/2024-gally-at-symfonycon-revolutionize-searchandising-with-gally)
844 | [Video](https://live.symfony.com/account/replay/video/993) (not free)
845 | ~~Blog post~~
846 |
847 | By [Romain Ruaud](https://connect.symfony.com/profile/romainruaud)
848 | 💻 on [ @romainruaud](https://github.com/romainruaud) [💚](https://github.com/sponsors/romainruaud)
849 | _✍ blog not found_
850 | 💬 on [ @romain_ruaud](https://twitter.com/romain_ruaud)
851 | · [ @romain-ruaud-…](https://linkedin.com/in/romain-ruaud-5a001a20)
852 |
853 | ---
854 |
855 | ## Running Symfony in a Multi-Process Container
856 |
857 |
858 |
Description
859 |
The deployment scenario for PHP looks a little different than for other languages like Go or Ruby that have embedded webservers. The classic stack of NGINX/Apache + php-fpm doesn't perfectly fit in the container world.
860 |
861 | Some solution providers, like DigitalOcean or certain Azure products, only allow for single containers to be deployed.
862 |
863 | In this talk, we'll explore ways other people have solved this, like FrankenPHP, Framework-X , and others. For production deployments, there is k8s, swarm, compose, and running everything in one multiprocess container.
864 |
865 | These single containers could be orchestrated with systemd, supervisord, or Runit. We'll talk about the benefits and downsides of these solutions, compare them with the choice we made for our last project, s6-overlay, show off the s6-cli project I developed for this purpose and talk about recipes for running database migrations, cronjobs and a few more.
What started out as a sweet PEAR is now a sour PECL, and after many years of dealing with brined cucumbers it’s time to dish out some sweet new tools. Join us for a trip down memory lane as we take a look at the acquired taste of PHP extensions and their challenges from writing and publishing them to finally handling the installation procedure you are all too familiar with. The talk will give you an insight into an effort by the PHP foundation to bake a new PHP Installer for Extensions and how it will solve some of the challenges of dealing with PHP extensions.
886 |
887 |
888 | [Slides](https://speakerdeck.com/alcaeus/from-pickles-to-pie-sweeten-your-php-extension-installs)
889 | [Video](https://live.symfony.com/account/replay/video/985) (not free)
890 | ~~Blog post~~
891 | [The PHP Installer for Extensions](https://github.com/php/pie)
892 | [Extensions that support PIE](https://packagist.org/extensions)
893 |
894 | By [Andreas Braun](https://connect.symfony.com/profile/alcaeus)
895 | 💻 on [ @alcaeus](https://github.com/alcaeus) [💚](https://github.com/sponsors/alcaeus)
896 | _✍ blog not found_
897 | 💬 on [ @alcaeus79.bsky.social](https://bsky.app/profile/alcaeus79.bsky.social)
898 | · [ @alcaeus](https://twitter.com/alcaeus)
899 | · [ @andreas-b-…](https://linkedin.com/in/andreas-b-38b929252)
900 |
901 | ---
902 |
903 | ## Code Less, Create More: Unleashing AI Secret Weapons for Lazy(?) Developers!
904 |
905 |
906 |
Description
907 |
Join Thibault Milan as he explores the transformative power of AI in web development. Discover how tools like GitHub Copilot, Tabnine, Perplexity, and Azure OpenAI are revolutionizing his workflow, enabling faster ideation and seamless entry into new tech areas. Thibault will share insights on integrating AI to improve coding practices, overcome technical limitations, and venture into uncharted territory.
908 |
909 | This talk will inspire every developer to view AI as a complement to their skills, not a competitor, preparing them for a future where AI tools are indispensable partners in innovation.
910 |
911 |
912 | [Slides](https://speakerdeck.com/thibaultmilan/code-less-create-more-unleashing-ai-secret-weapons-for-lazy-developers)
913 | [Video](https://live.symfony.com/account/replay/video/992) (not free)
914 | [Blog post](https://thibaultmilan.com/blog/2024/12/06/code-less-create-more-unleashing-ai-secret-weapons-for-lazy-developers/)
915 |
916 | By [Thibault Milan](https://connect.symfony.com/profile/thibaultmilan)
917 | 💻 on [ @clawfire](https://github.com/clawfire) [💚](https://github.com/sponsors/clawfire)
918 | ✍ on [🌐 thibaultmilan.com/blog](https://thibaultmilan.com/blog) [](https://thibaultmilan.com/feed.xml)
919 | 💬 on [ @thibaultmilan](https://twitter.com/thibaultmilan)
920 | · [ @thibaultmilan](https://linkedin.com/in/thibaultmilan)
921 |
922 | ---
923 |
924 | ## Modern Approaches to Web Security: Stateless CSRF Protection Explained
925 |
926 |
927 |
Description
928 |
In today’s evolving threat landscape, robust web security practices are paramount to safeguarding applications and user data. This talk delves into modern approaches to web security, with a spotlight on stateless CSRF (Cross-Site Request Forgery) protection. Drawing from recent advancements in Symfony, we’ll explore how to secure web applications without relying on traditional session storage.
The Security component has changed a lot in the past few years.
951 | From Authentication Listeners to Guard and finally the Authenticator Manager system, Symfony now has the most robust infrastructure ever to support most if not all modern, industry-standard Security protocols.
952 |
953 | The community started building on these new foundations by introducing an AccessTokenAuthenticator and kept improving it since then, notably through adding more token handlers for well-known authentication protocols.
954 | That's pretty cool already, but what should we expect next? How far will we take it?
955 |
956 | In this talk, I'm going to put my Security maintainer hat on to answer these questions and share some insights about what's going on in this critical part of our beloved framework.