<?php
class Test
{
public readonly string $title;
public function init(): void
{
$this->title = 'some';
}
}
$t = new Test();
$t->init();
var_dump($t->title);
Теперь вместо того, чтобы указывать тип mixed для аргументов в методах, можно просто перечислять необходимые типы через амперсанд.
Тоже нет. Это означает, что в PHP 8.2 можно использовать и конъюнкцию и дизъюнкцию одновременно. Раньше можно было использовать либо одно (И), либо другое (ИЛИ). Более того, любая подобная форма так же подвержена правилам Барабары Лисков:
abstract class ParentClass
{
abstract public function test(): (A&B)|null;
}
class ChildClass extends ParentClass
{
public function test(): A&B {}
}
Это изменение единогласно приняла вся команда разработчиков PHP, так как в ядре PHP есть методы, классы и функции, которые возвращают false или true.
Не совсем. Вначале речь в обсуждении (если не путаю) шла о добавлении true, т.к. уже был отдельно false (который использовался в stdlib часто из-за СИшного легаси апи). Для того, чтобы просто привести систему типов к единообразию (а не для каких-то практических целей).
А выделение подобных типов в standalone было сделано для того, чтобы их можно было сужать по LSP:
// parent
public function request(): Response|false;
// child
public function request(): false;
И вроде как даже в отдельном обсуждении было.
Теперь можно передавать в методы iterator_() тип \Traversables
И раньше можно было. А сейчас можно iterable (т.е. входящие аргументы \Traversable заменили на array|\Traversable).
Да и проверять на тип раньше тоже не обязательно было, можно было просто count([...$iterable]) писать вместо count + iterable_count для разных типов. Просто это работало долго.
Ну я смотрел код Битрикс24, там код по-ощущениям вообще ничем не отличается. Такой же трешак. Так что тот факт что я называю его просто "Битриксом" — роли не играет особо.
Да и не думаю, что для других тоже будет какая-то разница.
Допустим, это довольно популярный и логичный кейс для MVP. Но ведь вы говорите:
Для создания хорошего продукта нужны хорошие специалисты. При их отсутствии и хороший продукт можно испортить.
Однако есть проблема, что любой хороший специалист, когда слышит слово "битрикс" — сразу же отказывается, это прям константа в современном мире. И не важно какие условия или деньги ему предлагают (ну в рамках разумного, конечно. Т.к. в полтора-два раза выше рынка я бы подумал уже). Как у вас получилось так завлечь людей на подобное?
Есть подозрение, что эта сделка их погубила. После того, что там случилось — вообще перестал открывать почту и заходить на Яндекс, т.к. просто не смог найти где это делается и как.
И только сейчас из этой новости узнал (вообще я лукавлю, узнал позавчера, но всё равно...) о том, что оказывается есть ya.ru, где всё работает.
P.S. Интересно посмотреть на статистику. Как сильно она провалилась у yandex.ru, после начала этих "редиректов". Вангую, что процентов на ~70% стало меньше народу.
Так оно с win11 полностью слизано) Тот же "контрол центр" на последнем скрине вообще полностью повторяет вообще всё, вплоть до формы ползунка громкости (включая точку посередине). Ну наверное кроме "шестерёнки", она снизу, а не сверху.
Каждый yield — это точка останова приложения. Т.е. этакий Command в CQS. А в сагах он лишь позволяет достигнув какой-то определённой точки иметь возможность откатить все изменения назад, воспроизведя команды в обратном порядке (с их компенcацией):
PHP и так из коробки (начиная с 7.4+) умеет в WinForms и так же можно и список дисков получить и реестр прочитать (последнее сложнее, т.к. АПИ у него довольно помоечное).
Но курс называется "PHP. Профессиональная веб-разработка".
Основная его цель — научить нулевиков решать типовые задачи веб-разработки с помощью PHP.
Так вы сами же и противоречите себе. Переименуйте в "PHP: Основы для джунов". Студент, который не знает таких элементарных вещей — не может являться профессионалом. Любителем максимум.
P.S. А, дочитал до момента где описывается React c почти аналогичной реализацией. Зря получается пример набрасывал: "Коммент пиши — статью не читай", ага.
Тогда я не понял почему в этом тезисе "нет" написано? Что стандартными средствами языка подобное невозможно.
А по индексу Tiobe он в 2022 на 2 позиции вверх скакнул
Душнила mode on =)
Нет, писать в них значения (один раз) и читать их можно было где угодно https://onlinephp.io/c/7a36c
Тоже нет. Это означает, что в PHP 8.2 можно использовать и конъюнкцию и дизъюнкцию одновременно. Раньше можно было использовать либо одно (И), либо другое (ИЛИ). Более того, любая подобная форма так же подвержена правилам Барабары Лисков:
Не совсем. Вначале речь в обсуждении (если не путаю) шла о добавлении
true
, т.к. уже был отдельноfalse
(который использовался в stdlib часто из-за СИшного легаси апи). Для того, чтобы просто привести систему типов к единообразию (а не для каких-то практических целей).А выделение подобных типов в standalone было сделано для того, чтобы их можно было сужать по LSP:
И вроде как даже в отдельном обсуждении было.
И раньше можно было. А сейчас можно
iterable
(т.е. входящие аргументы\Traversable
заменили наarray|\Traversable
).Да и проверять на тип раньше тоже не обязательно было, можно было просто
count([...$iterable])
писать вместоcount
+iterable_count
для разных типов. Просто это работало долго.А, ну если можно "поразвлекаться" со всяким вокруг, то да. Понял, принял. Спасибо.
Ну я смотрел код Битрикс24, там код по-ощущениям вообще ничем не отличается. Такой же трешак. Так что тот факт что я называю его просто "Битриксом" — роли не играет особо.
Да и не думаю, что для других тоже будет какая-то разница.
Допустим, это довольно популярный и логичный кейс для MVP. Но ведь вы говорите:
Однако есть проблема, что любой хороший специалист, когда слышит слово "битрикс" — сразу же отказывается, это прям константа в современном мире. И не важно какие условия или деньги ему предлагают (ну в рамках разумного, конечно. Т.к. в полтора-два раза выше рынка я бы подумал уже). Как у вас получилось так завлечь людей на подобное?
Хм… И в чём тогда смысл использования Битрикса, если для его использования и поддержки требуется его переписать с нуля?
Есть подозрение, что эта сделка их погубила. После того, что там случилось — вообще перестал открывать почту и заходить на Яндекс, т.к. просто не смог найти где это делается и как.
И только сейчас из этой новости узнал (вообще я лукавлю, узнал позавчера, но всё равно...) о том, что оказывается есть ya.ru, где всё работает.
P.S. Интересно посмотреть на статистику. Как сильно она провалилась у yandex.ru, после начала этих "редиректов". Вангую, что процентов на ~70% стало меньше народу.
Так оно с win11 полностью слизано) Тот же "контрол центр" на последнем скрине вообще полностью повторяет вообще всё, вплоть до формы ползунка громкости (включая точку посередине). Ну наверное кроме "шестерёнки", она снизу, а не сверху.
Каждый yield — это точка останова приложения. Т.е. этакий Command в CQS. А в сагах он лишь позволяет достигнув какой-то определённой точки иметь возможность откатить все изменения назад, воспроизведя команды в обратном порядке (с их компенcацией):
В запросах оно имеет смысл лишь когда есть задача отменить запрос в случае ошибки и вернуть всё взад.
Ну, допустим, с помощью
file_get_contents
тоже можно отправлять POST запросы. Просто оставлю ссылку на документацию тут: https://www.php.net/manual/ru/function.stream-context-create.php{{ $var ? $var : $var2 }}
и{{ $loop->last ? ', ', '' }}
соответсвенноКогда пакет появлялся только — лицензия была проприетарной. И условно-платной (по договорённости) для коммерческого использования.
Если я ничего не перепутал, конечно.
Ну вот вы не говорили, а снести надо бы...)
PHP и так из коробки (начиная с 7.4+) умеет в WinForms и так же можно и список дисков получить и реестр прочитать (последнее сложнее, т.к. АПИ у него довольно помоечное).
Так вы сами же и противоречите себе. Переименуйте в "PHP: Основы для джунов". Студент, который не знает таких элементарных вещей — не может являться профессионалом. Любителем максимум.
Включение неблокирующего режима доступно для любых стримов, не обязательно сокетов. Можно и через fopen:
Как минимум Doctrine и Eloquent. У них под капотом doctrine/dbal, которому вообще пофигу какой драйвер стоит. Да хоть OCI или ещё что.
del
Давай я чуток подушню тогда)))
Чтобы именно "отложить" задачу — могу назвать как минимум 3 сходу:
Ну как сказать, вот набросал на коленке по-быстрому: https://github.com/SerafimArts/simple-interval-example
P.S. А, дочитал до момента где описывается React c почти аналогичной реализацией. Зря получается пример набрасывал: "Коммент пиши — статью не читай", ага.
Тогда я не понял почему в этом тезисе "нет" написано? Что стандартными средствами языка подобное невозможно.