Обновить
190
0.1
Альберт Степанцев@AlexLeonov

Программист. CTO. Архитектор. Преподаватель.

Отправить сообщение
<сарказм>
Статья неполна без похорон PHP. Это же хороший тон уже примерно лет 15 — его хоронить. Требую немедленно добавить PHP в статью!
</сарказм>
осталось устранить 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.

Оба ответа плохие. Это плохой код и ужасная возможность, которой никогда не стоит пользоваться.
>> в мире интерпретируемых языков
Ну тогда Java — тоже интерпретируемый язык. Тоже компилируется в байт-код и тоже исполняется на виртуальной машине.
С интересом наблюдаю, как 20 лет хоронят PHP. Ну да ничего. Ruby пережили, дай бог, и очередной golang переживём.

И пионеров, путающих асинхронность с поддержкой потоков на уровне языка — тем более переживём. Не первый раз.

Здоровья вам и долгих лет!

P.S. А самого Стогова слабо на подкаст позвать? И в глаза ему сказать, что он фигню делает?
>> Решение: строить свои сети, например, в крупных городах с большой абонентской базой
У вас очень наивное представление о российском телеком-рынке. Кто же их туда пустит, свои сети строить?
Я токарь, но я не хочу знать, зачем нужна деталь, которую я точу. Отстаньте от меня со своими чертежами, допусками, процентом брака — я свободный художник! (с)
Контролем типов, как и указано в мануале.

Типизация в PHP как была динамической и слабой, так и осталась. И нет никаких предпосылок к изменению этого положения.
Нет. Вы очень глубоко ошибаетесь. «Статическая» — это на этапе компиляции. В PHP же любой контроль типов, даже контроль типов свойств классов и объектов — рантаймовый.
type-hints
прекрасный термин, и никого не обманывает
В PHP нет ни строгой, ни статической типизации. Нет и не будет.
Тот, кому первому пришла в голову идея назвать рантаймовый контроль типов «типизацией» — будет вечно гореть в аду за обман джуниоров.
от обзора self-hosted систем в сравнении с Zoom'ом и Ко. не отказался бы


Берите наш meethub.ru и пробуйте. Это тот самый BigBlueButton, к которому мы сделали «морду» и сейчас открыли в общий доступ после нескольких лет чисто внутреннего использования.
Поставил плюс за старания. Больше пока ставить не за что.

  • Оформите, как пакет composer, укажите все зависимости, в том числе версии PHP
  • Внимательно читайте PSR и применяйте каждый пункт к своему коду
  • Настройте автоматический прогон тестов через travis и повесьте бейджик
  • Узнайте, что такое «автозагрузка» и почему не нужно писать бесконечные require_once


Я мог бы продолжить этот список и дальше, но на ближайшие месяцы вам хватит.

Информация

В рейтинге
4 394-й
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность