Несколько раз назад я решил изучить PHP и фреймворк Symfony, так что я новичок в этом языке и инструменте. Знаю все базовые принципы ООП, синтаксис PHP и еще много разных интересных вещей. Когда я начал читать документы Symfony о Profiler-> Data Collectors, вот URL: https://symfony.com/doc/current/service_container/tags.html. После нескольких минут чтения я встречаю такой код:
// src/Kernel.php
class Kernel extends Kernel
{
// ...
protected function build(ContainerBuilder $container)
{
$container->registerForAutoconfiguration(CustomInterface::class)
->addTag('app.custom_tag')
;
}
}
Насколько я знаю, наследование запрещает подобное расширение. Поэтому, когда я пытался написать этот код в PhpStorm, он выдает следующую ошибку: «Класс должен расширять сам dby». Как один класс может расшириться самостоятельно? А зачем мне такая возможность? Или это просто ошибка в документации?
Это было вторым тем, о чем я думал, вы подтвердили мою догадку. Спасибо тебе за это!






Я думаю, это просто ошибка, может он хочет так написать
use Symfony\Component\HttpKernel\Kernel as BaseKernel;
class Kernel extends BaseKernel
{
//....
}
Похоже на ошибку в документации, в самом коде ядро расширяет baseKernel (
class Kernel extends BaseKernel), поскольку, как вы упомянули, невозможно расширить себя