URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 125966
[ Назад ]

Исходное сообщение
"Релиз языка программирования PHP 8.1"

Отправлено opennews , 25-Ноя-21 21:14 
После года разработки представлен релиз языка программирования PHP 8.1. Новая ветка включает серию новых возможностей, а также несколько изменений, нарушающих совместимость...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=56232


Содержание

Сообщения в этом обсуждении
"Релиз языка программирования PHP 8.1"
Отправлено Онаним , 25-Ноя-21 21:14 
Fibers - это вкусно и полезно. Особенно для сложных кооперативных тасков.
Производительность правда ожидаемо хуже линейных тасков на генераторах. Накладные расходы на переключение контекста выше в два раза по факту, что в общем и логично, контекст генератора собственного стека не имеет, в отличие от файбера.

"Релиз языка программирования PHP 8.1"
Отправлено pavlinux , 25-Ноя-21 21:31 
> .. кооперативных тасков... линейных тасков на генераторах.... контекст генератора ... в отличие от файбера.

Шоб с тобой дети на Brainfuck общались!


"Релиз языка программирования PHP 8.1"
Отправлено YetAnotherOnanym , 26-Ноя-21 11:10 
Ачотакова? Мы же не говорим "нити", мы говорим "треды" (ну, иногда "потоки"). Здесь то же самое.

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 26-Ноя-21 11:50 
"тасков", здесь однозначно есть русскоязычный аналог.

"Релиз языка программирования PHP 8.1"
Отправлено YetAnotherOnanym , 26-Ноя-21 12:19 
"Анатолий Борисович, ну зачем вот это вот «ваучер», ведь есть же хорошее русское слово - «приватизационный чек»" (ц)



"Релиз языка программирования PHP 8.1"
Отправлено Онаним , 28-Ноя-21 22:20 
Ну я могу полностью на английский перейти, но половина ж не всё поймёт.

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 26-Ноя-21 18:57 
Всегда говорим потоки.

"Релиз языка программирования PHP 8.1"
Отправлено Онаним , 26-Ноя-21 11:23 
Ну сорян, гуманитариям просьба не беспокоить.

"Релиз языка программирования PHP 8.1"
Отправлено kai3341 , 25-Ноя-21 21:51 
А можешь пояснить за файберы? Это асинхронность завозят?

PS: я не похапешник просто. Расскажу, с чем сталкивался

В python корутины -- это по факту генераторы. Прикольно, что простейшую корутину можно await-нуть вне event loop. Ржачно, что await и yield from -- это на уровне байткода одно и то же, и поэтому нельзя сделать yield from в асинхронном генераторе. Впрочем, устранимо -- нужно только на уровне байткода окончательно развязать корутины с генераторами

В JS асинхронность на промисах -- суть коллбэки. Питонячья асинхронность выглядит чуток костыльной на фоне промисов, но она работает и работает хорошо


"Релиз языка программирования PHP 8.1"
Отправлено Онаним , 26-Ноя-21 11:26 
Ну вот раньше да, кооперативные таски (которые в отдельных местах обозвали coroutine) приходилось лепить на генераторах. Минус - невозможность прервать исполнение в вызываемых процедурах/методах, потому что yield доступен только из процедуры/метода самого генератора.

Разница в том, что в отличие от генератора у Fiber есть свой сохраняемый стек вызовов, и соответственно Fiber можно прервать откуда угодно, ну и чуть более логичные названия служебных методов, не просто там next() от перечисления, а явное resume(), и явный старт через start(), с генераторными тасками надо current() вызывать, выглядит жутко уныло :D

Остальное по сути всё то же самое, всё так же из resume возвращается значение, всё та же инициализация, etc. Ещё можно внутрь Fiber'а Exception бросить, но применения этой шляпе я не придумал пока.


"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 25-Ноя-21 22:18 
попробуйте также swoole/openswoole - более полноценная штука чем просто одни файберы

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 25-Ноя-21 23:34 
Laravel вдохновлялась Рельсами, теперь вот еще Fiber завезли из Ruby'07. Бххх.

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 25-Ноя-21 23:35 
Ruby'17, конечно. Опечатка.

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 26-Ноя-21 01:51 
Winapi, скорее.
там они чуть с первой версии ос появились.

"Релиз языка программирования PHP 8.1"
Отправлено Онаним , 26-Ноя-21 11:40 
Laravel сбоку, а Fiber завезли в кору.

"Релиз языка программирования PHP 8.1"
Отправлено А где же каменты , 25-Ноя-21 21:17 
Никита в контрибьюторах или уже нет?

"Релиз языка программирования PHP 8.1"
Отправлено pavlinux , 25-Ноя-21 21:19 
> Добавлена поддержка перечислений,
>

enum Status {
     case Pending;
     case Active;
     case Archived;
   }


Это рейволюция, ребяты!
Ждём добавление указателей. Хачу на пэхе: *++d[&i++] = (volatile const * void __restrict *)&(s++[**++j]);



