From Doctrine ORM to MongoDB ODM
With Doctrine ORM, we can store data in a variety of databases. But what if the latest SQL flavour is not enough?
After building a small ORM application, we’ll migrate this data to MongoDB ODM without making significant changes to our application. Along the way you will learn the advantages and pitfalls of the flexible schema, and we’ll take a closer look at how to make complex queries in MongoDB.
Knowing your state machines - Symfony Workflow
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.
This 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.
Symfony Security in Depth
The Symfony Security Component has always been a powerful tool. And with the advent of the new Authenticator system, customizing Symfony Security has become more streamlined and flexible!
In this workshop, we will start out with a recap of the basics of building a modern authentication, and how the Authenticator system ties into standard authentication methods like a simple form login.
In the main part, we will look at how we can utilize the new Authenticators: we will use them to add JWT/OAuth support, and we check out how to use existing libraries to easily add customizable 2FA to your application.
The last part rounds up a collection of best practices that you should not neglect when building your authentication: Topics like CSRF protection, protection from timing attacks, rate limiting against brute force attempts.
Requirements for this workshop: You should bring a working knowledge of how to build generic applications with Symfony. Having configured a standard form login in Symfony before helps, but is not mandatory.
Symfony 5/6: the fast track
This training is from the book "Symfony 5/6: The Fast Track" by Fabien Potencier. In 2 days, it will teach you how to build a Symfony application from A to Z using new practices and new components. For those who are new to Symfony, this training is an opportunity to discover capabilities of Symfony. For more experienced devs, it's an opportunity to know about and to practice the latest features and best practices.
We will build an application with all the infrastructure of modern apps: database, application and HTTP cache server, message bus for background processing, APIs and SPAs, etc. We will start from the basics with the installation of a skeleton application, the creation of a data model and a "backoffice", then we will add screens for users, a security system to partition rights, an API to allow interaction via a SPA. We will enrich the business rules to send notifications, send emails, manage internationalization, resize images, manage a publication workflow, etc. Finally, we will optimize the application for production through HTTP and application caches, through asset management (JS/CSS/images) and secrets management. To secure each step, we will write tests to guarantee non-regressions.
On the menu: Flex, Mailer, Notifier, Workflow, Messenger, API Platform, HttpClient, String, Webpack Encore, etc.
Mastering OOP & Design Patterns
Object Oriented Programming (OOP) goes beyond the design of classes and interfaces. It includes a wide variety of concepts such as objects, entities, value objects, services, design models, SOLID principles, calisthenics, coupling, etc. Mastering OOP often requires several years of experience. This workshop will help you to better understand all these concepts in order to write more maintainable, robust and testable object-oriented code. You will also discover techniques to reduce the complexity of your code and make your classes more specific and therefore simpler. You will also learn how to recognize and exploit the power of design models (factory, adapter, composite, decorator, mediator, strategy, etc.).
API development with API Platform
API Plaftorm has become a very popular framework for building advanced and modern API-driven web projects. This includes: - a super powerful server component based on Symfony to create hypermedia web APIs and GraphQL; - a generator of progressive web applications (ReactJS, Vue.js) and native mobile applications (React Native); - a ReactJS administration interface (ReactJS + admin on standby).
Test Driven Development The Right Way
Have you ever wanted to learn about TDD but never got a chance to learn it properly?
Do you think TDD only slows you down?
You don't know what to do when getting stuck?
Attend this workshop and learn what TDD really is by practice and add this methodology to your developer toolkit
In this workshop, you'll learn about:
- How to develop a complex feature from scratch by applying TDD using PHPUnit
- The anatomy of a clean test: Arrange, Act, & Assert.
- Going faster. Demystify the myth that TDD only slows you down.
- And many other useful tricks...
RESTful Webservices in Symfony
Nowadays RESTful Apis are powering the web and are used in almost every web application. In this workshop you will learn the fundamental principles of REST and how you can implement a RESTful Application using Symfony. We will start with the basics of REST and will cover some more advanced topics like Serialization, Content-Negotiation and Security afterwards. Besides all the theory the attendees can deepen their learnings on every topic while doing the provided coding challenges.
Building modular and interactive applications with Symfony UX
Profiling Symfony & PHP apps
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 profiling practices in your daily development habits.
This workshop will use the Blackfire.io tool to help you identify performance leaks.