осталось устранить PHP, везде, в том числе в прокси-сервисе, и написать на C модуль для nginx
чтобы слал реквест в базу в JSON и отдавал от нее же респонс
Логично. Конструктор не был вызван, инициализации свойств не было.
Потому что в аргументах не дефолтные значения свойств, а дефолтные значения аргументов.
Так дело-то не в этом.
Я пишу о том, что всё, что добавляется в последнее время — это не новые возможности, это новые способы сделать тоже самое. К трем альтернативам добавляется еще десять. Зачем?
>> не значит что свойства класса будут объявлены только если вызвать конструктор
Именно это и значит, читайте RFC. Вам будет неявно добавлен вызов parent::__construct()
То, что вы не видите проблем, не значит, что их нет.
Итак, смотрим внимательнее на Сonstructor promotion.
Предположим мы написали нечто вроде:
class A {
public function __construct(public int $x, public int $y) {}
}
Значит ли это, что теперь в любом объекте класса A должны быть свойства $x и $y и они обязаны быть типа int? Причем они обязательно должны быть заданы в конструторе?
Да? Прекрасно!
class B extends A {
public function __construct(public string $z) {}
}
А в объектах класса B будут свойства $x и $y? И какой у них будет тип?
Если да — откуда они взялись? Где они задаются? Как мне их задать в конструкторе? Где проходит их тайп-чек, если я не вызываю A::__construct()? Ах, он теперь неявно вызывается… ну извините, это полная дичь!
Если нет — вы сломали наследование. Вы просто ко всем чертям сломали наследование, на котором держится всё ООП в PHP.
Оба ответа плохие. Это плохой код и ужасная возможность, которой никогда не стоит пользоваться.
>> Решение: строить свои сети, например, в крупных городах с большой абонентской базой
У вас очень наивное представление о российском телеком-рынке. Кто же их туда пустит, свои сети строить?
Я токарь, но я не хочу знать, зачем нужна деталь, которую я точу. Отстаньте от меня со своими чертежами, допусками, процентом брака — я свободный художник! (с)
Нет. Вы очень глубоко ошибаетесь. «Статическая» — это на этапе компиляции. В PHP же любой контроль типов, даже контроль типов свойств классов и объектов — рантаймовый.
В PHP нет ни строгой, ни статической типизации. Нет и не будет.
Тот, кому первому пришла в голову идея назвать рантаймовый контроль типов «типизацией» — будет вечно гореть в аду за обман джуниоров.
от обзора self-hosted систем в сравнении с Zoom'ом и Ко. не отказался бы
Берите наш meethub.ru и пробуйте. Это тот самый BigBlueButton, к которому мы сделали «морду» и сейчас открыли в общий доступ после нескольких лет чисто внутреннего использования.
Статья неполна без похорон PHP. Это же хороший тон уже примерно лет 15 — его хоронить. Требую немедленно добавить PHP в статью!
</сарказм>
чтобы слал реквест в базу в JSON и отдавал от нее же респонс
«Зачем» — понятно. Непонятно — зачем столько криво и неконсистентно!
Потому что в аргументах не дефолтные значения свойств, а дефолтные значения аргументов.
Это адский ад.
Я пишу о том, что всё, что добавляется в последнее время — это не новые возможности, это новые способы сделать тоже самое. К трем альтернативам добавляется еще десять. Зачем?
Именно это и значит, читайте RFC. Вам будет неявно добавлен вызов parent::__construct()
Итак, смотрим внимательнее на Сonstructor promotion.
Предположим мы написали нечто вроде:
Значит ли это, что теперь в любом объекте класса A должны быть свойства $x и $y и они обязаны быть типа int? Причем они обязательно должны быть заданы в конструторе?
Да? Прекрасно!
А в объектах класса B будут свойства $x и $y? И какой у них будет тип?
Если да — откуда они взялись? Где они задаются? Как мне их задать в конструкторе? Где проходит их тайп-чек, если я не вызываю A::__construct()? Ах, он теперь неявно вызывается… ну извините, это полная дичь!
Если нет — вы сломали наследование. Вы просто ко всем чертям сломали наследование, на котором держится всё ООП в PHP.
Оба ответа плохие. Это плохой код и ужасная возможность, которой никогда не стоит пользоваться.
Ну тогда Java — тоже интерпретируемый язык. Тоже компилируется в байт-код и тоже исполняется на виртуальной машине.
И пионеров, путающих асинхронность с поддержкой потоков на уровне языка — тем более переживём. Не первый раз.
Здоровья вам и долгих лет!
P.S. А самого Стогова слабо на подкаст позвать? И в глаза ему сказать, что он фигню делает?
У вас очень наивное представление о российском телеком-рынке. Кто же их туда пустит, свои сети строить?
Типизация в PHP как была динамической и слабой, так и осталась. И нет никаких предпосылок к изменению этого положения.
прекрасный термин, и никого не обманывает
Тот, кому первому пришла в голову идея назвать рантаймовый контроль типов «типизацией» — будет вечно гореть в аду за обман джуниоров.
Берите наш meethub.ru и пробуйте. Это тот самый BigBlueButton, к которому мы сделали «морду» и сейчас открыли в общий доступ после нескольких лет чисто внутреннего использования.
Я мог бы продолжить этот список и дальше, но на ближайшие месяцы вам хватит.