Size: a a a

2020 May 27
PHP Digest
PHP fwdays Online — 30 и 31 мая

https://fwdays.com/en/event/php-fwdays-2020

Промокод на скидку 15%: PHPDIGEST2020

Разыгрываем 2 билета, победителей определяет бот @VoterBiBot сегодня, 27 мая, в 20:00.
(Счетчик кнопки обновляется с задержкой)
*****
Победители: Sergii Gzh, Maksim Aleshchenko
источник
2020 May 29
PHP Digest
Стартовал PhpStorm 2020.2 EAP

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

В первом билде можно пощупать полную поддержку пул-реквестов GitHub — теперь все действия доступны прямо в IDE. Можно ревьювить, комментировать, мерджить.

Добавили виджет инспекций — он позволяет быстро сконфигурировать, какие ошибки показывать, и пробежаться по всем ошибкам.

И также сильно переработали анализ потока выполнения PHP. Это позволяет добавить новые инспекции и дает возможность исправить много старых багов.

Как и всегда, EAP-версию можно использовать бесплатно.

https://blog.jetbrains.com/phpstorm/2020/05/phpstorm-2020-2-early-access-program-is-now-open/
источник
2020 June 01
PHP Digest
PHP-Дайджест № 181
3 новых и 4 принятых RFC предложения для PHP 8, включая объявление свойств в конструкторе, о блокировке PHP-ML из-за плагиата, почему разработчики ненавидят PHP, порция полезных инструментов и многое другое. #дайджест

https://habr.com/p/504734/
источник
2020 June 03
PHP Digest
Голосования по RFC

Сейчас на стадии голосования находятся три предложения:
• Проверка корректности сигнатур магических методов;
• Оптимизации без кеширования опкодов;
• Использование зарезервированного неймспейса \PHP в ядре.

Голосовать могут, как всегда, только контрибьюторы. Кстати, чтоб получить право голоса, можно контрибьютить в документацию и тесты — для них знания C не требуется.

Тем временем Bejamin Eberlei (автор атрибутов) сделал на сайте https://php-rfc-watch.beberlei.de/ голосование для комьюнити. Силы никакой оно не имеет, но все равно интересно.
источник
2020 June 04
PHP Digest
Разыгрываем билеты на PHP fwdays'20 | Special edition, которая пройдет онлайн 6 июня

https://fwdays.com/en/event/php-fwdays-special-edition

Вторая часть конференции со звездным составом: Jordi Boggiano (Composer), Sebastian Bergmann (PHPUnit), Nikita Popov (PHP Core), Marco Pivetta (aka Ocramius) и другие.

Код на скидку 15%: PHPDIGEST20.

Разыгрываем 2 билета, победителей определяет @VoterBiBot сегодня, 4 июня, в 20:00.
(Счетчик кнопки обновляется с задержкой)
*****
Победители: Игорь Драндин, Cactus
источник
2020 June 08
PHP Digest
25 лет PHP и скидка 50% на PhpStorm

8 июня 1995 года, программист родом из Гренландии Расмус Лердорф публикует в usenet анонс набора CGI-скриптов, который он назвал PHP Tools.

Иногда говорят, что первые версии PHP были написаны на Perl. Это, конечно же, неправда.

Главные факты и события из 25 лет истории PHP смотрите в таймлайне.

https://jb.gg/php25

Заревьюить и дополнить его помогли непосредственные участники событий: Andi Gutmans, Derick Rethans, Peter Kokot, Александр Макаров, Дмитрий Стогов и другие.

Еще 27 мая исполнилось 10 лет PhpStorm. Чтоб отметить сразу два дня рождения делаем скидку 50% на персональную годовую подписку. FAQ по скидке на Хабре.

С днем рождения PHP!
источник
2020 June 18
PHP Digest
Где купить PHP слоника

Прямо сейчас доступны серый и черный слоники Symfony
https://shop.symfony.com/collections/all

Пушистый PHP Roundtable
https://store.osmihelp.org/collections/frontpage/products/the-official-elephpant-plush-toy-of-the-php-roundtable

Белый ConFoo
https://shop.confoo.ca/white-elephpant

Парочка, в том числе оригинальный синий, есть у коллекционера Тима Бонда
https://www.tim-bond.com/elephpants/

Черного панк-слоника PhpStorm пока купить нельзя. Но его можно получить другими способами. (Карантинные меры ослабляют и мы их наконец-то можем отправить)
В самом разгаре программа раннего доступа PhpStorm 2020.2 и для того чтоб получить слоника достаточно зарепортить 5+ подтвержденных (!) багов в ЕАПе.
https://blog.jetbrains.com/phpstorm/2020/06/whats-coming-in-phpstorm-2020-2-eap-video-series-episode-1/
источник
2020 June 19
PHP Digest
В продолжение вчерашнего стрима. Вот Marcel Pociot, вместо жалоб о том, что в PHP нет асинхронности, берет и делает аналог ngrok на PHP, используя ReactPHP.

https://github.com/beyondcode/expose

