PHP.today
3.75K subscribers
12 photos
4 files
236 links
Самые свежие новости из мира PHP. Обновленные стандарты. Лучшие практики с примерами кода. Как писать чистый, читаемый и понятный код.
Чат тут https://tttttt.me/all_it_ru
Download Telegram
А как вы относитесь к enum в текущем виде?
Forwarded from PHP Digest
Голосование по енамам в PHP

https://wiki.php.net/rfc/enumerations#voting

Подробнее про предложение можно прочитать в дайджесте № 194. А пока давайте проведем свое альтернативное голосование.
Forwarded from PHP Digest
Поддерживаете ли добавление енамов в PHP 8.1 в текущем виде?
Anonymous Poll
83%
Да
17%
Нет
Насыплю сверху про enum:
Кто еще не разобрался, или не понимает зачем, вот отличная статья на эту тему

https://habr.com/ru/post/541246/


Ну и из релизов: в четверг вышли патч версии php:
В 7.3 - один багофикс с soap,
В 7.4 - довольно внушительная пачка фиксов, там и кор и mysqli.

Довольно угарный фикс - php падал, если исходник > 4 гигов. Мне просто любопытно посмотреть код того, кто обнаружил эту багу)))
Вот сама бага https://bugs.php.net/bug.php?id=80523
Чем себя занять в моменты, когда на работе нужно написать много рутинного кода, ну или задачи по-просту не интересные? Кто-то ходит по собесам просто ради интереса, кто-то пишет пет проекты, а кто-то фрилансит. В перерывах между пет-проектами лично я люблю решать небольшие конЕчные (не конЧЕнные=)) задачки.

Как это работает? Вам дается задание, область написания кода и кнопка "test", по нажатию на которую запускаются автотесты, проверяющие ваш код. В некоторых заданиях дополнительно еще ограничено время. Кстати, обычно очень широкий выбор языков программирования.

Вот совсем коротенький список, буду рад, если в комментариях дополните:
1. www.hackerrank.com Платформа запущена в 2012 году. Помимо просто решения задач предлагает еще получить сертификаты в той или иной области, а также есть площадка для поиска работы. По сути, хакерранк это топовая платформа, которая также используется крупными компаниями для найма на работу через решение задач. К примеру - ежегодный Badoo конкурс о найме на работу в Лондон - размещался именно там.

2. www.codewars.com - очень похожая на первую, однако тут упор сделан на писькомерство. При регистрации вам выдают, кажется, 8 кю (8 уровень, как в карате-до), и по решению задач присваивают новый кю/дан. После решения задачи вы попадаете на экран, на котором есть полный список всех решений всех пользователей с лайками по категориям "бест практис" и "самое умное решение". Самое топовое решение наверху. Можно его форкнуть и улучшить. Ну и можно контрибьютить - добавлять свои задания
Недавно появилась парочка интересных переводов о зловредах в php.

Первый настоятельно рекомендую к прочтению, как минимум для общего развития. Сама по себе идея проста до гениальности - мы берем пару невидимых символов (например - пробел и табуляция), и считаем, что они "1" и "0". Кодируем наш скрипт в бинарный формат, заменяем единицы и нули нашими невидимыми символами, и - вуаля!

#backdoor #уязвимость

Подробности тут https://telegra.ph/Nevidimye-simvoly-skryvayushchie-veb-shell-v-zlovrednom-kode-na-PHP-02-18

Второй - не особенно-то и актуальный для PHP - взлом через менеджер зависимостей (composer для PHP) путем подмены приватного пакета на публичный.
https://telegra.ph/Zashchita-ot-uyazvimosti-Dependency-Confusion-v-PHP-s-pomoshchyu-Composer-02-18
Что ждет PHP в 2021?
Узнаем 27 февраля на большом стриме.

🎤 2 доклада: о WebRTC от Ильи Левина из Skyeng, о gRPC — от Антона Жукова из ManyChat.

🏄 Острые дискуссии, мнения о 2020, планы на 2021. В эфир придут:

- Никита Попов (PHP core team)
- Дмитрий Елисеев (ElisDN)
- Валентин Удальцов (Пых)
- Роман Пронский (PHP-дайджест)
- Александр Макаров (Yii)
- Сергей Жук (Между Скобок)
- Константин Буркалев (SDCast)
- Петр Мязин (Пятиминутка PHP)
- Антон Околелов (Цинковый прод)
- Николай Пучко (PHPToday)

🎁 Покажем итоги опроса про лучшее из мира PHP за 2020, разыграем фирменного слоника и целый пул других подарков.

Трансляции в 11:00 (Москва/Минск), 10:00 — Киев
В последнее время, собеседуя backend-разработчиков заметил нехорошую тенденцию. Люди не очень в SQL. Когда-то давно, когда я начинал, еще не были так распространены ORM, да и большинство кода даже не использовало ООП. И не было другого выхода, кроме как писать "сырые" запросы. (Да и сырыми их тогда никто не называл).

Сейчас общество как будто развращено симфонями и ларавелями, и, особенно, по начинающим разработчикам это заметно.

И сейчас хочу поделиться с вами статейкой о том, как узнать, почему написанный вами (или ORMкой) запрос педалит работает медленно.

#mysql #explain #профилирование

