
Been a developer since 2001 sometimes for traditional corporate companies and sometimes small startups made their MVP and defined initial stack to provide their users/customers their product. eBay, Rocket Internet, HelloFresh, TicketMaster are some of them. In this course we re going to focus how this companies designed their Rest API to provide backend to their web and mobile apps. We are going to focus Symfony5 and PHP8 and follow the best practices.
We are going to use API Football as our API provider and here is the documentation https://www.api-football.com/documentation
Creating the Dockerfile based on a Debian linux image with necessary packages and libraries
We will first focus the theory of DDD and understand the essentials.
There are many examples to grasp the theory. Those are mostly written by Golang.
Then going to try to create a base for a scalable backend with using PHP. 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.