Berlin 2019 24-27 SEPTEMBER
German flag

Workshops

Nicht verpassen: Unsere spannenden Workshops werden von qualifizierten Experten durchgeführt, die seit Jahren mit und an Symfony arbeiten. Wir wählen nur Trainer mit langjähriger Erfahrung in der Realisierung von PHP-Projekten aus, um die perfekten Ansprechpartner für unsere Teilnehmer zu garantieren.

Die Workshops finden am Dienstag, den 24.09.2019, und Mittwoch, den 25.09.2019 ganztägig statt.

Wir bieten verschiedene ganztägige Workshops pro Tag an, die jeweils parallel laufen. Pro Workshoptag könnt ihr nur einen Workshop besuchen. Auch bei der kommenden SymfonyLive wird es wieder einige englischsprachige Workshops geben.

Tickets für die SymfonyLive Berlin Workshops sowie für die Konferenztage kannst du schon jetzt bestellen.

Workshops am Dienstag, dem 24. September

Advanced Symfony Security

Dienstag, 24.09.2019 - Marco Petersen - ausverkauft

Ein Security-Layer ist aus vielen modernen Webanwendungen nicht mehr wegzudenken. Die Security-Komponente von Symfony erleichtert das Einrichten eigener Security-Logik und bietet Mechanismen, welche es dem Entwickler ermöglichen, selbst die komplexesten Anforderungen einfach und wartbar zu realisieren.

In diesem Workshop nehmen wir die Komponente genauer unter die Lupe und befassen uns mit fortgeschrittenen Themen wie dem Guard-Authenticator, Security-Votern, sowie weiteren Mechanismen, um Authentifizierung und Authorisierung nach Bedarf anzupassen.

Der Workshop richtet sich an alle Entwickler/innen, die bereits erste Schritte mit der Security-Komponente gemacht haben und ihr Verständnis vertiefen möchten.

Symfony Messenger

Dienstag, 24.09.2019 - Samuel Roze

The Symfony Messenger component brings to Symfony the notion of message buses and (optional) asynchronous processing of these messages via queues such as RabbitMq.

In this workshop, you will learn about (1) how to use the message bus pattern as a strategy to decouple your application, (2) configure the routing of your messages to handle them asynchronously and (3) discover the underlying notion of middleware in order to add your own logic to the buses. We'll then go into more details around (4) how Messenger applies in the CQRS context, (5) the specifics of the AMQP and Enqueue adapters for your asynchronous processing and (6) how to customise and write your own adapters.

Modernisieren mit Symfony

Dienstag, 24.09.2019 - Alexander Turek

Eine in die Jahre gekommene Webanwendung. Sie verdient immer noch Geld für uns, aber es wird immer schwieriger, sie zu warten. Feature-Wünsche der KundInnen häufen sich, der Bug-Tracker läuft über, aber die Abarbeitung wird immer langsamer und fehleranfälliger. Jetzt einen Rewrite zu starten, das würden viele EntwicklerInnen nun gerne tun. Nur wahrscheinlich wird dieser niemals fertig.

In diesem Workshop werden wir uns eine alte php-Codebasis vornehmen. Durch Einbinden von Symfony und weiteren Open-Source-Bibliotheken werden wir schrittweise alte Anwendungsteile ablösen und unsere Legacy-Codebasis auf diesem Weg schrittweise in eine moderne Symfony-Anwendung umbauen.

Symfony Forms im Detail

Dienstag, 24.09.2019 - Christopher Hertel

Formulare sind bei vielen Webseiten elementar und können sehr unterschiedlich ausgeprägt sein. Ein einfaches Formular ist mit der Form Komponente von Symfony schnell umgesetzt, aber wie sieht es mit komplexeren Anwendungsfällen aus? Wir beleuchten die Architektur der Komponente, an welchen Stellen wir - zusätzlich zu FormTypes - Erweiterungen machen können und welche Anwendungsfälle vielleicht nicht mit der Komponente umgesetzt werden sollten.

