On Wed, Mar 29, 2023, at 4:28 PM, Mark Baker wrote:

> Another benefit of this approach would be to allow the inclusion of 
> multiple enums, in the same way that we can include multiple traits.
>
>
> enum HttpErrors {
>
>      case HTTP_STATUS_400;
>
>      case HTTP_STATUS_401;
>
>       …
>
> }
>
> enum DatabaseErrors {
>
>      case RECORD_NOT_FOUND;
>      case DATABASE_NOT_AVAILABLE;
>
>       …
>
> }
>
>
>
> enum ApiErrors {
>
>      use HttpErrors, DatabaseErrors;
>
>
>
>      case JsonParserError;
>
>      case GraphQLParserError;
>
> }


All that said, we could get the same functionality with fewer questions if we 
just finally got around to introducing type definitions.

type ApiError = DatabaseError|HttpError;

function handleErrors(ApiError $error) {...}

That would obviate the need for a lot of workarounds.

--Larry Garfield

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php

Reply via email to