Пых – Telegram
Пых
8.28K subscribers
260 photos
14 videos
6 files
566 links
Блог Валентина Удальцова о разработке на PHP.

Хобот @phpyhobot
https://youtube.com/@phpyh
https://vkvideo.ru/@phpyh
https://news.1rj.ru/str/isPHPdying

Статистика: https://news.1rj.ru/str/INOTAROBOT?start=st1219340804

Для связи используйте личные сообщения канала.
Download Telegram
Сколько, по вашему мнению, я, Валентин, стою как PHP-разработчик и тимлид в рублях в месяц?
Anonymous Poll
15%
200к
8%
250к
16%
300к
17%
350к
15%
400к
8%
450к
21%
БОЛЬШЕ!!!
Forwarded from PHP Russia Channel
ID-баттл: UUID vs автоинкремент обсудим с Валентином Удальцовым

📋 https://bx.vc/ek7oa2

Почти восемь лет, занимаясь разработкой веб-приложений, Валентин использовал для идентификации исключительно автоинкременты. И только 3,5 года назад он попробовал UUID в одном пет-проекте. С тех пор он и его команда в Happy Inc. почти всегда выбирают UUID для идентификации чего бы то ни было. Они научились коррелировать сущности разных модулей по идентификатору, пользоваться преимуществами разных типов UUID, одними из первых внедрили UUID v6.

Валентин обобщит опыт его команды и разложит по полочкам все “за” и “против” использования UUID и автоинкрементов в PHP-приложении. Обсудим актуальные способы генерации и хранения идентификаторов, изучим бенчмарки для разных сценариев и баз данных и подведём новую черту с пометкой "2022" под этим старым добрым холиваром.

Встречаемся 24 и 25 ноября на PHP Russia 2022, которая пройдет в рамках HighLoad++ 2022 🖐

Программа конференции и билеты здесь - https://bx.vc/ca1xqj
👍43🔥16
Функция json_encode чистая?
Anonymous Quiz
51%
Да
49%
Нет
🤯26👍12🔥10👎8🤔4
Варварский генератор

Недавно с коллегами обсудили, что, строго говоря, генератор не соблюдает принцип подстановки Барбары Лисков. Он кидает исключение при попытке перемотки после начала обхода и тем самым нарушает контракт Iterable, где такое поведение не предусмотрено.

Понятно, почему конструктивно так сделали. Тем не менее передача генератора в функцию, которая принимает Traversable или iterable, приводит к WTF казусу, если она вполне законно пытается обойти аргумент больше одного раза.

Если очень хочется, чтобы инстанс генератора отрабатывал многократно, и при этом вы уверены, что это не приведёт к ненужным побочным эффектам, можно обернуть функцию, порождающую генератор, в RewindableGenerator:

/**
* @template TKey
* @template TValue
* @implements IteratorAggregate<TKey, TValue>
*/
final class RewindableGenerator implements IteratorAggregate
{
/**
* @param callable(): Generator<TKey, TValue> $generatorFunction
*/
public function __construct(private $generatorFunction) {}

public function getIterator(): Traversable
{
return ($this->generatorFunction)();
}
}

Вот как это будет работать: https://3v4l.org/46Evq.

Пишите в комментариях, где ещё PHP нарушает LSP.
👍25🔥6🤔5👎1
Релиз PHP 8.2 откладывается на 2 недели до 8 декабря из-за найденных в последний момент критических багов. Подробности: https://externals.io/message/118991

— Nov 24: PHP 8.2.0RC7
— Dec 8: PHP 8.2.0
— Dec 15: PHP 8.2.1RC1
— Jan 5: PHP 8.2.1 (in sync with 8.0/8.1)
👍32🤔4
Сегодня PHP-линч, к сожалению, отменяется. Если буду успевать, встретимся на неделе. Если нет, то в следующую среду. Хорошего вечера!
👍31🤔4
Что вернёт dirname("php")?
Anonymous Quiz
43%
""
29%
"."
12%
"/"
16%
DIRECTORY_SEPARATOR
👍20🔥10👎5
PHP Russia 2022: ID-баттл: UUID vs автоинкремент

Пыхари, уже через полчаса я выступлю на PHP Russia, жду не дождусь своей очереди!

На сессии в частности расскажу, что существует 8 версий UUID, а не 5, и среди них есть куда более интересные и эффективные!

Всех, кто сегодня на площадке или оплатил онлайн-участие, приглашаю в зал P7. Для остальных скину доклад в Пых как только он будет доступен (организаторы говорят, что уже через пару недель нарежут 🥳).

Так или иначе, до встречи!

#HighLoadMoscow2022
🔥105👍25👎4👏3
Мини-дайджест!