Der Workshop richtet sich an Entwickler*innen, die bereits Erfahrung mit Symfony und der Form Komponente gemacht haben, aber ihr Verständnis vertiefen möchten und gehobene Anforderungen haben. Wir werden über den Tag viele praktische Aufgaben mit der aktuellsten Symfony Version lösen.

REST Services in Symfony

Dienstag, 24.09.2019 - Andreas Hucks

Webservices werden mittlerweile in sehr vielen Bereichen der IT zur Integration unterschiedlicher Anwendungen verwendet. REST-Webservices spielen dabei eine besondere Rolle, da REST sich auf die Grundlagen von HTTP stützt, einfach verständlich ist und leicht in bestehende Anwendungen zu integrieren ist. In diesem Workshop bringen wir den Teilnehmern sowohl die theoretischen Grundlagen von REST, als auch die praktische Umsetzung mit Symfony näher.

Mit praxisnahen Beispielen werden Themen wie Serialisierung, Content-Negotiation und die Sicherheit von REST-Webservices erklärt und durch realistische Übungsaufgaben verdeutlicht.

Deployen, Skalieren und Monitoring von Symfony Anwendungen in Kubernetes

Dienstag, 24.09.2019 - Bastian Hofmann - ausverkauft

Kubernetes ist eine sehr leistungsfähige Container Orchestration Plattform, die einem viele Vorteile beim Deployen, Ausführen und Skalieren von hoch verfügbaren Web-Anwendung bietet und einiges an manueller Arbeit abnimmt.

In diesem Workshop lernt ihr wie Kubernetes funktioniert und man eine Symfony Anwendung innerhalb von Kubernetes aufsetzt, skaliert, monitort und in seine CI Pipelines integriert.

Profiling Symfony & PHP apps

Dienstag, 24.09.2019 - Marc Weistroff, Christian Flothmann

It is difficult to improve what is not measurable! Profiling an application should always be the first step in trying to improve its performance. With this workshop, learn how to identify performance issues in your application and adopt the best application profiling tools in your daily development habits.

This workshop will guide you through the use of PHP profiling tools such as Blackfire.io to help you identify performance leaks.

Knowing your state machines - The Symfony Workflow Component

Dienstag, 24.09.2019 - Tobias Nyholm

Web development is not just about delivering a response, it is also about writing good code. The state pattern will help you move complexity from being all over your code to one or more state machines.

Tobias' workshop will introduce state machines, show you how to identify uses of them, and implement them in your Symfony application in an object-oriented manner using the Symfony Workflow component.

Advanced Application Testing

Dienstag, 24.09.2019 - Matthias Noback - ausverkauft

Many web applications out there don't get the testing love they need. Some test suites only have unit tests; they run fast, but will never prove that features as a whole function correctly. Some test suites only have functional tests; they run very slowly, they often fail for no reason, but they can prove that all the wiring is correct too. There is a middle ground, which we'll be aiming to reach in this workshop. We take an existing application with only functional tests and "tease out" other types of tests. We thereby:

  • Increase the speed and predictability of the test suite as a whole
  • Reduce the need for functional tests
  • Set a standard for web application test suites, which you can apply at home (or at work) too

All of this will be rooted in some pretty interesting software architecture theory (i.e. ports & adapters and layered architecture). The program:

  • System tests
  • Architecture: ports, adapters, layers
  • Integration tests
  • Unit tests
  • Acceptance tests
  • Test doubles and architectural boundaries
  • Spotting design issues with feedback from tests

Symfony Best Practices

Dienstag, 24.09.2019 - Andreas Grzywatz

Wie baut man ein einfaches Symfony4-Projekt auf? Symfony ist für seine Flexibilität bekannt und wird für die verschiedensten Zwecke benutzt. Angefangen bei Microsites, über Enterprise-Anwendungen, die Millionen von Request beantworten, bis hin zur Basis von anderen Frameworks.

Wir geben Tipps zum Aufbau von Standard-Anwendungen mit Symfony, die sich bei unserer Arbeit mit einer Vielzahl von Kundenprojekten in den letzten Jahren als sinnvoll herausgestellt haben.

