PHP.today
3.93K subscribers
10 photos
3 files
233 links
Самые свежие новости из мира PHP. Обновленные стандарты. Лучшие практики с примерами кода. Как писать чистый, читаемый и понятный код.
Чат тут https://tttttt.me/all_it_ru
Download Telegram
Всем привет! Прошу прощения за долгое молчание, жизнь приперла к стенке, и пришлось отбиваться =) Пришлось переезжать, и все лето ушло на переезд и обустройство на новом месте.


Сегодняшний пост будет скорее для маководов, хотя и для линуксоидов тула подойдет, но, местами - не автоматически.
Речь про 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)

Детали и тайминг собрали тут.
В четверг вышел PHP 8.1, а я, как работник кровавого энтерпрайза, все еще на 7.4.

Мне кажется, идут в ногу с релизами зачастую или молодые компании, или те, кто выжимает из языка максимум скорости. За ними тянутся компании, где тех лиды могут пропихнуть рефакторинг менеджерам.

А вот особняком стоят CMSки и аутсорсинг проекты которые уже прошли стадию активной разработки.
Например, Magento с поддержкой PHP 8.1 выйдет только весной.


Ну а почитать про новинки языка можно тут https://www.php.net/releases/8.1/ru.php

Напишите в комментарии, как в вашей компании обстоят дела с обновлением версии языка.
Прошли знаменитые скидочные дни, и астрологи объявили неделю статей о highload факапах.

Держите одну из них, там про Magento, однако большинство ошибок, подпаливших пятые точки девелоперов на Black Friday - вполне себе могут произойти и с вашим кодом.

P.S. Скорее всего люди с опытом highload не найдут для себя ничего сильно полезного, ребята в статье попались на ошибки новичков.


https://dou.ua/forums/topic/35426/
Год назад прошел первый большой PHP-опрос. Сейчас мы снова собираем лучшие статьи, видео и инструменты по мнению сообщества, выясняем, кто с какими технологиями провел год, - а в конце разыграем мерч и другие подарки.

Найди 5 минут, чтобы подвести итоги своего PHP-года:

https://phpsurvey.typeform.com/to/FeIOkDIP
Тут завезли немного здравого смысла, правда сильно смешали его с личными предпочтениями автора, и отсутствием хороших примеров использования NoSQL.

Почему SQL в решении большинства задач лучше, чем NoSQL базы данных, и когда все-таки брать NoSQL?

https://habr.com/ru/post/596969/
Вдогонку к посту про БД: тут недавно обнаружили старый баг MySQL и MariaDB, который позволяет писать выражения, пропускаемые большинством firewalls и прочих костылей для обнаружения SQL-injection в запросе.

Поэтому пишите безопасный код с обязательным экранированием всех параметров прямо на PHP, не нужно писать говнокод в надежде на какой-то плагин для nginx!


https://habr.com/ru/news/t/585346/
Сейчас из каждого утюга можно услышать: ML, нейросети, обучение.

А вы знали, что для того, чтобы потрогать нейросети и даже запустить свою не обязательно учить Python или R? Попробовать можно даже на PHP.

Вот есть парочка библиотек https://habr.com/ru/company/otus/blog/599985/

А вот еще расширение для PHP, оно устарело и больше не поддерживается, но для того чтоб потрогать и понять - нравится/не нравится - этого достаточно


Для реального проекта все-таки стоит выбрать другой язык, но потрогать можно уже здесь и сейчас!

P.S. Знаете, откуда выражение «из каждого утюга»? Если советский утюг старой модели воткнуть в розетку радиоточки, можно услышать радио, тихо правда.
Вот тут можно найти пачку полезных функций/команд/шорткатов для phpstorm https://masteringphpstorm.com/tips-and-tricks
А вы когда-нибудь задумывались о том, нравится ли вам PHP, и насколько вы представляете себя серьезным программистом?

Не стоит стыдиться PHP.

Если вы живете в СНГ, или имеете хороший багаж в какой-нибудь популярной CMS - то, скорее всего вы будете довольны своей работой на PHP, и все будет хорошо. Нет, я не говорю, что язык плохой - очень даже хороший, и ООП можно красивое построить, и в целом код выглядит отлично и понятно, учитывая то, что у нас нет тонн синтаксического сахара.
Но если вдруг вам захочется в FAANG, придется переучиваться.

Я недавно вдруг осознал, что JavaScript, лет десять назад воспринимаемый как какая-то несерьезная игрушка, которую неумехи-верстальщики пытаются затащить на бэк или сделать там типизацию и красивые классы - уже вполне себе обогнал PHP и по использованию, и по удобству, и, что немаловажно, по зарплате. С учетом того что это чуть ли не единственный фронтовый язык - с JavaScript дороги открыты практически в любую компанию.

Статья меня не убедила, но может убедит вас:

https://habr.com/ru/post/652545/
Не используйте получение защищенных куками json данных через GET запрос!

Если вы:
1. Используете AJAX GET чтобы получить данные пользователя
2. Для авторизации на этом эндпоинте используете куки
3. Возвращаемые данные в формате JSON

То поздравляю, вы уязвимы для json hijacking! Пора поменять хотяб один из этих трех пунктов.

Подробности тут: https://habr.com/ru/post/63176/
Большую часть жизни пишу код под Magento и Symfony, и, знаете, я настолько привык использовать геттеры и сеттеры, что нововведения PHP 8 в виде объявления свойств в конструкторе с последующим использованием публичных или readonly свойств мне как будто режет глаз.


С одной стороны код получается короче и пишется быстрее, но уже давно существуют кодогенераторы, которые делают все за тебя.

А вы используете публичные свойства?
Всем привет!

Заметил, что в большинстве компаний на постсоветском пространстве собеседования, обычно, сводятся к тому, насколько человек знает отличия класса, от интерфейса, может ответить, что выведет код

$a = “a1” + “1a”;

Пары каких-нибудь вопросов с подвохом, ну и сопутствующие технологии, будь то джоины в MySQL, композеры, докеры etc.

Часто завершается такое собеседование соревнованиями вида «чье ооп круче», паттернами и SOLIDом.

Приученный к такому, довольно простому ходу собеседований я окунулся в мир FAANG, где твое ООП ничего не значит, а подробное знание настроек elasticsearch - лишь приобретаемый навык, который вообще никого не волнует.

И в этот момент уверенные в себе Senior PHP/FullStack/etc девелоперы часто становятся в один ряд с обычными зелеными джунами, только что вставшими на путь истинный.


В общем, я хочу вам поведать, как же все-таки стать тем самым Senior Software Engineer по мнению крупных компаний, из чего состоят собеседования, и почему попасть в FAANG (уже MAANG) гораздо проще чем вы думаете.

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