Буду рассказывать про правильную готовку Composer на Podlodka PHP Crew 27 февраля. Сразу за мной Дмитрий Дерепко из команды Yii3 расскажет «Инструменты для работы с кодом: код-стайл, зависимости, рефакторинг». В другие дни также очень интересные доклады.
Все заметки с тегом «PHP»
-
Готовим Composer @ Podlodka PHP Crew
21 февраля 2023
-
PHP Russia 2022
14 ноября 2022
В этом году конференцию сделать было особенно сложно, но мы справились. Получилось не так, как планировали. Наверное, немного лучше:
- Два зала и два дня вместе с Highload.
- Несколько раз сменившийся набор тем и докладчиков. Не всё на 100% гладко, но очень и очень достойно. Темы действительно интересные и практически все очень хорошо проработаны.
Приходите послушать 24 и 25 ноября
p.s. промокод на скидку 7%
phpspeakers
-
PER Coding Style 1.0.0
20 июня 2022
Что такое PER я уже писал. Если коротко, то это "живой" стандарт, который применяется для постоянно меняющихся тем, на которые всё-таки стандарт какой-то нужен.
Недавно мы тегнули первую версию PER Coding Style. Изначально я был редактором, но из-за февральских событий максимум на что хватило — начать и делать пристальное ревью.
В итоге сейчас стандарт является, по сути, копией PSR-12 с поправленными описками и ошибками. А вот в master-ветке уже есть изменения, учитывающие свежие конструкции PHP, которые войдут во вторую версию.
-
Официально начата работа над Coding style PER
31 января 2022
Coding Style PER, который заменит PSR-12, официально одобрен PHP-FIG. Работы начаты в https://github.com/php-fig/per-coding-style.
Это первый документ группы согласно PER, то есть «живой» стандарт. Его не будут заменить каждый раз при добавлении нового синтаксиса в PHP. Вместо этого пакет правки будут релизиться по SemVer.
-
PHP 8.1
26 ноября 2021
Ура! Релизнулся.
- Почитать про новые фичи можно на красивом лендинге.
- Посмотреть стрим по случаю релиза.
-
PHP: превращаем ошибку в исключение локально
20 февраля 2021
В PHP часто для обработки ошибки в функциях вроде
dns_get_record()
используют оператор@
:$result = @dns_get_record($hostname, DNS_A); if (!$result) { throw new \RuntimeException('Unable to get record.'); }
Проблем несколько:
- Использование
@
не очень хорошо сказывается на производительности - Часто подавляется слишком много разных ошибок.
Есть способ лучше:
set_error_handler( static function (int $errorNumber, string $errorString) use ($hostname): ?bool { throw new \RuntimeException( sprintf('Unable to get record: "%s". ', $hostname) . $errorString, $errorNumber ); } ); $result = dns_get_record($hostname, DNS_A); restore_error_handler();
- Использование
-
PHP, OpenSSL и ошибка certificate verify failed
17 февраля 2021
При попытке использования OpenSSL на некоторых системах возникает ошибка:
stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed
Исправляется довольно просто:
- Сливаем https://curl.haxx.se/ca/cacert.pem.
- В php.ini добавляем
openssl.cafile="/путь/до/cacert.pem"
.
Так же точно исправляется ошибка "cURL error 60".
Вроде просто, но почему-то подавляющее большинство советов на эту тему, в том числе большинство ответов на StackOverflow, говорят "отключить проверку", что, конечно же, приводит к возможности атаки man in the middle.
-
PHP 8
30 ноября 2020
На днях релизнулся PHP 8. Он не так богат на полезные возможности, как PHP 7.0 или PHP 7.4, но определённо хорош как производительностью с новым JIT, так и тысячей приятных мелочей.
О новых возможностях коротко можно почитать на специальной странице, которую мы подготовили вместе Романом Пронским, JetBrains и сообществом.
В честь выхода мы провели стрим с участием двух видных разработчиков этого релиза: Дмитрия Стогова и Никиты Попова.
Запись можно посмотреть на YouTube.
По поводу стабильности могу сказать, что, определённо можно пробовать переводить на восьмёрку продакшн. Большинство серьёзных багов отловили в бетах. Yii 1, Yii 2 и Yii 3 к PHP 8 готовы.
-
Windows Terminal и пара разных версий PHP в отдельных вкладках
24 октября 2020
Недавно у меня умер SSD и заставил настраивать заново всё окружение. Опробованные Linux по тем или иным причинам не зашли (но я ещё попробую, может пропустил что). Вернулся на Windows 10.
Для тестов фреймворка мне необходимы несколько версий PHP и в этот раз удалось сделать удобно. В Windows Terminal у меня теперь несколько профилей с git bash и в каждом отдельная версия PHP.
Делается так:
- Берём сам PHP, распаковываем в отдельные директории. Например,
C:\php74
,C:\php80
. - Добавляем профили:
{ "guid": "{e084a08a-ad94-499d-9573-1d5904b4e9a0}", "name": "Git Bash with PHP 8", "suppressApplicationTitle": true, "icon" : "%PROGRAMFILES%/Git/mingw64/share/git/git-for-windows.ico", "commandline": "cmd.exe /C \"SET PATH=%PATH%;C:\\php80\\&& \"%PROGRAMFILES%\\Git\\bin\\bash.exe\" -login -i -l\"", "startingDirectory": "D:\\src\\" }, { "guid": "{08a7817f-8812-4eb0-b4b7-a4939fc9d14a}", "name": "Git Bash with PHP 7", "suppressApplicationTitle": true, "icon" : "%PROGRAMFILES%/Git/mingw64/share/git/git-for-windows.ico", "commandline": "cmd.exe /C \"SET PATH=%PATH%;C:\\php74\\&& \"%PROGRAMFILES%\\Git\\bin\\bash.exe\" -login -i -l\"", "startingDirectory": "D:\\src\\" }
- Берём сам PHP, распаковываем в отдельные директории. Например,
-
PHP vs Go
25 августа 2020
15 августа записали видео где попытались разобраться, как пишут приложения на PHP и Go. Участники кроме меня:
- Елена Граховац - руководитель программного комитета конференции GolangConf 2019, экс-ведущая подкаста GolangShow.
- Илья Шихалеев - соорганизатор go-митапов в Йошкар-Оле, Казани и онлайне, по работе также пишет на PHP.
- Руслан Ханов - соорганизует PHP-митапы http://symcode.ru в Петербурге.
- Дискуссию вёл Антон Морев (Wormsoft).