Инструмент позволяет пробросить туннель и сделать локальный ресурс доступным глобально. Очень удобно когда надо быстро продемонстрировать сайт. Или отладить веб-хуки например.

Есть пост с описанием внутреннего устройства: https://pociot.dev/28-introducing-expose-an-easy-to-use-tunneling-service-implemented-in-pure-php

Конечно, сервер Expose можно запустить и на своем домене: https://beyondco.de/docs/expose/server/starting-the-server

Справедливости ради у меня сходу не все заработало, так что продукт еще WIP и если нужна стабильность, то можно переждать на ngrok.
источник
2020 June 22
PHP Digest
PHP-Дайджест № 182

3 принятых и 6 новых RFC-предложений из PHP Internals, включая голосование за новый синтаксис для атрибутов — @@ и почему #[] был бы лучше, переименования black/whitelist в PHP-мире, как отлаживают PHP-разработчики, видео, подкасты и многое другое.

https://habr.com/p/507636/
источник
2020 June 24
PHP Digest
Видеообзор истории PHP от Пятиминутки PHP

https://www.youtube.com/watch?v=FZ-3Qc89PEY
источник
2020 June 26
PHP Digest
Сегодня в 17:00 по UTC+3 (Киев/Москва/Минск) будем общаться в формате стрима с Антоном Моревым про PHP, PhpStorm, дайджесты и всякое разное.

https://www.youtube.com/watch?v=KvTQWv0phgE
источник
2020 July 01
PHP Digest
Открытое собеседование — ищем участников

Бывало, засидишься на одном месте и не знаешь, актуален ли ты еще на рынке... Хотя бы какие там тренды? Что спрашивают-то сейчас вообще на собеседованиях?

Вот и решили с Валентином Удальцовым провести публичное онлайн-собеседование с вопросами на актуальные темы мира PHP.

Трудоустройство не гарантируем, скорее это возможность рассказать о себе, проверить знания, узнать что-то новое да и просто хорошо провести время.

Собеседование будет проходить в режиме стрима в теплой обстановке, примерно как на видео, только Валентин будет без усов.

Требования для участия:
• уровень middle/senior;
• PHP 7.x, Composer, PSR;
• ООП, SOLID, coupling/cohesion, вот это все;
• тестирование, PHPUnit;
• желателен опыт с Symfony 4/5;
• SQL, желательно PostgreSQL;
• представление о современных трендах в архитектуре приложений.

Заявки на участие можно отправить до 8 июля через форму: https://forms.gle/ES3nXiwf4ycosGEy9.

Вопросы в личку: @vudaltsov, @pronskiy.
источник
PHP Digest
Стрим про код-ревью с камрадами Макаровым, Буркалевым, Жуком и Моревым в эфире прямо сейчас.
Upd: закончился, доступна запись.

https://www.youtube.com/watch?v=JP7lppzWaLg
YouTube
Как готовить код-ревью: обсуждаем плохие и хорошие практики с подкастом SDCast
Слушайте аудиоверсию на других платформах https://sdcast.ksdaemon.ru/

3:30 - Кто пришел говорить и что болит у аутсорса, продуктовой разработки и опенсорса

7:35 - Для чего нам код-ревью и почему это не про баги (Сергей)

11:57 - Идеальный процесс код-ревью (Александр)

13:45 - “Идеальный код-ревью - когде его нет?” (Антон)

15:55 - Идеальный процесс код-ревью (Константин)

16:50 - Стоит ли смешивать рефакторинг и фичу в одном реквесте (Александр)

19:23 - Кто читает код из 5к строк?

20:35 - “Если я взял молоток и ударил по пальцу, виноват молоток?”

22:31 - Ревьюер и контрибьютор: кто главней?

24:15 - Антон извиняется за свои пулл-реквесты в опенсорс

25:55 - В чем разница в ревью между мелкими и большими опенсорс-проектами

27:55 - Кто должен и не должен проводить ревью?

29:50 - “Это позиция галеры?” - наброс от Сергея про негатив по отношению к код-ревью

31:10 - Что будет, если код ревьюит неопытный разработчик (Сергей)

32:30 - “Кто менее важно, чем кого” (Александр)

33:55 - “Я лажаю, это нормально”…
источник
2020 July 06
PHP Digest
PHP-Дайджест № 183

Все про PHP 8: первая альфа, новое выражение match, баг в синтаксисе @@ для атрибутов, реальные бенчмарки JIT, 4 новых предложения. И, как всегда, инструменты, статьи, видео и подкасты.

https://habr.com/p/509738/
источник
2020 July 14
PHP Digest
Открытое собеседование № 1
Cтрим в четверг, 16 июля, в 17:00 по Москве/Киеву/Минску

https://www.youtube.com/watch?v=FQNd9W3nb3A

Валентин @phpyh и я @phpdigest совместно проведём открытое собеседование с Патриком Фельдешем.

Начнём со знакомства, перейдём к PHP, пробежимся по SOLID и закончим где-то в архитектуре и вопросами из чата. В конце расскажем, что было хорошо, а что не очень, и прошел ли бы кандидат реальное собеседование.