https://habr.com/ru/company/citymobil/blog/545004/
Все мы умеем настраивать веб сервер. Как минимум это нужно даже на локалке, чтобы развернуть проект.

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

В частности - вот какие уязвимости можно допустить просто по незнанию в конфигах nginx

#уязвимость #nginx #вебсервер

https://telegra.ph/CHastye-oshibki-v-nastrojkah-Nginx-iz-za-kotoryh-veb-server-stanovitsya-uyazvimym-03-16
Forwarded from SecAtor
Вчера злодеи скомпрометировали внутренний репозиторий PHP и добавили бэкдор в исходный код.

Первым бэкдор обнаружил чешский программист Майкл Воржишек, который обратил внимание на подозрительный кусок кода и задался вопросом, что тот должен делать. Оказалось, что выполнять код через вызов функции zend-eval-string, содержащийся с подстрокой zerodium (это такая американская компания, покупающая 0-day, видимо хакеры пошутили), передаваемой в HTTP-заголовках.

Сегодня один из основных членов команды PHP Никита Попов подтвердил, что вчера был добавлен вредоносный код от его имени и от имени другого члена команды Расмуса Лердорфа. Он сообщает, что его учетная запись не была скомпрометирована, а взломан был именно сервер репозитория, в связи с чем они переедут на GitHub.

Атака на цепочку поставок.
В PHP 8.1 скорее всего появятся файберы.

Вот вам статейка на русском о том, что это такое, и как можно будет использовать
https://telegra.ph/Fibery--novaya-ficha-v-PHP-81-04-16

Ну а за самим RFC можно следить тут https://wiki.php.net/rfc/fibers

И милости просим в комменты, если есть уже идеи, как будете использовать их в своих проектах

#fibers #асинхронность #корутины
​​2 доклада по Symfony на митапе PHP NN сообщества

Трансляция стартует 24 апреля в 11:00 (Мск)

🎤 Как переделать Symfony-проект в целое направление (Денис Юрьев, Skysmart от Skyeng)

🎤 Как структурировать код, чтобы не получить большой ком грязи (Валентин Удальцов, ведущий каналов Пых и PHP Point)

Будет возможность включиться голосом в митап с вопросами 🐘
Не мокайте то, чем вы не владеете! Моканье классов третьесторонних библиотек - довольно скользкая дорожка.

Перевел статейку авторов PHPUnit. Перевод на хабре https://habr.com/ru/post/554318/, оригинал тут https://thephp.cc/news/2021/04/do-not-mock-what-you-do-not-own

#тестирование #phpunit #unittest

P.S. На самом деле в статье взят самый простой пример, и оборачивание всех сервисов фреймворка в отдельный слой своих классов - на мой взгляд - оверхед. Но в некоторых местах это действительно нужно сделать так (ну или похоже), как описано в статье
Возможно, вы уже знаете об этом, но я все равно напишу:

Проверять свои composer зависимости на предмет известных уязвимостей можно просто добавив в dev зависимости пакет:

composer require --dev roave/security-advisories:dev-latest


Это простой metapackage, в котором в директиве conflict описаны известные версии библиотек с уязвимостями. Т.е. при попытке установить пакет с уязвимостью вы получите ошибку на уровне composer require.

Ссылка на github: https://github.com/Roave/SecurityAdvisories
Всем привет! Прошу прощения за долгое молчание, жизнь приперла к стенке, и пришлось отбиваться =) Пришлось переезжать, и все лето ушло на переезд и обустройство на новом месте.


Сегодняшний пост будет скорее для маководов, хотя и для линуксоидов тула подойдет, но, местами - не автоматически.
Речь про warden.dev. Warden - это консольная утилита для управления контейнерами, идельно подходит для Magento, а также для  Symfony, Laravel, Showare, Commonalities.

На маке работает довольно шустро, умеет:
- Включать-выключать xdebug по наличию куки из расширения Xdebug Helper автоматически
- Поднимать новые хосты всего в несколько команд
- Https из коробки без самостоятельных настроек
- Portainer, Traefik, MailHog уже включены.
- Удобное управление версиями через .env файл - поменял php с 7.2 на 8.0, или elasticsearch с 6 на 7.4, перезагрузил, готово.
- Автоматически прописывает хосты на macos, не нужно топать в /etc/hosts

Ну и если понадобится что-то уж совсем кастомное - всегда можно поправить любые конфиги, добавить инструкции в docker-compose или поменять docker-образ

Ссылочка:
https://warden.dev/

#docker #warden #docker-compose
Какими докер-тулами вы пользуетесь?

Список сильно короткий, поэтому если пользуетесь еще чем-то - смело пишите в комментарии!
Anonymous Poll
26%
Traefik
30%
Portainer
30%
MailHog
34%
Другое (написать в комменты)
Стрим к релизу PHP 8.1

25 ноября в 19:00 обсудим в онлайне апдейты релиза и PHP Foundation. А 4 компании поделятся опытом, как перевозили проекты на 8.0: от причин переезда и ожиданий до результатов и практических советов.

Вести стрим будут: Валентин Удальцов (Пых), Александр Макаров (Yii), Роман Пронский (PHP Digest)

Расскажут, как переезжали на 8.0: Валентин Назаров (Skyeng), Александр Данковцев (Авито), Максим Фомичев (ManyChat), Иван Корноухов (Badoo)

Детали и тайминг собрали тут.