"Релиз языка программирования PHP 8.1"
Отправлено Я не очень хорош в придумывании ников , 25-Ноя-21 21:40 
Зачем?

"Релиз языка программирования PHP 8.1"
Отправлено pavlinux , 26-Ноя-21 00:36 
> Зачем?

Чтоб был Тьюринг-полный пздц.


"Релиз языка программирования PHP 8.1"
Отправлено Старший аноним , 25-Ноя-21 22:00 
Не дождешься. ПХП с 1 декабря закрывается.

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 26-Ноя-21 19:15 
Не закрывается, просто по QT кодам будет.

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 26-Ноя-21 19:17 
*QR

"Релиз языка программирования PHP 8.1"
Отправлено Bx , 25-Ноя-21 22:11 
Что ж тебя так корячит? Ну сделали энамы, тебе то что? Хлеб отобрали? Мяса недоложили? Не дают глупость писать?

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 25-Ноя-21 22:26 
> Не дают глупость писать?

Ох, если бы ...


"Релиз языка программирования PHP 8.1"
Отправлено Аноноша , 25-Ноя-21 23:00 
Меня одного мучает вопрос зачем там case внутри enum? Нельзя было просто без case через запятую сделать?

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 26-Ноя-21 06:19 
Ты не один задаешься этим вопросом.

"Релиз языка программирования PHP 8.1"
Отправлено Стас Михайлов , 26-Ноя-21 09:52 
Там switch не хватает ешо. Какой case без swtich?

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 26-Ноя-21 11:58 
> case внутри enum?

Это ответ на вопрос, что курят пыхпыхи...


"Релиз языка программирования PHP 8.1"
Отправлено Онаним , 26-Ноя-21 11:41 
enum хорошо, раньше приходилось const'ами лепить.

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 26-Ноя-21 23:32 
Вы в java указатели сколько десятилетий ждете? Там тоже enum есть, почти 20 лет как.

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 26-Ноя-21 23:35 
в php и раньше было расширение SplEnum

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 25-Ноя-21 21:40 
Так усложнили синтаксис, что java выучить уже легче чем php...

"Релиз языка программирования PHP 8.1"
Отправлено Смузихлёб , 25-Ноя-21 21:55 
Коту делать нечего, так он бубенцы лижет!!! Так и в современном ОйТи обновления ради обновлений.

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 26-Ноя-21 14:30 
Не ИТ это породило, а маркетинг. Нельзя теперь сидеть на строй версии айфона это не модно.
Вот и тут нужно обязательно взять новую версию и "купить" ...

"Релиз языка программирования PHP 8.1"
Отправлено Смузихлёб , 26-Ноя-21 19:50 
> маркетинг

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


"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 25-Ноя-21 23:23 
У java очень простой синтаксис. Особенно у java 8

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 26-Ноя-21 07:43 
Зарплата пхпшника - 50р/час
Зарплата джависта - 50$/час
Выбор очевиден

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 26-Ноя-21 11:59 
Потому что жабист выдаёт в час продукции на $100, а пыхпыхарь - на 100 руб.

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 26-Ноя-21 14:31 
Так изначально было ... PHP был язык для быстрого старта компаний
сейчас кто мог отуда выбрался, а осталбьные там продолжают страдать

Что мешает изучить джаву или пайтон или голанг и двинуть дальше?


"Релиз языка программирования PHP 8.1"
Отправлено Gemorroj , 26-Ноя-21 17:44 
вы живете в мире иллюзий. и путаете "дальше" со "сбоку".
php - рабочая лошадка, и именно он двигает прогресс. а смузихлебы просто кочуют по волнам хайпа порожденного глупостью и маркетологами от ИТ.

"Релиз языка программирования PHP 8.1"
Отправлено Аноноша , 27-Ноя-21 03:13 
> php - рабочая лошадка, и именно он двигает прогресс

Клепание сайтов на wordpress'е - двигать прогресс?


"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 27-Ноя-21 07:46 
В чем прогресс то заключается? И когда юникод завезут в твоём "прогрессивном" языке?

"Релиз языка программирования PHP 8.1"
Отправлено onanim , 27-Ноя-21 10:18 
$ cat lol.php
<?php
if (extension_loaded('mbstring')) {
  echo "я умею в юникод! 👍 \n";
} else {
  echo "unikod ne zavezli :( \n";
  exit(1);
}

$rust = "🤮";
if ($rust == "💩") {
  echo "пых сила, раст могила";
} else {
  echo "раст = $rust \n";
}

$ php lol.php
я умею в юникод! 👍
раст = 🤮


"Релиз языка программирования PHP 8.1"
Отправлено onanim , 27-Ноя-21 10:22 
$ cat lol2.php
<?php
$ютф🤔="☑️";

echo "нуко ща проверим кириллицу и еможы в названиях переменных... \n";
echo $ютф🤔 ;
echo "\n";

$ php lol2.php
нуко ща проверим кириллицу и еможы в названиях переменных...
☑️


"Релиз языка программирования PHP 8.1"
Отправлено Ilya Indigo , 28-Ноя-21 13:19 
Вот это лучше бы он не умел!