Трансляция будет на новом YouTube канале PHP Point — подписывайтесь, чтоб не пропустить следующие проекты.
источник
2020 July 16
PHP Digest
phpdigest
Открытое собеседование № 1
Cтрим в четверг, 16 июля, в 17:00 по Москве/Киеву/Минску

https://www.youtube.com/watch?v=FQNd9W3nb3A

Валентин @phpyh и я @phpdigest совместно проведём открытое собеседование с Патриком Фельдешем.

Начнём со знакомства, перейдём к PHP, пробежимся по SOLID и закончим где-то в архитектуре и вопросами из чата. В конце расскажем, что было хорошо, а что не очень, и прошел ли бы кандидат реальное собеседование.

Трансляция будет на новом YouTube канале PHP Point — подписывайтесь, чтоб не пропустить следующие проекты.
Стартуем открытое собеседование прямо сейчас.

Update: стрим закончился, доступна запись.

https://www.youtube.com/watch?v=FQNd9W3nb3A
источник
2020 July 17
PHP Digest
🔈 Нужны ли Unit-тесты — Владимир Янц в подкасте «Между Скобок»

https://soundcloud.com/between-braces/10-vladimir-yants-nuzhno-li-unit-testirovanie

Коротко и по делу о ключевых аспектах тестирования PHP-приложений. В тему пост Владимира о том, как устроено тестирование монолита в Badoo.
источник
2020 July 20
PHP Digest
PHP-Дайджест № 184

Что будет с поддержкой PHP на Windows, PHP 8 Alpha 2, ReactPHP — официально продакшн-реди, 2 новых RFC предложения и 6 на голосовании, порция полезных инструментов, статьи, видео и подкасты.

https://habr.com/p/511686/
источник
2020 July 24
PHP Digest
phpdigest
#RFC Именованные аргументы функций

#RFC Именованные аргументы функций

https://wiki.php.net/rfc/named_params

Никита идет по списку, предложенному Ларри Гарфильдом, и выдвигает на обсуждение обновленный и проработанный документ.

Именованные аргументы позволяют передавать аргументы в функцию на основе имени параметра, а не его позиции. Причем можно комбинировать именованные и позиционные.

Пропуск дефолтных значений:

htmlspecialchars($string, ENT_COMPAT | ENT_HTML401 , ini_get("default_charset"), false);
станет:
htmlspecialchars($string, double_encode: false);

Еще это важно для атрибутов, так как сейчас с ними вот такой PHPDoc:
/**
* @Route("/api/posts/{id}", methods={"GET","HEAD"})
*/

выглядел бы вот так:
<<Route("/api/posts/{id}", ["methods" => ["GET", "HEAD"]])>>

А с этим RFC будет красиво:
<<Route("/api/posts/{id}", methods: ["GET", "HEAD"])>>

Сообщество разделилось: некоторые считают, что это может создать проблемы для мейнтейнеров пакетов, потому что просто так поменять имя параметра без поломки обратной совместимости нельзя.
Предложение принято. В PHP 8 будут именованные аргументы! 🎉
источник
2020 July 28
PHP Digest
#Cтрим об утечках памяти в PHP

#Cтрим об утечках памяти в PHP

В долговыполняющихся приложениях (асинхронные, демоны, воркеры очередей, процессинг) на PHP , да и на любом другом языке, можно столкнуться с утечками памяти.

Валентин на стриме расскажет об опыте поиска проблемы, инструментах для анализа и о том, как фиксил. Все это на примере утечки, обнаруженной в Symfony–компоненте.

Среда, 18:00 Москва/Киев/Минск, канал PHP Point.

https://www.youtube.com/watch?v=NNMp-97rk9c
YouTube
Поиск и устранение утечек памяти в PHP  / Валентин Удальцов
00:00:00 Приветствие
00:02:16 Обзор утечек памяти в PHP
00:06:38 ProgressBar Symfony Console для контроля расхода памяти в консольных командах
00:11:27 MemoryInterrupter для контроля расхода памяти в демонах
00:14:34 Нюанс про память в --env=dev при работе с Symfony
00:19:12 Параметр $real_usage в memory_get_usage()
00:21:58 MemoryInterrupter и серьезные проблемы с памятью
00:23:32 Validator со стейтом, Symfony фууу
00:24:30 Сборка мусора, gc_collect_cycles()
00:33:58 Про сервисы, которые накапливают состояние
00:34:27 php-memprof против накопления памяти в функции
00:47:06 php-memprof против накопления памяти в сервисах
00:53:13 php-meminfo
01:03:57 Компонент vs компонента
01:04:40 Анализ утечки в Symfony Mailer
01:18:53 Как найти сервис Symfony без плагина
01:23:12 Первый вариант временного фикса через Compiler Pass
01:30:37 Второй вариант временного фикса через ResetInterface
01:41:29 Итоги

Репозиторий с проектом и ссылками на материалы: https://github.com/vudaltsov/php-memory-leaks

Пулл-реквесты в Symfony…
источник