SymfonyLive Berlin 2023
5. – 6. Oktober 2023 • Berlin (Deutschland)
Watch the replay if you attended this conference or Buy a ticket to access the videos
Symfony 7: A tribute to Attributes (Nicolas Grekas)
In the ever-evolving landscape of web development, Symfony 7 stands out with its use of Attributes. This talk delves into the heart of Symfony 7, celebrating its innovative use of Attributes to simplify annotations, streamline configuration, and boost readability. We'll journey through examples showcasing the transformative power of Attributes in Symfony projects. Whether you're new to Symfony or a seasoned developer, join us to witness the synergy of modern PHP and Symfony's elegant architecture.
Wie viel Datenbankabstraktion brauche ich? (Alexander M. Turek)
SQL-Datenbanken sind integraler Bestandteil vieler Webanwendungen. Doch wie interagiere ich mit der Datenbank am Besten? Schreibe ich alle SQL-Statements per Hand, um maximale Kontrolle zu behalten? Oder verwende ich ein ORM, um mich weniger zu wiederholen und zu mehreren SQL-Dialekten kompatibel zu bleiben? Wir werfen einen Blick auf die Doctrine-Bibliotheken ORM und DBAL sowie native PHP-Erweiterungen und vergleichen sie für unsere Anwendungsfälle.
Effizientes Caching für moderne Webseiten (Thomas Schedler)
Zeit ist heutzutage eine der wertvollsten Ressourcen - und das Internet ist dafür keine Ausnahme. Nutzer warten nicht gerne auf Inhalte und sind schneller weg, als Sie vielleicht annehmen würden. Weiters sollten sich moderne Webseiten auf die Bedürfnisse ihrer Besucher anpassen, was das Caching von Inhalten noch komplexer macht, wie es eh schon ist. Gemeinsam werfen wir einen Blick auf die Grundlagen des HTTP-Cachings. Anhand von praxisnahen Beispielen erfahren Sie, wie Sie die Caching-Mechanismen gezielt einsetzen können, um Inhalte schneller auszuliefern und nebenbei noch die Serverlast zu reduzieren. Weiteres werden wir auch auf die Herausforderungen eingehen, die mit dem Caching verbunden sind, insbesondere wenn es darum geht, Inhalte individuell auf die Bedürfnisse Ihrer Zielgruppe abzustimmen.
Multi-Tenancy - Yay or Nay? (Simon Möller-Börkel)
Bei vielen Webanwendungen kommt der Punkt, an dem man das gleiche Produkt für einen weiteren Kunden (mit einem oder mehreren Usern) anbieten will oder die gleiche Webanwendung mit unterschiedlichen Basisdatensätzen ausgeführt werden soll. Klassisch wird die Anwendung dann auf einem weiteren Server oder Container ausgeführt und etwa über eine andere Domain angesprochen. Eine häufig verwendete Alternative dazu ist eine Multi-Tenancy-Architektur. Eine Multi-Tenancy-Architektur verfolgt die Idee, die Datenbestände auf einer Instanz so zu trennen, das sich die Anwendung für unterschiedliche Nutzer anfühlt, als würde eine eigene, dedizierte Instanz verwendet werden. Der Vorteil ist, das so nur eine Softwareversion gepflegt werden muss und Bugfixes sowie neue Features nur einmal ausgerollt werden müssen. In diesem Talk stelle ich zwei verschiedene Ansätze vor, wie eine Multi-Tenant-Anwendung implementiert werden kann: mit Datenhaltung in einer oder in getrennten Datenbanken je Mandant. Dabei beleuchte ich die jeweiligen Vor- und Nachteile der Implementationen anhand von User-Stories, welche auch euch als Entscheidungshilfe für eigene Anwendungen dienen können. Beide Ansätze werden anhand von Symfony gezeigt, und ich gehe dabei auf die typischen Probleme ein, auf die ihr stoßen werdet - und wie diese gelöst werden können.
Von Chaos zu Kontrolle: Exception Handling in Symfony (Anne-Julia Seitz)
Fehlerbehandlung in PHP ist leicht gemacht, aber schwerer zu meistern. Wie so oft liegt der Teufel im Detail. Wie mappe ich meine Fehler auf sinnvolle HTTP-Statuscodes? Welche Struktur macht für die Suche und Filterung im Monitoring Sinn und wie gebe ich Kontextinfos für das Debugging mit? Häufig wird diesen Fragen anfangs wenig Beachtung geschenkt und wenn sich die ersten Clients an die Struktur gewöhnt haben, ist ein Umbau schwierig. Die Entwicklung von PHP tendiert dazu, immer strikter zu werden, doch wie können wir die Vorteile davon in unserem Code nutzen und souverän mit Fehlern in Symfony-Anwendungen umgehen? Wir werden in die Welt der Fehlerbehandlung eintauchen und lernen nicht nur die grundlegenden Konzepte der Ausnahmebehandlung kennen, sondern auch bewährte Methoden zur Nutzung der leistungsstarken Fehlerbehandlungs-Komponenten von Symfony entdecken. Von der Erstellung benutzerdefinierter Ausnahmen bis hin zur effizienten Protokollierung und Behandlung von Fehlern erhältst du wertvolle Einblicke, um robuste und fehlerfreie Symfony-Anwendungen zu entwickeln. Egal, ob du ein erfahrener Symfony-Entwickler bist oder gerade erst anfängst, dieser Vortrag wird dir helfen, dein Verständnis für Exception Handling zu vertiefen und die Qualität deines Codes zu verbessern.
Hochperformante Anwendungen mit Event Sourcing & Doctrine (Timo Nußbaum)
Bevor wir in die Anatomie von EventSourcing eintauchen, ist es wichtig zu verstehen, in welchem Umfeld wird das beste Ergebnis mit EventSourcing erzielen können. Das Gute ist, dass das Architektur-Pattern selbst eines der am einfachsten zu erlernenden Pattern ist – sofern man Alexeys (EventStore) Vortrag glaubt. Wir haben einen Zustand und dieser wird durch ein eingehendes Event verändert. Das ist alles! In meinem derzeitigen Job musste ich eine gute Lösung für eine Art “state machine” für eines der größten internationalen Discountunternehmen finden. Das stellte sich sowohl als Segen als auch als Fluch heraus. Ein Segen, weil ich derjenige bin, den sie ausgewählt haben, um eine gute Lösung für sie zu finden (mir ist immer noch nicht ganz klar, warum ihre Entscheidung gerade auf mich fiel). Ein Fluch, weil mit der Möglichkeit auch eine große Verantwortung einhergeht. In diesem Vortrag werde ich Euch auf eine Reise mitnehmen, eine Reise, die niemals enden wird. Wie auch in Domain Driven Design ist der Weg das Ziel. Wir beginnen unsere Reise in unserer Heimat namens Symfony. Weiter östlich gelegen ist unser erster Halt in Dresden, nahe Leipzig – letzteres auch bekannt für die Völkerschlacht, in der Napoleon gezwungen wurde, nach Frankreich zurückzukehren. Ich treffe Sebastian (einen netten Kerl) an einem sonnigen Tag in der Altstadt und wir unterhalten uns über den brandneuen eventstore-doctrineadapter, den er mit einigen seiner Freunde entwickelt hat. Neben viel Wein & gutem Essen ist mir dieser Adapter ans Herz gewachsen und bevor ich weiterziehe, probieren wir einige grundlegende Implementierungen aus. Nur eine meiner Stationen, bevor ich ein Telefon benutze, um mit Thomas, einem Freiburger Urgestein (Thomas ist clean code) Kontakt aufzunehmen. Freiburg selbst ist bekannt für die Schlacht von Freiburg. Diesmal ging der Sieg an die französischen Truppen. Aber Thomas interessiert sich nur für Coding und nicht für Geschichte (armer Thomas). Übrigens, kennt ihr Thomas von Aquin? Thomas erzählt mir vom symfony messenger, der stark von Matthias Nobacks Serie von Blogbeiträgen inspiriert ist. Der symfony messenger erlaubt es uns, die Anwendung auf unsere Bedürfnisse zu skalieren. Zurück in Stuttgart, bekanntlich bekannt für nichts, überrede ich meinen Teamleiter (sicherlich ein Nachfolger eines russischen Adligen) zu einer weiteren Reise nach Dresden. Wir müssen unsere Lösung unbedingt mit dem symfony messenger ausprobieren! Was könnt Ihr von dem Vortrag erwarten? Ich werde Deutsch als Sprache verwenden (langweilig - ich weiß). Zugegeben, es ist für mich einfacher (obwohl ich meinen schwäbischen Einschlag zu verbergen versuchen muss). Grundsätzlich verwenden wir den eventstore-doctrineadapter - aber das Meiste müssen wir selbst bauen. Der symfony messenger hilft uns bei der Skalierung... und natürlich müssen wir CQRS verwenden. Lehnt euch zurück und genießt die Reise (mit Popcorn, bitte).
Transparente Benzinpreise mit Aggregation Pipelines in MongoDB (Andreas Braun)
Deutschland und die Benzinpreise. Wir haben uns daran gewöhnt dass sich die Preise bei jeder Vorbeifahrt an der Tankstelle ändern. Aber wann sollten wir dann tanken? In diesem Vortrag analysieren wir die Preise mittels Aggregation Pipeline in MongoDB und versuchen etwas Sinn in eine Datenbank zu bringen, die mehr als 100 Millionen Preisänderungen für ein einzelnes Jahr beinhaltet. Gleichzeitig werden Strategien aufgezeigt, wie man solche Datenmengen speichern und optimieren kann, damit Abfragen in der Datenbank in endlicher Zeit durchgeführt werden können.
PHPUnit 10 für Symfony Entwickler:innen (Sebastian Bergmann)
Version 10 ist wahrscheinlich das bisher größte Update für PHPUnit. Fast alle Interna des am weitesten verbreiteten Test-Frameworks für PHP wurden längst überfälligen Änderungen unterzogen, um die Arbeit der Entwickler:innen zu verbessern, die an PHPUnit arbeiten. Diese Präsentation beleuchtet die Verbesserungen, die für diejenigen vorgenommen wurden, die täglich Tests mit PHPUnit schreiben und ausführen. Darüber hinaus wird gezeigt, warum einige Teile der PHPUnit Bridge von Symfony bald überflüssig werden könnten. In diesem Vortrag lernen Sie alles, was Sie über PHPUnit 10 wissen müssen. Sie werden große und kleine neue Features in Aktion erleben und sehen, wie sie Sie dabei unterstützen können, Ihre Software effektiv und effizient zu testen.
Talkception : why non-technical talks in tech events are so important. (Magali Milbergue)
The following talk is done by a professional, please don't try this at home ! Today, we will give a non-technical talk in a tech event to advocate for non-technical talks in tech events ! Tadaa ! We often judge tech events by the quality of their technical talks. And after all, why not ? It seems totally fair as we probably go to these events to learn all the new infos about our favorite tools, we want to learn the hot new good practices, we want inspiration, experiences reports... We want to test new things and be blown away by shiny code ! We say "YAY" when our favorite speakers are announced and wonder what the newbies will bring to the table ! Okay. But is a tech event really a good event without non-technical talks ? Our jobs are to build tech but we are humans. Humans interacting with other humans. And it does impact our work. And we don't only build tech out of nothing, we do it to our users, that are (we can only hope) humans themselves. So thinking our work is only technical is akeen to let a whole unseen area from which big issues could come from. And I will argue in this talk that any good tech event should actually be judged on its non-technical talks rather than on the technical ones.
Anatomie des Request Handlings (Christian Flothmann)
Der HttpKernel ist eine der zentralsten Komponenten der Symfony-Architektur und verantwortlich für die Verarbeitung aller HTTP Requests. In diesem Talk möchten wir mit euch Schritt für Schritt alle wichtigen Elemente der Request-Verarbeitung durchgehen und zeigen, wie das Framework selbst diese nutzt und wie auch ihr sie sinnvoll in eurer Symfony Anwendung nutzen können.
Bessere Software dank API First (Max Beckers)
Software hat den Zweck Daten zu verarbeiten - über unterschiedlichste Datenflüsse kommen Daten in die Applikation rein oder müssen anderen Diensten bereitgestellt werden. Deshalb brauchen wir APIs, was der Kern des API First Ansatzes ist. Es wird von Beginn an der Fokus auf die API gelegt. Heutzutage denken wir oft in Microservices und entwickeln Headless Systeme - zwei Architekturansätze, die den API First Ansatz entscheidend vorantreiben. Was ändert sich im Entwicklungsprozess? Wie wird die Qualität der Software gesteigert? Und wie macht API First alle Beteiligten glücklicher? Ich werde versuchen, diese Fragen in meinem Vortrag zu beantworten. Außerdem möchte ich einige praktische Tipps und Werkzeuge für APIs vorstellen.
Die Verwendung von Anemic und Rich Domains in Symfony (Denis Zunke)
Symfony bietet seit einiger Zeit eine immer breitere Unterstützung an Funktionalitäten für die Anwendung von Rapid Application Development (RAD). Es ist möglich innerhalb von wenigen Minuten ein vollwertiges MVC-System mit einer Entity basierten Domain aufzubauen. Dazu ist das Doctrine ORM tief integriert. Das klingt auf dem Papier richtig gut und funktioniert auch im ersten Anlauf wie von Zauberhand. Aber was passiert mit dem RAD-Ansatz, wenn man den Standard einer Anemic Domain nicht umsetzen möchte? Ist es möglich den RAD-Ansatz auch mit einer Rich Domain zu verfolgen? Also einer Domain, die nicht darauf basiert nur einfache Getter und Setter für ihre Properties zu liefern? Wir wollen uns anschauen wie Symfony im Standard mit seiner vorgeschlagenen Domain umgeht und ob dieser Weg auch für die Anwendung eines „Domain-Driven Design“ (DDD) mit seiner Rich Domain passen kann. Was braucht es eventuell für Abweichungen von den offiziellen Schnellstart-Dokumentationen? Wir schauen dabei auf den gesamten Weg von der Datenbank über die Ausgabe bis hin zum Formular. Können wir unsere Rich Domain mit Fachlogik zum Laufen bringen? Wir werden es sehen!
Wie Sie GPT mit Ihrer Symfony-App verwenden (Christopher Hertel)
Mit der Veröffentlichung von ChatGPT hat OpenAI eine Menge Buzz um GPT und KI im Allgemeinen erzeugt. Für Softwarearchitekten und -entwickler ist dies nicht nur ein Game Changer, wenn es um Lernen oder Debugging geht, sondern auch ein neues Tool, das in die eigene Systemarchitektur eingebettet werden kann. In diesem Vortrag werden wir einen genaueren Blick auf die grundlegenden Konzepte von GPT, die relevanten Modelle und wie Sie diese effektiv in Ihrer Symfony-Anwendung nutzen können, werfen.
Identity Crisis: OAuth2, OIDC & Symfony (Denis Brumann)
In modernen Anwendungen innerhalb einer Cloud-Landschaft ist es zunehmend üblich ein zentralisiertes Identity & Access Management-System zu nutzen. Ob Keycloak, Amazon IAM oder eines der unzähligen anderen Services; die Auswahl ist groß aber glücklicherweise gibt es Standards, die die Integration einfacher machen. Es gibt einige Bundles, die einem die Integration von OAuth2 + Open ID Connect einfach(er) machen. Die modernisierte Symfony Security-Komponente hat in 6.2 einen TokenAuthenticator spendiert bekommen und in 6.3 kam ein dedizierter OpenID Token Handler dazu, die in Zukunft eine Alternative zu diesen sein könnte. Mein Talk fokussiert sich auf die Nutzung Symfony's Token Authenticator und deren Verwendung im Kontext von OAuth2 mit OIDC mit einem kurzen Blick auf mir bekannte Alternativen.
Bekomm die Supply Chain deiner Projekte in den Griff (Nils Adermann)
Mittlerweile hat jeder den Begriff Supply Chain gehört, aber was genau bedeutet das für ein Symfony Projekt? Erfahre mehr über Software Supply Chains, wie Werkzeuge, wie Composer, und Services, wie CI oder Private Packagist, dazu beitragen und welche Rolle PHP-Abhängigkeiten dabei spielen. In diesem Vortrag werden konkrete Schritte vorgestellt, um Abhängigkeiten zu identifizieren, und Maßnahmen zu ergreifen, um das Zusammensetzen einer Anwendung aus Komponenten besser und sicherer zu gestalten.
Haben Sie SymfonyLive Berlin 2023 verpasst?
Besuchen Sie uns auf einer der nächsten Konferenzen!
Berlin / Deutschland
3. – 4. April 2025
Die Vorträge sind in Englisch, Deutsch
Amsterdam / Niederlande
27. – 28. November 2025
Die Vorträge sind in Englisch