PHP: PHP Дайджест Live #4: обзор новостей PHP 8.1, Антон Титов про temporal.io — инструмент Uber в HD
01:34:48
Обнаружено блокирование рекламы на сайте
Для существования нашего сайта необходим показ рекламы. Просим отнестись с пониманием и добавить сайт в список исключений вашей программы для блокировки рекламы (AdBlock и другие).
12n.ru 18476 роликов
3226 просмотров на сайте 12n.ru
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 Новый конкурс
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 Новый конкурс
развернуть свернуть
Товарищ предоставил архив с кодом и базу. Попросил 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 вкосячил.
Чтоб я ещё раз не в своё легаси влез… своё хотябы не пахнет.
В итоге, парень накатывает carbon, для какого-то мини-скрипта, выкатывает в прод(git pull + composer UPDATE) и уходит домой отдыхать.
В 4 утра звонок — ничего не работает, клиенты с дальнего востока не могут пользоваться платформой.
Спустя депрессию и принятие удается выяснить — composer update не выполнялся в этой ветке больше 1.5-ра лет, composer.json имел для всех либ версию ^x.xx, а composer.lock лежал прямо в репо, разработчик ничего не проверил и просто запушил после написания своего скрипта и composer require nesbot/carbon.
В общем, с 20:00 до 7:00 все лежало т.к. часть библотек просто не работало(слишком уж давно они не обновлялись), клиенты были не довольны и все получили по шапке.