"Релиз языка программирования PHP 8.1"
Отправлено Онаним , 28-Ноя-21 22:25 
К сожалению, частично умеет. Не потому, что хотел уметь, а потому, что ему пох на уникод.

Variable names follow the same rules as other labels in PHP. A valid variable name starts with a letter or underscore, followed by any number of letters, numbers, or underscores. As a regular expression, it would be expressed thus: ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$

Т.е. кодпоинты, все символы которых под эту маску попадают - пройдут.


"Релиз языка программирования PHP 8.1"
Отправлено Ilya Indigo , 29-Ноя-21 05:48 
А должно быть вот так ^[a-zA-Z_][a-zA-Z0-9_]*$, причём регистрозависимо!
Для меня, как и большинства, это и так так, но если запустить хипстера в проект то будет беда.

"Релиз языка программирования PHP 8.1"
Отправлено Онаним , 29-Ноя-21 07:58 
Вообще да, я сам давно удивляюсь - на фига 0x80-0xff в этом зоопарке.

"Релиз языка программирования PHP 8.1"
Отправлено морошка ягодка такая , 27-Ноя-21 08:51 
дотнет еще

"Релиз языка программирования PHP 8.1"
Отправлено Skynin , 26-Ноя-21 19:24 
Семантически php сложней java уже с 5.* версии
Просто можно и сейчас писать по старому, как на 3.*, Хотя, варнингов уже будет пачка

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 25-Ноя-21 21:43 
Самый лучший язык из всех!

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 25-Ноя-21 21:48 
"Самый лучший язык из всех для WordPress!"

fixed


"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 26-Ноя-21 12:01 
> для WordPress

Понятно тогда, почему во вротпрессе столько дыр.


"Релиз языка программирования PHP 8.1"
Отправлено Аноноша , 25-Ноя-21 23:01 
Мне жаль тебя расстраивать...

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 26-Ноя-21 14:33 
Что ты говоришь у Пыха есть сообщество говнарей такое же как и JavaScript так что не надо тут ...
Сидят делают типовые сайты для магазинов зоотоваров и пусть радуються.

"Релиз языка программирования PHP 8.1"
Отправлено Анонимный , 26-Ноя-21 17:14 
NodeJS/JS ближе к пользователю и фронту, а на PHP нормальный клиентский опыт не реализовать.

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 27-Ноя-21 01:05 
Избушка-избушка, повернись к лесу передом, а к пользователю задом. (Фронт на бэк, оверхед на фронт у SPA)

"Релиз языка программирования PHP 8.1"
Отправлено Аноноша , 27-Ноя-21 03:14 
Казалось бы причем тут js

"Релиз языка программирования PHP 8.1"
Отправлено Смузихлёб , 25-Ноя-21 21:53 
Что можно написать на пхп 8 чего нельзя было на пхп 4? К чему все эти обновления ради обновлений? Жизнь слишком коротка чтобы отслеживать всё это.

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 25-Ноя-21 22:04 
повышение призводительности в новых версиях имеет смысл всегда

а вот сахарок не особо нужен - все больше какойтой с++ франкенштейн получается


"Релиз языка программирования PHP 8.1"
Отправлено Смузихлёб , 26-Ноя-21 03:13 
> повышение призводительности в новых версиях

Да вот только на практике новые версии ВСЕГДА тормознее старых и требовательнее к железу. Запусти четвертую пыху на современном железе и офигеешь от производительности.


"Релиз языка программирования PHP 8.1"
Отправлено Ilya Indigo , 26-Ноя-21 07:11 
Конечно, я уже молчу что код просто не будет работать, там php-fpm просто нет.

"Релиз языка программирования PHP 8.1"
Отправлено Смузихлёб , 26-Ноя-21 19:27 
> fpm

Не нужно.


"Релиз языка программирования PHP 8.1"
Отправлено anonymous , 26-Ноя-21 11:11 
Вы тут сильно ошибаетесь. То же добавление JIT ускорить работу PHP в разы. И вообще новые мажорные версии (начиная м 5ой) идут на ускорение, а не на замедление.

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 26-Ноя-21 16:50 
а нам тут врут - что не в разы а на 40% в ненужно синтетическом тесте и 5-15% в реальном применении по результатам свежезапиленного для arm64. Но мы конечно верим анониму-ускоряльцу.


"Релиз языка программирования PHP 8.1"
Отправлено Gemorroj , 26-Ноя-21 17:46 
в специфических ситуациях именно в разы.

"Релиз языка программирования PHP 8.1"
Отправлено anonymous , 27-Ноя-21 01:13 
Не нужно не кому верить: проверьте сами. Я вот проверял.

"Релиз языка программирования PHP 8.1"
Отправлено anonymous , 27-Ноя-21 01:35 
*никому

"Релиз языка программирования PHP 8.1"
Отправлено Здрасьте , 26-Ноя-21 16:18 
PHP 8.1 на много голов быстрее, чем PHP4.

