Readonly class %s cannot extend non-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

class Foo
{
}

readonly class Bar extends Foo
{
}

?>

Literal Examples

  • Readonly class Foo cannot extend non-readonly class Bar

Solutions

  • Make both classes readonly.

  • Make both classes non-readonly.

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