Зима начинается с крупных релизов, и я не могу о них молчать. Перечисляю ниже обновления проектов, которые сам использую, а вы дополните в комментариях, если вышло ещё что-то интересное.

Psalm 5

• intersection types,
• sealed array shapes,
• properties-of,
• variable templates,
@psalm-check-type,
• улучшение производительности и другие фичи, подробнее в статье их блога: https://psalm.dev/articles/psalm-5.

Я уже попробовал в выходные, пока релиз сыроват. На нашем рабочем проекте выкинул несколько странных ошибок, но они уже обсуждаются на гитхабе, так что жду фиксов. Всё равно очень круто, что эта версия вышла и что работа над инструментом продолжается!

Symfony 6.2

• Свои Lazy-Loading Proxies,
• улучшенная поддержка Emoji 🎉,
• Clock Component,
#[Assert\When],
• UUID v7 and v8 в symfony/uid (наверное, мой доклад посмотрели 😅),
• поддержка автокомплита для Zsh,
• наконец-то ручной логин/логаут из коробки (правда, в 2022 это уже не особо актуально),
• и ещё куча всего, изучайте https://symfony.com/blog/symfony-6-2-curated-new-features.

Rector 0.15

Очередная версия с несколькими новыми ректорами и наконец-то сайт getrector.org с документацией!
👍37🔥22👎1
Пых
Мини-дайджест! Зима начинается с крупных релизов, и я не могу о них молчать. Перечисляю ниже обновления проектов, которые сам использую, а вы дополните в комментариях, если вышло ещё что-то интересное. Psalm 5 • intersection types, • sealed array shapes…
What's up, PHP? #1

Скопилось приличное количество новостей и релизов, очень хочется их обсудить. Поэтому сегодня вместо линча в 19:00 мы поговорим про Psalm 5, Symfony 6.2 и PSR-20!

Поскольку рубрика "PHP Дайджест Live" не может продолжаться без участия Ромы, я запускаю альтернативную: "What's up, PHP?" Попробуем это название. Если есть идеи, как можно смачно русифицировать, пишите в комментариях.

https://youtu.be/X2XjaF4PJvk
👍40👏9🔥7
🎉 С днём рождения, samdark! 🎁

Сегодня день рождения у Александра Макарова. Меня в Саше восхищают его предприимчивость, энтузиазм и успешность: он и лидер команды Yii, и организатор PHP Russia, и член рабочей группы PSR-12, и контрибьютор кучи проектов, и автор блога и даже книги. Я обнаружил одну удивительную закономерность: если где-то в мире проходит какой-то митап (не важно, оффлайн или онлайн), то с вероятностью 95% Саша принимает в нём участие.

Саш, с днём рождения! Спасибо тебе за гигантский вклад в PHP!

Кстати, подписывайтесь на новый Сашин блог в телеге: @samdark_blog.
🎉263👍36🔥12👎6🤔3
Вместе встречаем PHP 8.2!

Ни года без релизного стрима!

В пятницу (9 декабря) в 19:00 Александр Макаров, Владлен Гилязетдинов и я, Валентин Удальцов, соберёмся на канале PHP Point, чтобы обсудить новый PHP. Поговорим про фичи, успехи PHP Foundation и подведём итоги уходящего года в сообществе.

Подключайтесь!

https://youtu.be/cXdJxa2gxgo
👍65🎉14🔥41🤔1
🔴 Начинаем стрим по PHP 8.2!

Подключайтесь и встречайте новый PHP вместе с нами!

https://youtu.be/cXdJxa2gxgo

Картинка из поста в светлом и тёмном вариантах!
🔥24👍5
Пых
🔴 Начинаем стрим по PHP 8.2! Подключайтесь и встречайте новый PHP вместе с нами! https://youtu.be/cXdJxa2gxgo Картинка из поста в светлом и тёмном вариантах!
Обещанный опрос по итогам 2022 в русскоязычном PHP-сообществе!

При желании в конце можно оставить почту — волей рандома подарим кому-нибудь PHP-слона и классный мерч. Итоги опроса, в том числе подборки лучших статей, докладов и библиотек, появятся в начале года на сайте phpcommunity.ru.

https://forms.gle/LSbuuTezfqboonRV9
👍17🔥2
🎸 Initial Pelican — One Wrong Step

Мы с ребятами летом записали дебютный альбом нашей группы Initial Pelican. Процесс миксинга и мастеринга затянулся, но уже готов первый трек, One Wrong Step! Приглашаю послушать и посмотреть видео со студии.

https://youtu.be/FFMJxx4f7ns
👍33🔥24👎6
🤯67👍34🔥13🤩2