"Релиз языка программирования PHP 8.1"
Отправлено Смузихлёб , 26-Ноя-21 19:26 
> PHP 8.1 на много голов быстрее, чем PHP4.

Ты хоть в глаза видел 4 пыху, прежде чем писать подобный высер?


"Релиз языка программирования PHP 8.1"
Отправлено Здрасьте , 26-Ноя-21 20:54 
Я начинал с PHP3.

"Релиз языка программирования PHP 8.1"
Отправлено funny.falcon , 27-Ноя-21 00:30 
В старых php было жутко не эффективное представление array - т.е. всего. В PHP7 это поправили так, что он без JIT сравнялся с фейсбучным HipHopVM (которая была с JIT).

Так что не надо ля-ля про скорость четвёрки. Тормоз был ещё тот.

Просто во времена четвёрки ни кто не заморачивался с фреймворками. Не было подъёма и интерпретации сотен файлов.

Так а что вам мешает так же на восьмёрке писать? Напишите эквивалентный код и замерьте.


"Релиз языка программирования PHP 8.1"
Отправлено Смузихлёб , 27-Ноя-21 14:49 
> Тормоз был ещё тот.

Однако вэб летал на 2-3 пнях, а сейчас вкладки хрома даже на моём i9 тормозят. Конечно, это не беда пыхи, но общая тенденция на лицо.


"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 27-Ноя-21 15:18 
Написали глупость и сами ее опровергли.
Это достойный поступок. :)

"Релиз языка программирования PHP 8.1"
Отправлено Смузихлёб , 28-Ноя-21 19:56 
Мозга не хватает понять заложенного смысла?

"Релиз языка программирования PHP 8.1"
Отправлено Cradle , 27-Ноя-21 14:28 
там одна из первых радикальных оптимизаций еще в 5.2 случилась, когда капитально переработали структуру внутреннего стека, дало махом прирост производительности раза в два как минимум. Давно это было, год 2010-2011 вроде, йа тогда как раз по работе в их core копался, очень веселые баги отлавливал и репортил. И мордокнига уже тогда со своим первым компилятором вылезла, тоже интересно было. Так что не надо на них балон крошить, кое-то там под капотом постоянно оптимируется. Синтаксис другее дело, постоянно их куда-то заносит, но этим у них другие ребята занимаются.

"Релиз языка программирования PHP 8.1"
Отправлено Здрасьте , 26-Ноя-21 16:17 
Дофига всего. Взять те же namespace, как вспомню все эти длинющие названия классов в Zend Framework, так вздрогну.

"Релиз языка программирования PHP 8.1"
Отправлено Смузихлёб , 26-Ноя-21 19:48 
> namespace

Не нужно, как и всё ООП. Для сайтов в 99% случаев хватает процедурного программирования, а всё остальное усложнение ради усложнения.


"Релиз языка программирования PHP 8.1"
Отправлено Онаним , 28-Ноя-21 22:26 
Надо сказать, менее длиннющими они от неймспейсов не стали.

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 29-Ноя-21 07:31 
зато удобно

"Релиз языка программирования PHP 8.1"
Отправлено Онаним , 29-Ноя-21 08:00 
Не спорю, можно подтаскивать несколько разнородных проектов в один в виде библиотек.
Делалось-то конечно не для этого, а для возможности тянуть в рот продукты жизнедеятельности говнокомпозера, не задумываясь о содержимом, но всё равно удобно, да.

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 25-Ноя-21 21:58 
Еще добавили JIT на arm64

"Релиз языка программирования PHP 8.1"
Отправлено Филимон Ностальгический , 25-Ноя-21 22:04 
Когда-то Расмус Лердорф создал Personal Homepage Tools, чтобы дети и пенсионеры с рудиментарными знаниями в программировании могли создавать себе странички. За простоту использования они платили производительностью. Простота уже давно исчезла. За что платят производительностью пользователи PHP ?

Ну, и чтобы два раза не вставать: когда уже его перепишут на Rust ? Доколе мы будем страдать от багов ?


"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 25-Ноя-21 23:26 
В php очень быстрый интерпретатор.

"Релиз языка программирования PHP 8.1"
Отправлено YetAnotherOnanym , 26-Ноя-21 11:44 
Кгм... когда-то (ещё во времена 5-го пыха) пришлось покопаться в коде корп. сайта, доставшегося мне по наследству. Так вот, там на каждое обращение к мускулу устанавливалось соединение, скрипт авторизовывался, выполнял запрос, получал результат и отключался. И так много раз при генерации одной страницы. На каждый пук - полный цикл. Тут никакой "быстрый интерпретатор" не поможет.

"Релиз языка программирования PHP 8.1"
Отправлено Blind Vic , 26-Ноя-21 12:54 
Просвещайся:
https://en.wikipedia.org/wiki/Common_Gateway_Interface
https://httpd.apache.org/docs/2.4/mod/prefork.html

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 26-Ноя-21 12:58 
На жабе тоже можно написать подобное - будет жаба виновата?

"Релиз языка программирования PHP 8.1"
Отправлено YetAnotherOnanym , 26-Ноя-21 13:46 
> На жабе тоже можно написать подобное - будет жаба виновата?

