sfday Italy (formerly known as SymfonyDay) is the main conference in Italy dedicated solely to Symfony and its ecosystem. Hundreds of developers from the whole country already participated in the previous editions. Since 2019, 8th edition, the conference became international and is held entirely in English.

Friday 20th November 2020

Stop mocking everything
Talk by Samuele Lilli (1 hour)

More and more developers practice TDD, but implementation and test code are too often in a one-to-one relationship. This means that whenever implementation code changes, unit tests need to be adapted as well. The most likely cause? An abuse of test doubles (mocks, stubs, and so on). In this talk the methodology will be under the spotlight, no matter what TDD tool you're using. As a matter of fact there won’t be any slides, just plain PHP code. I will build a practical example using both PHPUnit and PHPSpec, two of the main testing tools for PHP, pointing out the advantages of using real implementations (when possible) instead of test doubles.

10:45 The absolute beginner's guide to Domain Driven Design with Symfony
Talk by Neal Brooks (1 hour)

DDD is one of the most effective ways to address business problems, but it can be overwhelming to get started with. Even armed with the theory, beginning the journey is mysterious and finding answers to specific implementation details can be tough and scary. In this talk we'll demystify the terminology and work out the most important aspects of DDD you'll need to get you going. Then, by exploring and implementing a sample business domain, we'll discover such things as: - How DDD entities differ from Doctrine entities - What an aggregate root actually is - How to organise your code - How to define a bounded context - How a domain service differs from an application service Finally, we'll wire it all together with Symfony 5. So if you've been wanting to get started with DDD for a while but never knew how or where to start then this talk is for you.

11:45 Symfony and Hexagonal Architecture
Talk by Alessandro Minoccheri (45 minutes)

Symfony has many amazing components and libraries. But it’s important to implement your own application logic, create your own domain models decoupled from the framework. In this talk, I will explain the "Hexagonal Architecture" style to help you to organize your application designed well to test and easy to maintain and evolve.

Talk by Antonello D'Ippolito (45 minutes)

Continuous delivery, deployment, integration: a lot of buzzwords of our times start with "continuous". But do they exist in real life? Or is this just fantasy? In this session, I'll show how real and impactful CI/CD can be by telling you the story of how we are building "continuous stuff" at VONQ. It's a story about tests, pipelines, automation and feature toggles, but, more importantly, about changing mindsets. We'll go through each of the stages - coding, testing, deploying (and delivering) - and we'll find out (spoiler!) why the road to continuous delivery is valuable even if you're not going to deploy in production many times per day.

14:45 Deploying your first Symfony application to Kubernetes
Talk by Bastian Hofmann (1 hour)

Kubernetes is a very powerful container orchestration platform that is quickly gaining traction and gives you lots of benefits in deploying, running and scaling your web application. But it has also a steep learning curve. In this talk I will introduce you to Kubernetes and show how you can set up a complete cluster and deploy a Symfony app to it in a few minutes.

16:00 CI/CD Agility and Controlling Pipeline Sprawl
Talk by Angel Rivera (45 minutes)

The adoption of CI/CD has automated the process of how DevOps teams build, test, and deliver software at rapid speeds and with high confidence. Although CI/CD platforms offer many benefits, in the attempt to make sophisticated pipelines, many teams run into the issue of "Pipeline Sprawl". Pipeline sprawl makes it difficult for DevOps teams to identify and reuse common execution patterns which diminishes their ability to efficiently ship new code. In this talk, Angel will discuss the common pain points associated with existing CI/CD platforms. The talk will pull in examples from his recent experience and conversations with DevOps teams from across the open source community, startups, and large enterprises. Attendees will learn technical strategies to develop optimized pipeline configurations and diminish potentially costly vendor-lock in.

16:45 My Symfony functional testing toolbox
Talk by Alessandro Lai (45 minutes)

When testing the PHP side of a Symfony application, tests are normally split into unit and functional: the former do not need anything in addition to some proficiency, due to their small size and isolated execution; the latter instead are more complex, slower and sometimes more brittle, because they use more components, and they involve the framework and the libraries used to build the app. In this talk, I'll show all the small tools, tips & tricks that I've accumulated over the years writing functional tests on Symfony projects, which have helped me in keeping fast, reliable and maintainable test suites.