> On Jul 12, 2021, at 4:28 PM, Lynn <firstname.lastname@example.org> wrote:
> On Mon, Jul 12, 2021 at 10:20 PM Mike Schinkel <email@example.com <mailto:firstname.lastname@example.org>> wrote:
> It seems you have just illustrated why in reality we really do not need type casting/assertions in PHP given its current features, because we already have what we need.
> That's not an argument I agree with, as it would invalidate the need for short closures, null coalesce, constructor property promotion, etc.
> Continuing on the previous example:
> $service = $container->get(SomeService::class);
> assert($service instanceof SomeService);
> // could be replaced with
In your hypothetical view here, what happens when the $container does not have SomeService to provide? Does it throw an Exception?
> In your hypothetical view here, what happens when the $container does not
> have SomeService to provide? Does it throw an Exception?
Up to the developer that implements it. If the signature would be
`get(?string $id): T;` then I would assume an error should be thrown by
PHP, or an Exception by the method, or handled by the developer to always
return `T`. `?SomeException` as `T` could let the developer not throw an
exception if needed and return `null` instead.