DDD practices applied to Doctrine 2 Projects

Dienstag, 24.09.2019 - Marco Pivetta

In this full day of hands-on coding we will approach development with Doctrine ORM from a tactical DDD perspective.

We will start from a minimal specification, exploring yet-to-be-discovered business scenarios in a rich domain, how to plan features, how to isolate them into workable units, implement them in a framework-less environment and finally test them effectively.

We'll freshen up some DB design done "domain-first", looking at the possible performance issues how to mitigate them on the long run and how to provide an optimal data model for both writes and reads without sacrificing valuable abstractions in the domain logic.

At the end of the day, you will have a good overview of how to attack relational DB abstractions, when to optimise for business interactions, and how to optimise for read interactions.

Von der Idee zum Feature

Dienstag, 24.09.2019 - Stefan Priebsch

Fachanwender sind keine Software-Designer. Und Entwickler sind keine Fachexperten. Aber wo kommen dann eigentlich die Features her, die in der Entwicklung umgesetzt werden sollen? Und warum dauert das immer alles so lange und ist dann auch noch so teuer?

Wir setzen in diesem Workshop vor der eigentlichen Programmierung an und versuchen, den Prozess von der Idee zu einem schließlich in Code umsetzbaren (?) Feature zu verstehen und zu verbessern. Zwischen Conway's Law und Akzeptanztests untersuchen wir unter anderem die Unterschiede zwischen iterativer und inkrementeller Entwicklung. Wir sehen uns verschiedene Arbeits- und Visualisierungstechniken an, die uns helfen, Features zukünftig effizienter zu spezifizieren und zu planen.

Der Workshops vermittelt anhand von praxisnahen Fallbeispielen einen Einblick in verschiedene Werkzeuge und Methodenbausteine und ermuntert dazu, sich aus diesem Baukasten ein eigenes, der jeweiligen Situation angemessenes Vorgehensmodell zusammenzustellen.

Workshops am Mittwoch, dem 25. September

Upgrading Symfony

Mittwoch, 25.09.2019 - Andreas Hucks

Habt ihr schon mal versucht eine alte Symfony Anwendung auf den neusten Stand zu bringen? Symfony 4.4 löst Symfony 3.4 als neuste LTS Version ab. Ein guter Zeitpunkt, um sich mit der Thematik zu beschäftigen.

In diesem Workshop werden wir gemeinsam eine Symfony 2+ Anwendung auf den neusten Stand bringen. Wir gehen auf den Releaseprozess von Symfony ein, sehen uns Tools an, die uns dabei helfen werden Deprecations zu erkennen, werden Anhand der Beispielanwendung den Upgrade-Vorgang zusammen durchführen und mehr über die Grundlagen von Composer lernen. Am Ende des Workshops wisst ihr, wie ihr eure Anwendung sicher upgraden könnt und welche Strategien euch zur Verfügung stehen.

Learning Design Patterns with Symfony

Mittwoch, 25.09.2019 - Hugo Hamon

Established in the 70's by the "Gang of Four", Design Patterns are general reusable abstract solutions to solve often recurring problems in software design. Object oriented frameworks leverage them to design robust, extensible and testable code, letting developers build their applications on top of solid foundations.

In this workshop, you'll (re)discover tens of the original design patterns, why and how they're implemented in Symfony.

Symfony Messenger

Mittwoch, 25.09.2019 - Samuel Roze

The Symfony Messenger component brings to Symfony the notion of message buses and (optional) asynchronous processing of these messages via queues such as RabbitMq.

In this workshop, you will learn about (1) how to use the message bus pattern as a strategy to decouple your application, (2) configure the routing of your messages to handle them asynchronously and (3) discover the underlying notion of middleware in order to add your own logic to the buses. We'll then go into more details around (4) how Messenger applies in the CQRS context, (5) the specifics of the AMQP and Enqueue adapters for your asynchronous processing and (6) how to customise and write your own adapters.

Doctrine effizient verwenden

