Кейс: запретить создание экземпляра класса везде, кроме определённого сервиса. Не очень качественное, но решение:

`// src/Domain/Entity/User.php namespace AppDomainEntity;

abstract class User { /** @internal Только EntityService может создавать объекты */ final private function __construct( private int $id, private string $email ) {} }

final class EntityService { public function createUser(int $id, string $email): User { // используем «закрытый» конструктор return new class($id, $email) extends User {}; } }`