PHP: PHP Дайджест Live #4: обзор новостей PHP 8.1, Антон Титов про temporal.io — инструмент Uber в HD

PHP: PHP Дайджест Live #4: обзор новостей PHP 8.1, Антон Титов про temporal.io — инструмент Uber в
01:34:48

12n.ru 16814 роликов

PHP Дайджест Live #4: обзор новостей PHP 8.1, Антон Титов про temporal.io — инструмент Uber в.

Обзор последних новостей и инструментов из мира PHP. В гостях Антон Титов с рассказом про temporal.io, инструмент, на котором построена архитектура Uber. А также результаты розыгрыша и новый конкурс со слониками.

PHP Дайджест № 197 habr.com/ru/post/539034/

Подписывайтесь на наши каналы в Telegram:
• PHP Digest t.me/phpdigest,
• Пых t.me/phpyh,
• PHP умирает?! t.me/isPHPdying.

00:00 Интро
01:56 Результаты конкурса
04:55 PHP Russia переносится на 28 июня 2021 года
06:08 Итоги года в PHP мире
07:07 [RFC] Object keys in arrays
14:22 [RFC] Object scoped RNG Implementations
19:43 [RFC] Change Default mysqli Error Mode
24:20 [RFC] Dump results of expressions in `php -a`
29:17 PHP 8.1: What's New and Changed
32:30 Антон Титов про то, как они затаскивают temporal.io в PHP
57:31 fabpot/local-php-security-checker
1:00:33 funivan/PhpClean
1:04:03 wasmerio/wasmer-php
1:07:24 chaos-php/chaos-monkey-symfony-bundle
1:10:00 walkor/Workerman
1:14:55 Коллизии PHP массивов
1:18:53 php.watch: PHP Curl Security Hardening
1:19:21 Пишем Telegram-бота на PHP
1:21:05 Делаем динамический профиль на GitHub с помощью GitHub Actions и PHP
1:21:49 Двоичные и побитовые операции в PHP
1:23:00 Буря в стакане по поводу PHP 8
1:28:00 Как выглядел бы PHP, если бы это зависело от меня
1:33:54 Новый конкурс
RSS
roxblnfk
22:05
+21
Недалича, как месяц-два назад, попросил меня товарищ помочь ему внести некоторые правки в одно приложение, ибо дедлайн перед новым годом, а программиста не нашлось. Проект на Yii2. Ну, думаю, что может быть проще. Структура фреймворка знакомая, проект не рокетсайнс, да и большой плюс в том, что это не битрик и не вордпресс. Подписался.
Товарищ предоставил архив с кодом и базу. Попросил dev версию и у него раскатать. Оказалось, что проект на php 5.4. Долго искал старые версии php, mysql apache. Не увенчалось особым успехом. Решил обновить проект и версию соответственно. С Yii2 в этом плане проблем не было. Проблемы были в пользовательском коде:
— повсеместное использование несуществующих переменных;
— обращение к $this в статических методах и статический вызов нестатических методов;
— код контроллеров в моделях и наоборот;
— при отрисовке некоторых таблиц на страницах производилось по несколько запросов в БД на каждую ячейку;
— предыдущий прогер загадил вендор своими правками. Изменил файлы некоторых сторонних пакетов и создал прямо в папке vendor папку со своим пакетом. Даже composer.json заполнил на полном серьёзе. Но на гитхаб/пакагист не выложил и в секцию require корневого composer.json не добавил. Автолоадинг композера подтягивает — а большего ему и не надо :)
— кодстайл — вообще отдельная тема. Каждая строка непонятно где начинается и заканчивается. Спасибо IDE за автоформатирование!
Как оно вообще работало даже на php 5.4?
Апдейт на 7.4: «7,084 additions and 1,938 deletions» только в первом коммите, а сколько их ещё было считать уже лень.
Но самое забавное: чувак до этого всё время работал с вордпрессом и, начав проект на Yii2, ОН СДЕЛАЛ ИЗ Yii2 ВОРДПРЕСС. Он написал поддержку шорткодов как в вордпрессе и кучу мать его виджетов для этого. Сайт на 10 с половиной вьюшек, а он шорткоды на него запилил. И всё это в папку vendor вкосячил.
Чтоб я ещё раз не в своё легаси влез… своё хотябы не пахнет.
Vlad Pototskiy
01:35
+4
Значится история не будет особенно большая. Ну значит так, за всю свою жизнь с воодпрессом, я сталкивался только один раз в далёком 2013-2014 году. Ну и тут понадобилось поднять на коленке типо сайтик одностраничный без дизайна и ничего, беру я значит Свой подготовленный Docker-compose со стэком MySQL 5.7, PHP 7.4, NGINX e.t.c. И думаю, ща я, composer required и все дела. Нету, в репе)) каково было мое удивление что есть какой-то парнишка который старается держать в своей репе актуальную версию wordpress. Ну думаю лааааадно, скачаю я вручную, так уж и быть. Скачал, распаковал, захожу я инсталить. И вы знаете шо? Wordpress говорит «ХОЧУ РАСШИРЕНИЕ MySQL!» Первая моя эмоция была — *мем где переворачивают стол*, но потом я дико посмеялся в голос и удалил все к чертям
Denis
18:43
+2
Почему только 720p качество?
Vladislav A
23:36
+1
Легаси-код. Очень страшный, т.к. писали не пхп разработчики вовсе(ребята с пайтона пришли). Было использовано очень много библиотек для работы с датами(даже своя написана). И вот пришел разработчик, который сказал, что все библиотеки х**yz, нужно использовать carbon.
В итоге, парень накатывает carbon, для какого-то мини-скрипта, выкатывает в прод(git pull + composer UPDATE) и уходит домой отдыхать.
В 4 утра звонок — ничего не работает, клиенты с дальнего востока не могут пользоваться платформой.
Спустя депрессию и принятие удается выяснить — composer update не выполнялся в этой ветке больше 1.5-ра лет, composer.json имел для всех либ версию ^x.xx, а composer.lock лежал прямо в репо, разработчик ничего не проверил и просто запушил после написания своего скрипта и composer require nesbot/carbon.

В общем, с 20:00 до 7:00 все лежало т.к. часть библотек просто не работало(слишком уж давно они не обновлялись), клиенты были не довольны и все получили по шапке.
Денис Борисов
22:09
А ваш PHP Digests Search Tool написан с использованием jQuery DataTables?
Юрий Плохов
17:32
Статью о том «Как выглядел бы PHP ...» джавист писал очевидно. Final для свойств, и строки — это объекты. Все больше на Java похоже)