Mittwoch, 25.09.2019 - Denis Brumann - ausverkauft

Doctrine ORM ist ein elementarer Bestandteil in vielen Symfony-Anwendungen, egal ob Full-Stack, API oder Command Line-Tool. Seit dem Release von Version 2.6 Ende Dezember 2017 wird an ORM Next (3.0) gearbeitet und der Branch enthält bereits einige Änderungen, die man in aktuellen Projekten berücksichtigen kann, um ein späteres Upgrade einfacher zu gestalten.

In diesem Workshop besprechen wir aktuelle Best Practices beim Einsatz von Doctrine in einer modernen Symfony-Anwendung mit Fokus auf die Vermeidung von Speicher- und Performanceproblemen und einem Blick auf zukünftige Änderungen und ihre Auswirkungen auf Projekte, die Doctrine ORM einsetzen. Der Workshop richtet sich an Entwickler*innen, die bereits Erfahrung mit Doctrine haben, aber ihr Verständnis vertiefen möchten.

Die Praxisbeispiele bauen auf einer aktuellen Symfony 4-Anwendung auf und Features, die zum Einsatz kommen, wie das Autowiring, werden als bekannt vorausgesetzt.

REST Services in Symfony

Mittwoch, 25.09.2019 - Jan Schädlich - ausverkauft

Webservices werden mittlerweile in sehr vielen Bereichen der IT zur Integration unterschiedlicher Anwendungen verwendet. REST-Webservices spielen dabei eine besondere Rolle, da REST sich auf die Grundlagen von HTTP stützt, einfach verständlich ist und leicht in bestehende Anwendungen zu integrieren ist. In diesem Workshop bringen wir den Teilnehmern sowohl die theoretischen Grundlagen von REST, als auch die praktische Umsetzung mit Symfony näher.

Mit praxisnahen Beispielen werden Themen wie Serialisierung, Content-Negotiation und die Sicherheit von REST-Webservices erklärt und durch realistische Übungsaufgaben verdeutlicht.

Entwicklung einer Anwendung mit einem modernen Symfony CMS - Sulu 2.0

Mittwoch, 25.09.2019 - Thomas Schedler

Die Entwicklung moderner Webseiten wird immer komplexer und umfangreicher. Klassische Vermarktungsauftritte rück immer mehr in den Hintergrund — viel öfter geht es um die Ausweitung eines bestehenden oder das Etablieren eines neuen Businessmodells in der digitalen Welt. Genau an diesem Punkt setzen Framework basierte Content Management Systeme wie Sulu an. In seiner gewohnten Symfony Entwicklungsumgebung Content-Management-Herausforderungen und Business-Logik zu einer maßgeschneiderten Lösung zu kombinieren, wird der Schwerpunkt dieses Workshops sein.

Dazu werden wir uns zuerst die Basiskonzepte von Sulu aneignen, um dann möglichst schnell die Schnittstellen zwischen Sulu und Symfony zu erkunden. Es sind nämlich genau diese, die es uns ermöglichen, Custom-Domain-Objects in unserer Administrationsoberfläche abzubilden und mit Content aus dem Redaktionssystem zu verschmelzen.

Event storming for fun and profit

Mittwoch, 25.09.2019 - Jelrik van Hal, Pim Elshoff

Ever felt like you delivered the exact wrong thing? Software that is just not what your users wanted or needed? Did you ever feel really good about something you built, then only to find out that your users were expecting something else?

Building the right thing is not the same as building the thing right. How can we know what we should be building in the first place?

Event storming helps us discover what our users need. In this laptop-free, very interactive workshop we’ll dive into this discovery and modelling technique that involved a lot of sticky notes and a lot of questions and (hopefully) answers. We’ll explore the codification of sticky note colours and find out first-hand why they’re of value to us. Or, as Dan North put it: why event storming might just be the most valuable thing since sliced domains.

Einführung in ReactJS

Mittwoch, 25.09.2019 - David Badura

