This course is going to try to create a base for a scalable backend with using Symfony Framework version 5. We will separate the app to 3 main parts Application, Domain and Infrastructure. And going to try not to stay tightly coupled to the framework itself but still going to use the all features Symfony is providing us.
Application layer will be a transition between the outside world to our Domain and going to isolate everything domain related inside our DDD.
Also will be taking care of authentication with JWT and going to use Symfony Security bundle to maintain the user access definitions to resources.
Will be writing Unit tests and use a framework for mocking/stubbing the test doubles.
In Infrastructure layer we are going to use Doctrine as ORM and try to not to stay tightly coupled to the library but stay as flexible as possible so we can use the same domain logic easily whenever we want with some other library or even with plain SQL queries.
Since we are going to implement a rest api, we are also going to use an api provider to get the data for our game. To access the api provider we will implement some commands with using Symfony Command component.
Specification: REST API with Symfony5 and PHP8 using Domain Driven Design