kphp icon indicating copy to clipboard operation
kphp copied to clipboard

Нельзя в наследнике расширить область видимости переопределяемого метода

Open abramchikd opened this issue 2 years ago • 0 comments

Пример: в родителе метод protected, в наследнике public:

abstract class AbstractFindActionEventListener implements EventListenerInterface
{
    public function handle(EventInterface $event): void
    {
        $findActionEvent = instance_cast($event, FindActionEvent::class);
        if ($findActionEvent === null) {
            return;
        }

        $this->handleFindAction($findActionEvent);
    }

    abstract protected function handleFindAction(FindActionEvent $event): void;
}

class FindActionEventListener extends \Kaa\HttpKernel\EventListener\AbstractFindActionEventListener
{
    public function handleFindAction(\Kaa\HttpKernel\Event\FindActionEvent $event): void
    {
       return;
    }
}

Ошибка:

Compilation error at stage: Load Composer packages, gen by sort-and-inherit-classes.cpp:46
  unknown file:-1
Can not change access type for method: Kaa\Generated\FindActionEventListener::handleFindAction

abramchikd avatar Feb 26 '23 00:02 abramchikd