Емнип, жаба никогда не позиционировалась как язык, на котором сможет писать любой пионер и пенсионер. Она создавалась как язык для любых устройств, а не для любых неучей. А вот пых создавался именно как язык, на котором может писать кто угодно (это само по себе не есть что-то плохое), причём, что намного хуже, не включая мозг. И это уже проблема именно языка - не в узком смысле (проблема синтаксиса, который такое позволяет), а языка в целом - его экосистемы и его позиционирования его создателем.


"Релиз языка программирования PHP 8.1"
Отправлено Онаним , 29-Ноя-21 08:03 
Пых на данный момент - очень удобная JIT-обёртка вокруг сишечки и библиотек на оной.
Я не удивлюсь, если он ещё лет через 10 начнёт с жабой тягаться за сегмент.

"Релиз языка программирования PHP 8.1"
Отправлено onanim , 26-Ноя-21 14:17 
а как бы ты это сделал на C++? или другом любимом языке программирования.

"Релиз языка программирования PHP 8.1"
Отправлено YetAnotherOnanym , 26-Ноя-21 15:06 
На плюсах - никак, ибо я не пишу на плюсах. На чём бы я сделал поддержание пула открытых соединений к БД в те времена - хз. Сейчас для своего любимого языка я просто возьму poolboy.



"Релиз языка программирования PHP 8.1"
Отправлено funny.falcon , 27-Ноя-21 00:44 
https://www.php.net/manual/en/function.mysql-pconnect.php

https://www.php.net/manual/en/mysqli.configuration.php#ini.m...


"Релиз языка программирования PHP 8.1"
Отправлено Здрасьте , 26-Ноя-21 16:18 
Почитай про persistent connection в PHP, специалист херов.

"Релиз языка программирования PHP 8.1"
Отправлено YetAnotherOnanym , 26-Ноя-21 18:37 
Прочитай ещё раз пост, на который отвечаешь, комментатор херов.
Неиспользование "persistent connection" - это не ко мне претензия. Использовать "persistent connection в PHP" - этим как раз должен был заниматься тот пыхо-г..нокодер, чьё тормозное поделие оказалось в моём ведении, и с косяками которого мне пришлось тогда разбираться.

"Релиз языка программирования PHP 8.1"
Отправлено onanim , 26-Ноя-21 19:30 
> Прочитай ещё раз пост, на который отвечаешь, комментатор херов.
> Неиспользование "persistent connection" - это не ко мне претензия. Использовать "persistent
> connection в PHP" - этим как раз должен был заниматься тот
> пыхо-г..нокодер, чьё тормозное поделие оказалось в моём ведении, и с косяками
> которого мне пришлось тогда разбираться.

то есть в говнокодинге виноват язык программирования, а не говнокодер.


"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 26-Ноя-21 16:55 
А ты не пробовал, прежде чем бежать все это ломать - выяснить, сколько времени занимает такая установка соединения - а сколько выполнялся запрос к базе?

Обычно подобные оптимизации никак не влияли на видимую пользователем скорость отдачи страницы - вообще. Единственное, от чего они помогали  - отвал базы из-за превышения лимита на число одновременных соединений при каких-то (опять же никак не связанных с этой технологией) проблемах - моргание канала, когда разом приходит пачка где-то подзастрявших запросов, хаброэффекты или наезды ддосеров. (То есть слегка жизнь облегчали но проблема не исчезала и ее все равно приходилось решать другими способами.)

При том что сам тогдашний mysql мало что умел, и написать на нем долго работающий запрос так чтобы сразу же не получить по рукам было непросто.

Это я тебе как человек, видевший сотни подобных сайтов, говорю.


"Релиз языка программирования PHP 8.1"
Отправлено YetAnotherOnanym , 26-Ноя-21 19:14 
А где я написал, что что-то сломал? Я тогда обошёлся паллиативными экстенсивными мерами - добавил мощи и подкрутил настройки.
На будущее, когда этого может оказаться недостаточно, попытался поискать кому можно было бы заказать новый сайт, но все несколько веб-студий, которые тогда были в нашем городе, были способны сделать только такое же г..но, какое у нас уже было.

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 26-Ноя-21 18:11 
Это в теории. А на практике поверх этого быстрого интерпретатора будет висеть Laravel, Yii или какой-то другой популярный фреймворк с кучей абстракций. А с учетом того что на PHP приложение собирается с нуля для каждого запроса и потом полностью уничтожается, то даже с включенным opcache всё это сливает в производительности, например, питоновской Джанге.

"Релиз языка программирования PHP 8.1"
Отправлено Онаним , 28-Ноя-21 22:29 
Угу, вот только оно целиком не упадёт, когда какой-нибудь запрос сделает что-нибудь не так.
На жабе это костылят через ловлю блохоисключений, но это такой костылинг, что лучше бы падало.
Сама прелесть independent per-request handling в том, что оно действительно independent.
Увы, кости в мозге смену парадигмы осилить многим не позволяют, отсюда и вот это всё.

