<?php
abstract class Entity {}
class FooEntity extends Entity {}
abstract class Repository
{
abstract public function getDetail(): Entity;
}
class FooRepository extends Repository
{
public function getDetail(): FooEntity
{
return new FooEntity;
}
}
$obj = new FooRepository();
$obj->getDetail();
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Fatal error: Declaration of FooRepository::getDetail(): FooEntity must be compatible with Repository::getDetail(): Entity in /in/innXW on line 18
Process exited with code 255.