ReactJS ist eine JavaScript-Library für die Entwicklung von Benutzeroberflächen unter anderem für Webanwendungen aber auch für Native Mobile-Anwendungen. ReactJS überzeugt dabei durch seine einfachen Konzepte und, dank der komponentenbasierten Struktur, durch seine hohe Wiederverwendbarkeit. Dieser Workshop erklärt die Hauptkonzepte von ReactJS und bietet einen Einblick in die Entwicklung von Single-Page-Anwendungen.

Die Inhalte werden zunächst theoretisch vermittelt und dann in einer Praxis-Session vertieft. Zum Schluss wird erläutert, welche Möglichkeiten es bei der Anbindung von ReactJS in Symfony gibt, welche Herausforderungen damit einhergehen und welche Lösungsansätze existieren. Anforderungen: Du solltest grundlegende Kenntnisse in Javascript mitbringen.

Richtig guten Code schreiben

Mittwoch, 25.09.2019 - Sebastian Bergmann - ausverkauft

Was macht sauberen Code aus? Wie wird Code richtig gut? Und wie schreibt man richtig guten Code? In diesem Workshop lernt Ihr das nicht nur, sondern Ihr könnt es auch direkt in die Praxis umsetzen! Zunächst demonstriert Sebastian Bergmann den Einsatz von Domain-Driven Design und Test-Driven Development, natürlich nicht ohne auch über Themen wie Clean Code oder die SOLID-Prinzipien zu sprechen. Danach arbeitet Ihr in Paaren und setzt das Gelernte in die Praxis um.

Wir schließen den Tag ab mit einer Review-Runde, in der Ihr Feedback zu Eurem Code bekommt. Um von diesem Workshop wirklich profitieren zu können, bringst Du bitte Dein eigenes Laptop mit Deiner gewohnten Entwicklungsumgebung mit. Neben IDE (oder Texteditor) brauchst Du eine aktuelle Version von PHP und PHPUnit. Frameworks oder Third-Party-Code wird nicht benötigt.

Domain Driven Aggregate Design

Mittwoch, 25.09.2019 - Matthias Noback

In this workshop you'll go back to the basics of object-oriented programming and learn to apply core principles of Domain-Driven Design to your domain objects: aggregates, consisting of entities and value objects.

You'll learn how to progress from domain knowledge to a functioning domain model, and use unit testing along the way to describe the expected behavior of your objects.

The program:

  • Object-orientation, distilled
  • Mini-event storming: the warehousing domain
  • Modelling session: determine types and behavior
  • Implementing an entity and value objects
  • Aggregate design rules
  • Working with domain events and eventual consistency

CQRS und Event Sourcing - concepts, architecture and implementation

Mittwoch, 25.09.2019 - Marco Pivetta

CQRS and Event Sourcing are challenging if approached for the first time, and especially if done from scratch. This tutorial day will lead give you a basic understanding of what CQRS and ES are, including their complexities, advantages and pitfalls.

We will help you modelling, designing and implementing an application relying on these architectural patterns, guiding you through:

  • Domain analysis
  • Involved architectural components
  • Data flow
  • Synchronous/Asynchronous dispatching
  • Implementing domain logic with aggregates
  • Projections
  • Scaling
  • Testing

Schnittstellen-Testing in einer Microservice-Architektur

Mittwoch, 25.09.2019 - Frank Stelzer - ausverkauft

Die Definition von Schnittstellen und deren Einhaltung ist essentiell in einer Microservice-Architektur. Applikationen können eigene Schnittstellen zur Verfügung stellen und Schnittstellen von anderen Applikationen benutzen. Bei einem kleineren Projekt mag das noch überschaubar sein, aber wie macht man das in einem Projekt mit vielen Applikationen? Wie stellt man auch langfristig die Funktionalität der Schnittstellen sicher?

Das normale Test-Setup, wie man es von normalen Symfony-Applikationen kennt, reicht dafür nicht mehr aus. Hier kommt das Thema Contract Testing ins Spiel. Mit den sogenannten Contracts schließen Applikationen untereinander Verträge ab und durch entsprechende Tools kann man erkennen, wann diese Verträge gebrochen werden.