Non-readonly class %s cannot extend readonly class %s

Description

A readonly class cannot extends a non-readonly class; a non-readonly class cannot extends a readonly class. Both classes must be readonly or non-readonly to be able to extends one another. This is due to readonly being applied to all available properties, which is ambiguous with class hierarchies.

Example

<?php

readonly class Foo
{
}

class Bar extends Foo
{
}

?>

Literal Examples

  • Non-readonly class Foo cannot extend readonly class Bar

Solutions

  • Make both classes readonly.

  • Make both classes non-readonly.

  • Make both classes non-readonly and apply readonly per properties.