Breaking: Replace constructor DI with inject-methods in AbstractProfileFactory 

Description 

Using constructor dependency injection in abstract classes defines the constructor as API, which should be avoided by using the inject-method approach and allows to implement classes using constructor DI without the requirement to deal and align with parent (abstract) class constructor and passing it down.

AbstractProfileFactory used constructor DI and therefore violated the above described design pattern.

Constructor DI arguments are now replaced with inject-methods in the abstract \FGTCLB\AcademicPersons\Profile\AbstractProfileFactory.

See Autowiring other Methods (e.g. Setters and Public Typed Properties)

Impact 

AbstractProfileFactory used constructor DI and therefore violated the above described design pattern.

Constructor DI arguments are now replaced with inject-methods in the abstract \FGTCLB\AcademicPersons\Profile\AbstractProfileFactory.

Affected Installations 

Installations using the abstract and defining own constructor DI arguments.

Migration 

Implementation using the abstract and defining own constructor DI arguments needs to remove the removed parent arguments and avoid calling the parent constructor.

Additionally, the \Symfony\Contracts\Service\Attribute\Required attribute is used for the inject methods to tell symfony DI that these inject methods needs to be called and are mandatory - beside having a visually glue for developers.