Автор популярного YouTube канала Laravel Daily провёл опрос о способах деплоя, приняло участие 447 респондентов.
Интересный факт: 114 используют shared hosting и половина из них FTP — дух 2000-х всё ещё жив в PHP разработке, даже в среде Laravel!
https://youtu.be/BpTpOV5ZuTQ
Интересный факт: 114 используют shared hosting и половина из них FTP — дух 2000-х всё ещё жив в PHP разработке, даже в среде Laravel!
https://youtu.be/BpTpOV5ZuTQ
Привет!
Канал Пятиминутка PHP не стоит на месте и продолжает развиваться. Я принял решение рассылать новости с помощью телеграмм.
Телеграммы — принципиально новый формат доставки новостей:
— На настоящем физическом носителе!
— С заботой о вашем зрении: бумага намного безопаснее для глаз, чем яркий экран смартфона.
— Когда мы запустим сервис по доставке еды для PHP разработчиков, вы будете одним из первых в списке на бета-тест (не еды, а сервиса).
— Получить долгожданную телеграмму гораздо приятнее, чем просто сообщение в мессенджере, не так ли?
Все текущие подписчики канала Пятиминутка PHP автоматически переводятся на рассылку телеграмм, следите за PHP новостями в ближайшем отделении почты!
Канал Пятиминутка PHP не стоит на месте и продолжает развиваться. Я принял решение рассылать новости с помощью телеграмм.
Телеграммы — принципиально новый формат доставки новостей:
— На настоящем физическом носителе!
— С заботой о вашем зрении: бумага намного безопаснее для глаз, чем яркий экран смартфона.
— Когда мы запустим сервис по доставке еды для PHP разработчиков, вы будете одним из первых в списке на бета-тест (не еды, а сервиса).
— Получить долгожданную телеграмму гораздо приятнее, чем просто сообщение в мессенджере, не так ли?
Все текущие подписчики канала Пятиминутка PHP автоматически переводятся на рассылку телеграмм, следите за PHP новостями в ближайшем отделении почты!
Сегодня была опубликована версия 3.0 пакета spatie/data-transfer-object.
Сам по себе этот пакет, возможно, вам и не пригодится, но версия 3.0 примечательна изменениями в коде, который теперь по максимуму использует возможности PHP 8.
При переходе от версии 2 на версию 3 из пакета была удалена вся функциональность по проверке типов в Runtime в пользу системы типов и атрибутов PHP 8.
Рекомендую заглянуть в исходный код в поисках вдохновения и идей относительно продвинутого использования PHP 8.
http://amp.gs/crpJ
Сам по себе этот пакет, возможно, вам и не пригодится, но версия 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.
http://amp.gs/csjK
— Нет обязательного процесса Code Review для каждого коммита в исходники PHP, но ключевые разработчики просматривают поток коммитов
— Реализация новых RFC проходит code review ещё до голосования
— После взлома git.php.net сервер был отключён, способ взлома не понятен
— Переход на GitHub по хорошему должен был состояться ещё несколько лет назад. Этот случай форсировал переход
— На GitHub включена обязательная двухфакторная аутентификация
— На первом этапе не планируется использовать Pull Requests, чтобы не вносить слишком много изменений в рабочий процесс за раз
— Большинство контрибьютеров на данный момент не подписывают свои коммиты криптографической подписью, не плохо было бы внедрить этот процесс для всех
— Также планируется добавить автоматизированные проверки исходного кода, в первую очередь на использование небезопасных функций типа eval и появление base64 фрагментов в коде
— Полностью контролировать свою инфраструктуру раньше казалось хорошей идеей. Но это также требует внимания к обслуживанию, к настройке безопасности. Лучше доверить это профессионалам, в частности вместо поддержки своего git сервера использовать GitHub.
php[architect]
About PHP's Compromised Git Commit | php[architect]
PHP internals contributor Sara Golemon answers questions from a panel of php[architect] and PHP Ugly contributors about the recent git compromise that affected the PHP project and what they're doing about it. You can also watch a video of the roundtable with…
Хорошее описание работы Laravel Octane с подробностями и деталями, как происходит управление жизненным циклом приложения - много хаков и нюансов, нельзя так просто взять и отказаться от наследия «PHP умирает на каждом запросе» http://amp.gs/cMie
Порекомендую статью достаточно базового уровня, но при этом с хорошим и последовательным изложением: Laravel sessions vs PHP session
— В чём отличие cookie от сессий в PHP?
— Почему не стоит хранить логин в cookie и почему WordPress это делает?
— Время жизни cookie и время жизни сессии — в чём разница и как контролировать (
— Как Laravel взаимодействует с PHP сессиями через различные «драйвера»?
— Что общего между WordPress и Laravel Cookie Session Driver?
— Принцип «remember me»
http://amp.gs/cbks
— В чём отличие 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-проект в целое направление (Денис Юрьев)
🎤 Как структурировать код, чтобы не получить большой ком грязи (Валентин Удальцов)
🎤 Как переделать 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/
- 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:
"Просветительская деятельность, осуществляемая вне образовательных, научных и культурных организаций, не требует заключения вышеозначенного договора и может осуществляться самим субъектом просветительской деятельности."
Спасибо.
Собрал отличный квест на выходные.
Идём по ссылке. Читаем, как предлагается регулировать просветительскую деятельность. Убеждаемся, что в текущей редакции данный акт противоречит конституции Российской Федерации (29. 4).
"Каждый имеет право свободно искать, получать, передавать, производить и распространять информацию любым законным способом."
Логинимся через Госуслуги.
Нажимаем дизлайк.
Вносим предложение:
Пункт 4 данного акта в текущем виде противоречит ст. 29 Конституции РФ, предусматривающей право свободно делиться любой информацией, прямо не запрещённой Конституцией и федеральными законами.
Предлагаю дополнить пункт 4:
"Просветительская деятельность, осуществляемая вне образовательных, научных и культурных организаций, не требует заключения вышеозначенного договора и может осуществляться самим субъектом просветительской деятельности."
Спасибо.
Что произойдёт, если сделать unset свойству класса?
- Для не типизированных свойств попытка чтения вызовет лишь Warning и вернёт NULL;
- Но если свойство типизировано, то оно перейдёт в состояние uninitialized и попытка чтения вызовет Fatal error.
http://amp.gs/6KMW
- Для не типизированных свойств попытка чтения вызовет лишь Warning и вернёт NULL;
- Но если свойство типизировано, то оно перейдёт в состояние uninitialized и попытка чтения вызовет Fatal error.
http://amp.gs/6KMW
В PHP 8.0 можно передавать аргументы в функцию по имени (вне зависимости от позиции).
Но можно и комбинировать: сначала позиционные аргументы, затем именованные.
Настоящий взрыв мозга - это совместить с распаковкой из массива ...$args 🤯
http://amp.gs/63fd
Но можно и комбинировать: сначала позиционные аргументы, затем именованные.
Настоящий взрыв мозга - это совместить с распаковкой из массива ...$args 🤯
http://amp.gs/63fd