С другой стороны - на пыхе можно и жабоподобные всё-в-одном-комбайны ныне кропать, но оно нужно только там, где реально нужно.


"Релиз языка программирования PHP 8.1"
Отправлено leap42 , 26-Ноя-21 07:46 
> Ну, и чтобы два раза не вставать: когда уже его перепишут на Rust ? Доколе мы будем страдать от багов ?

Кто именно перепишет? Растамэны, которые все вместе пока ничего кроме grep не переписали, или сами разрабы, которые, будучи способными писать подобные проекты на Си, к Rust скорее всего относятся без энтузиазма (это мягко говоря)?


"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 26-Ноя-21 09:34 
С чего бы она исчезла? Ни встроенный шаблонизатор, ни встроенные глобальные функции никуда не делись. Если хочешь, можешь писать код в стиле 2005 года.

> За что платят производительностью пользователи PHP?

Какой производительностью? У PHP есть неплохой JIT и кеш байткода — это всякие Ruby, Javascript и прочие хипстоподелия страдают по сравнению с PHP.


"Релиз языка программирования PHP 8.1"
Отправлено Онаним , 26-Ноя-21 11:49 
Из навесных шаблонизаторов очень хорош Blitz от Alexey Rybak, он идёт как модуль, и прост в доску, хотя конечно нюансов у него полно. Поскольку у PHP появился JIT, подумываю собственно переписать его Blitz на собственно PHP, сохраняя совместимость с шаблонами, по производительности теперь должно выйти не хуже. Всякие монструозные Smarty из 100500 классов на инициализацию тратят больше, чем на вывод шаблона.

"Релиз языка программирования PHP 8.1"
Отправлено Sw00p aka Jerom , 26-Ноя-21 12:02 
в свое время ctpp был хорош, забросили

"Релиз языка программирования PHP 8.1"
Отправлено Филимон Недоумевающий , 26-Ноя-21 13:25 
Пацаны, а вас не смущает, что вы на шаблонизаторе пишете шаблонизатор ?

"Релиз языка программирования PHP 8.1"
Отправлено Sw00p aka Jerom , 26-Ноя-21 13:58 
> Пацаны, а вас не смущает, что вы на шаблонизаторе пишете шаблонизатор ?

есть такое, но свои средства пхп далеки от понятия шаблонизатора. Но указанные как и мной, так и выше шаблонизаторы - написаны в виде модуля пхп (на С), не на самом языке пхп.


"Релиз языка программирования PHP 8.1"
Отправлено Здрасьте , 26-Ноя-21 16:19 
PHP уже лет сто не шаблонизатор.

"Релиз языка программирования PHP 8.1"
Отправлено Skynin , 26-Ноя-21 19:32 
тссс, не раскрывайте Великий Секрет вечным школьникам. пусть думают что
PHP, расшифровывающийся как "PHP: Hypertext Preprocessor", как то написано в первой строчке предисловия к докумнтации.

"Релиз языка программирования PHP 8.1"
Отправлено домен в слонике , 26-Ноя-21 16:19 
Его же Ще ковырял? Так ему некогда с айрисом-то =)

"Релиз языка программирования PHP 8.1"
Отправлено Sw00p aka Jerom , 26-Ноя-21 16:41 
> Его же Ще ковырял? Так ему некогда с айрисом-то =)

:) Ше, тах пхп модуль перестал работать после версии 5.3


"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 26-Ноя-21 12:48 
[комментарий про юникод и пхп]

"Релиз языка программирования PHP 8.1"
Отправлено Онаним , 26-Ноя-21 21:44 
Ничем не лучше комментария про юникод и сишечку.

"Релиз языка программирования PHP 8.1"
Отправлено YetAnotherOnanym , 26-Ноя-21 11:34 
> За простоту использования они платили производительностью

И дырявостью. Сукербергу даже пришлось свой собственный пых написать, настолько плох был тогдашний пых.


"Релиз языка программирования PHP 8.1"
Отправлено Gemorroj , 26-Ноя-21 17:50 
мотивация там была - производительность. в связи с этим появился php 7 с переработанными структурами данных, за сет этого серьезно подняв производительность оригинала. hack, на данный момент, не нужен.

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 27-Ноя-21 11:04 
И традиционно ограниченной совместимостью - "нам ЭТО ненужно - значит, не будет реализовано". Получилось нечто что только сцукенбергу и полезно - за что макаку второй раз премировали, потомучто молодец.

То же самое с их клоном hg. Бесполезное ненужно неработающее вне закрытой сеточки сцукенберга. И даже не собирающееся. Нате жрите.


"Релиз языка программирования PHP 8.1"
Отправлено Skynin , 26-Ноя-21 19:27 
скорость разработки даже с самыми строгими правилами, со всеми фишками на php по прежнему выше чем на Java/C#
а тем более чем на С++/Rust

Поэтому - никогда на Rust не перепищется то что написано и пишется на php.
Программистов понадобится раз в 10 больше. А их, на php - дефицит

Где столько на Rust'е возьмутся?


