REST API with Symfony5 and PHP8 using Domain Driven Design

How to use recent versions of Symfony and PHP and creating a api backend with following DDD

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.

What you’ll learn

  • RestAPI implementation with best practices with idempotent requests and relevant http methods.
  • Domain Driven Design elements with encapsulating all domain logic inside higher level while being flexible in low level implementations inside infrastructure layer..
  • Using Doctrine as ORM without coupling tightly..
  • PHP8 and latest language features.
  • Symfony 5 and core components.

Course Content

  • Introduction –> 5 lectures • 19min.
  • Preparing development environment –> 2 lectures • 16min.
  • Domain Layer and Doctrine ORM –> 3 lectures • 27min.
  • Security and JWT –> 3 lectures • 19min.
  • Application and Infrastructure Layer –> 6 lectures • 1hr 2min.
  • More Domain Logic –> 4 lectures • 16min.
  • Unit Testing with PHPUnit and Prophecy –> 2 lectures • 14min.
  • Deployment and version control –> 4 lectures • 12min.

REST API with Symfony5 and PHP8 using Domain Driven Design

Requirements

  • Basic knowledge with PHP would be good so we can cover a lot with Symfony and best practices of REST.

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.