Пятиминутка PHP
2.87K subscribers
334 photos
26 videos
826 links
Подкаст о PHP, DBA, архитектуре, DevOps. Авторское мнение о современных трендах в веб-разработке и интересные беседы с гостями. Темы про СУБД, Linux, DevOps

Автор: @petrmyazin
Download Telegram
Channel name was changed to «Пятиминутка 1С»
Автор популярного YouTube канала Laravel Daily провёл опрос о способах деплоя, приняло участие 447 респондентов.

Интересный факт: 114 используют shared hosting и половина из них FTP — дух 2000-х всё ещё жив в PHP разработке, даже в среде Laravel!

https://youtu.be/BpTpOV5ZuTQ
Привет!

Канал Пятиминутка PHP не стоит на месте и продолжает развиваться. Я принял решение рассылать новости с помощью телеграмм.

Телеграммы — принципиально новый формат доставки новостей:
— На настоящем физическом носителе!
— С заботой о вашем зрении: бумага намного безопаснее для глаз, чем яркий экран смартфона.
— Когда мы запустим сервис по доставке еды для PHP разработчиков, вы будете одним из первых в списке на бета-тест (не еды, а сервиса).
— Получить долгожданную телеграмму гораздо приятнее, чем просто сообщение в мессенджере, не так ли?

Все текущие подписчики канала Пятиминутка PHP автоматически переводятся на рассылку телеграмм, следите за PHP новостями в ближайшем отделении почты!
Channel name was changed to «Пятиминутка PHP»
Сегодня была опубликована версия 3.0 пакета spatie/data-transfer-object.

Сам по себе этот пакет, возможно, вам и не пригодится, но версия 3.0 примечательна изменениями в коде, который теперь по максимуму использует возможности PHP 8.

При переходе от версии 2 на версию 3 из пакета была удалена вся функциональность по проверке типов в Runtime в пользу системы типов и атрибутов PHP 8.

Рекомендую заглянуть в исходный код в поисках вдохновения и идей относительно продвинутого использования PHP 8.

http://amp.gs/crpJ
Несколько интересных подробностей о недавнем взломе git.php.net из подкаста
http://amp.gs/csjK

— Нет обязательного процесса Code Review для каждого коммита в исходники PHP, но ключевые разработчики просматривают поток коммитов
— Реализация новых RFC проходит code review ещё до голосования
— После взлома git.php.net сервер был отключён, способ взлома не понятен
— Переход на GitHub по хорошему должен был состояться ещё несколько лет назад. Этот случай форсировал переход
— На GitHub включена обязательная двухфакторная аутентификация
— На первом этапе не планируется использовать Pull Requests, чтобы не вносить слишком много изменений в рабочий процесс за раз
— Большинство контрибьютеров на данный момент не подписывают свои коммиты криптографической подписью, не плохо было бы внедрить этот процесс для всех
— Также планируется добавить автоматизированные проверки исходного кода, в первую очередь на использование небезопасных функций типа eval и появление base64 фрагментов в коде
— Полностью контролировать свою инфраструктуру раньше казалось хорошей идеей. Но это также требует внимания к обслуживанию, к настройке безопасности. Лучше доверить это профессионалам, в частности вместо поддержки своего git сервера использовать GitHub.
Хорошее описание работы Laravel Octane с подробностями и деталями, как происходит управление жизненным циклом приложения - много хаков и нюансов, нельзя так просто взять и отказаться от наследия «PHP умирает на каждом запросе» http://amp.gs/cMie
Порекомендую статью достаточно базового уровня, но при этом с хорошим и последовательным изложением: Laravel sessions vs PHP session

— В чём отличие cookie от сессий в PHP?
— Почему не стоит хранить логин в cookie и почему WordPress это делает?
— Время жизни cookie и время жизни сессии — в чём разница и как контролировать (session.gc\_maxlifetime vs session.cookie\_lifetime)?
— Как Laravel взаимодействует с PHP сессиями через различные «драйвера»?
— Что общего между WordPress и Laravel Cookie Session Driver?
— Принцип «remember me»


http://amp.gs/cbks
Сезон городских PHP-митапов начнётся со встречи в Нижнем Новгороде 24 апреля 2021 (Offline + Online) http://amp.gs/6xMP

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

🎤 Как структурировать код, чтобы не получить большой ком грязи (Валентин Удальцов)
Liskov Substitution Principle
Пятиминутка PHP
Принцип подстановки Барбары Лисков
- https://ru.wikipedia.org/wiki/Принцип_подстановки_Барбары_Лисков

Это гостевой выпуск Пятиминутки PHP - ведёт Кирилл Сулимовский
- https://www.linkedin.com/in/кирилл-сулимовский-57a697b6/

Также порекомендую подписаться на телеграм канал Кирилла
- https://t.me/beerphp

Кстати, вы тоже можете принять участие в записи подкаста, инструкции здесь:
- https://5minphp.ru/join/
250+ вопросов с собеседований по PHP. Три блока: для уровня Junior, Middle и Senior: http://amp.gs/6gZS
Forwarded from Проветримся!
я обычно не перепащиваю свои же посты, но тут дело полезное

Собрал отличный квест на выходные.

Идём по ссылке. Читаем, как предлагается регулировать просветительскую деятельность. Убеждаемся, что в текущей редакции данный акт противоречит конституции Российской Федерации (29. 4).
"Каждый имеет право свободно искать, получать, передавать, производить и распространять информацию любым законным способом."

Логинимся через Госуслуги.

Нажимаем дизлайк.

Вносим предложение:
Пункт 4 данного акта в текущем виде противоречит ст. 29 Конституции РФ, предусматривающей право свободно делиться любой информацией, прямо не запрещённой Конституцией и федеральными законами.
Предлагаю дополнить пункт 4:
"Просветительская деятельность, осуществляемая вне образовательных, научных и культурных организаций, не требует заключения вышеозначенного договора и может осуществляться самим субъектом просветительской деятельности."

Спасибо.
Что произойдёт, если сделать unset свойству класса?

- Для не типизированных свойств попытка чтения вызовет лишь Warning и вернёт NULL;

- Но если свойство типизировано, то оно перейдёт в состояние uninitialized и попытка чтения вызовет Fatal error.

http://amp.gs/6KMW
В PHP 8.0 можно передавать аргументы в функцию по имени (вне зависимости от позиции).

Но можно и комбинировать: сначала позиционные аргументы, затем именованные.

Настоящий взрыв мозга - это совместить с распаковкой из массива ...$args 🤯

http://amp.gs/63fd