"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 25-Ноя-21 22:16 
Кстати - кто есче не попробовал - очень рекомендую попробовать екстеншн к пхп -  свул, ( swoole / openswoole ).
Очень классная штука - добавляет корутины, параллелизацию, евент луп и тд и тп.
тье в нод переписывать вообсче больше ничего не надо.  
пилиться китайскими камрадами

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 25-Ноя-21 22:49 
>Свул

Швуле, судя по твоим заигрываниям с нодойжс.


"Релиз языка программирования PHP 8.1"
Отправлено Хирург , 25-Ноя-21 23:52 
я предпочитаю adblock+ и noscript

"Релиз языка программирования PHP 8.1"
Отправлено Онаним , 26-Ноя-21 12:01 
Ну я попробовал, не зашло, . В итоге нарисовал свой кооперативный тасклуп, универсальный для различных вариантов имплементации - генераторы, файберы, просто state-machine routines, который расширенный эвентлуп с кучей сахара, и не требует никаких расширений.

Конкретно не зашла event model, вот эти вот все ->on, который превращают любой мало-мальски сложный код в nesting hell.


"Релиз языка программирования PHP 8.1"
Отправлено Онаним , 26-Ноя-21 21:50 
Более адекватной выглядит линейная модель задач, когда кооперативный таск выполняется линейно, как любой нормальный код, но может в любой момент сказать "я idle", и отдать управление планировщику. Или сказать "управление отдаю, но хочу вызваться на следующем цикле" - контроль за latency.

Потому что все эти event-модели в один поток сталкиваются с одним и тем же: любой тяжёлый код внутри эвента, и ваши эвенты больше за разумное время не обрабатываются. И как раз Fiber на линейную организацию кооперативных задач ложится очень хорошо.

Ожидание же эвентов, возможно более одного эвента, решается возможностью порождать дочерние задачи (промисы), которые что-то делают, например ждут этого самого ->on коллбэка, или поллят, или кофе варят, и дальше отдают исполнение основной задаче, как только что-то изменилось. Банальный WaitOn()/WaitOnAny() для набора промисов.


"Релиз языка программирования PHP 8.1"
Отправлено Михрютка , 26-Ноя-21 00:00 
>>>function foo(int $a, int $b) { /* … */ }

Микола, диви, який смутний смайлик!


"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 26-Ноя-21 00:14 
Уродливый франкенштейн c $

enum Status {
    case Pending;
    case Active;
    case Archived;
}

Зачем тут case?


"Релиз языка программирования PHP 8.1"
Отправлено pavlinux , 26-Ноя-21 00:30 
В ихавом enum могут быть не только enum


enum Status
{
    case DRAFT;
    case PUBLISHED;
    case ARCHIVED;
    
    public function color(): string
    {
        return match($this)
        {
            Status::DRAFT => 'grey',  
            Status::PUBLISHED => 'green',  
            Status::ARCHIVED => 'red',  
        };
    }
}

юзать так:


$status = Status::ARCHIVED;

$status->color(); // 'red'

https://stitcher.io/blog/php-enums



"Релиз языка программирования PHP 8.1"
Отправлено Твайлайт Спаркл , 26-Ноя-21 06:10 
#[allow(dead_code)]
enum Status {
    Draft,
    Published,
    Archived,
}

impl Status {
    #[must_use]
    pub fn color(&self) -> &'static str {
        match self {
            Self::Draft => "grey",
            Self::Published => "green",
            Self::Archived => "red",
        }
    }
}

fn main() {
    let status = Status::Archived;
    println!("{}", status.color());  // 'red'
}


"Релиз языка программирования PHP 8.1"
Отправлено anonymous , 26-Ноя-21 11:17 
А зачем нужны "allow(dead_code)" и "must_use"? Выглядит как какая-то ненужная магия.

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 26-Ноя-21 12:04 
Дак растаманы! же писали! В здравом уме такое! не придумать!

"Релиз языка программирования PHP 8.1"
Отправлено anonymous , 27-Ноя-21 11:34 
Лично меня вполне устраивает объяснение ниже.

"Релиз языка программирования PHP 8.1"
Отправлено Твайлайт Спаркл , 26-Ноя-21 12:28 
> А зачем нужны "allow(dead_code)" и "must_use"? Выглядит как какая-то ненужная магия.

allow(dead_code) действительно не нужен, он заглушает предупреждения, что не все варианты enum'a используются.

А вот must_use довольно крут. Он добавляет предупреждение на такой код:
status.color();
То есть возвращаемое значение должно быть использовано (как минимум присвоено в переменную).
let _ = status.color();


"Релиз языка программирования PHP 8.1"
Отправлено anonymous , 27-Ноя-21 01:27 
Понятно. Makes sense.

"Релиз языка программирования PHP 8.1"
Отправлено Ilya Indigo , 26-Ноя-21 07:19 
abstract class News
{
    public const status =
    [
        'draft' => 'grey',  
        'published' => 'green',  
        'arcived' => 'red',
    ];

    public static function test()
    {
        ...
        self::status['arcived']; // 'red'
        ...  
    }

}

News::status['arcived']; // 'red'

Зачем добавили эти enum-ы с таким синтаксисом вообще не понятно.
Даже от match была польза, а зачем нужны такие enum-ы не представляю.


"Релиз языка программирования PHP 8.1"
Отправлено Онаним , 26-Ноя-21 11:45 
Окей, а теперь расширь это на два признака. И получишь шляпку в два массива.
А теперь расширь на вычисляемое.

Кстати для просто одиночного типозначения метод с match не нужен, есть value(), который можно задать в case.

Так-то нынешний Enum - это по сути сахар вокруг специфичного класса.


"Релиз языка программирования PHP 8.1"
Отправлено Ilya Indigo , 26-Ноя-21 11:55 
Я ни черта не понял из того что Вы написали.
Да и ф-ии value() в php нет.

"Релиз языка программирования PHP 8.1"
Отправлено Здрасьте , 26-Ноя-21 16:40 
Функции нет, есть свойство. Если значения присвоены, их можно получить через ->value

"Релиз языка программирования PHP 8.1"
Отправлено x3who , 26-Ноя-21 07:25 
Это не отменяет вопроса зачем там case. Ведь "DRAFT;" отличается от "public function x(...)" если уж так хочется добавить методы.

"Релиз языка программирования PHP 8.1"
Отправлено Здрасьте , 26-Ноя-21 16:21 
Потому что я могу захотеть назвать значение enum «public».

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 27-Ноя-21 07:00 
До такого разве что растаманы могут додуматься.

"Релиз языка программирования PHP 8.1"
Отправлено x3who , 27-Ноя-21 10:54 
> До такого разве что растаманы могут додуматься.

Вполне законное желание для enum. Допустим у тебя в приложении есть публичные и приватные данные. Тут сам бог велел присобачить к ним (к данным) соотв флажок перечислимого типа. Раст тут ни при чем.


"Релиз языка программирования PHP 8.1"
Отправлено x3who , 27-Ноя-21 10:55 
> Потому что я могу захотеть назвать значение enum «public».

Не "public function x(...)" же.


"Релиз языка программирования PHP 8.1"
Отправлено Какаянахренразница , 26-Ноя-21 07:10 
А чё, 5.6 больше не в моде?

"Релиз языка программирования PHP 8.1"
Отправлено Ilya Indigo , 26-Ноя-21 07:50 
Ну что за новость на коленке?
Тут https://www.php.net/releases/8.1/ru.php даже больше описано.
А сюда https://www.php.net/manual/ru/migration81.php даже и не заглядывали.

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 26-Ноя-21 16:20 
>> https://www.php.net/releases/8.1/ru.php
> Ускорение WordPress на 3.5%

Все, пошел обновляться


"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 26-Ноя-21 08:06 
И зачем все это нужно, реально какой то с++ получился.

"Релиз языка программирования PHP 8.1"
Отправлено Стас Михайлов , 26-Ноя-21 09:55 
Вайтишников пугать. И поделом.

"Релиз языка программирования PHP 8.1"
Отправлено Сергей Борисович Кореневский , 26-Ноя-21 11:11 
Ваш вывод говорит что вы на пыхе сложней калькулятора ни чего не делали.

"Релиз языка программирования PHP 8.1"
Отправлено Онаним , 26-Ноя-21 11:46 
Ну пых так-то изначально сильно плюсы-подобен, поэтому не удивительно.
Перегрузку операторов вот никак, но вроде RFC есть уже.

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 27-Ноя-21 06:58 
> реально какой то с++ получился

Может, веб-программисты от этого поумнеют хоть немного?


"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 27-Ноя-21 07:49 
Если будут писать на пыхе, то точно не поумнеют

"Релиз языка программирования PHP 8.1"
Отправлено Аноним12345 , 26-Ноя-21 10:14 
Ломать - не строить

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 26-Ноя-21 12:31 
И снова ломают совместимость :(

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 27-Ноя-21 06:55 
Это удел современных программистов :( php, Qt, раст...

"Релиз языка программирования PHP 8.1"
Отправлено докерман , 27-Ноя-21 21:53 
а кто заставляет переходить если не надо определенных плюшек?

"Релиз языка программирования PHP 8.1"
Отправлено Анонимный , 28-Ноя-21 03:33 
end of life and is no longer supported

"Релиз языка программирования PHP 8.1"
Отправлено Gemorroj , 28-Ноя-21 10:59 
и правильно делают. дебилы, которые $GLOBALS удаляют (да и вообще используют) должны страдать

"Релиз языка программирования PHP 8.1"
Отправлено Онаним , 28-Ноя-21 22:32 
$GLOBALS надо было ещё в пятёрке выкинуть.
Вот просто взять, и выкинуть. Мучений и нытья было бы гораздо меньше.

"Релиз языка программирования PHP 8.1"
Отправлено Аноним , 26-Ноя-21 13:29 
php - personal home page
emacs - editor macros

Nickto ne zabyt. Nichto ne zabyto.