#дайджест новостей по PHP за неделю:
🔎Вышел PHP 8.3!
🔎PhpStorm теперь поддерживает PHP 8.3 — На сегодняшний день PhpStorm обеспечивает полную поддержку всех улучшений PHP 8.3.
🔎Выпущена версия Laravel 10.32 — На этой неделе команда Laravel выпустила версию 10.32 с новыми директивами условного нажатия Blade и многим другим.
🔎Выпущена Symfony 7.0.0-RC1 — Только что выпущена Symfony 7.0.0-RC1. Вот список наиболее важных изменений с версии 7.0.0-BETA3.
🔎 Неделя Symfony #881 (13–19 ноября 2023 г.) — В этой сборке вы можете обнаружить несколько улучшений в различных подсистемах.
🔎PhpStorm 2023.3 Beta
🔎Вышел PHP 8.3!
🔎PhpStorm теперь поддерживает PHP 8.3 — На сегодняшний день PhpStorm обеспечивает полную поддержку всех улучшений PHP 8.3.
🔎Выпущена версия Laravel 10.32 — На этой неделе команда Laravel выпустила версию 10.32 с новыми директивами условного нажатия Blade и многим другим.
🔎Выпущена Symfony 7.0.0-RC1 — Только что выпущена Symfony 7.0.0-RC1. Вот список наиболее важных изменений с версии 7.0.0-BETA3.
🔎 Неделя Symfony #881 (13–19 ноября 2023 г.) — В этой сборке вы можете обнаружить несколько улучшений в различных подсистемах.
🔎PhpStorm 2023.3 Beta
👍9❤2
В этой статье обсуждается, как предотвратить дублирование отправок форм или запросов в приложениях Laravel с использованием атомарных блокировок. Атомарные блокировки помогают управлять распределенными блокировками, не беспокоясь о состязательности.
В примере рассматривается сценарий, в котором пользователь инициирует платежи через форму. Чтобы предотвратить нежелательные последствия, такие как обработка одного и того же запроса несколько раз, представлены атомарные блокировки. Реализация иллюстрируется в SendPaymentController.
Метод Cache::lock используется для создания атомарной блокировки. Он принимает три аргумента: имя блокировки, продолжительность ее действия и необязательный параметр владельца. Имя должно быть уникальным, чтобы избежать коллизий.
В примере SendPaymentController создается блокировка с уникальным именем ({$account->id}:payment:send), которая остается действительной в течение 10 секунд. Если блокировка получена, запрос обрабатывается, и пользователь перенаправляется с сообщением об успехе. Если блокировка не получена, пользователь перенаправляется с сообщением об ошибке.
В примере рассматривается сценарий, в котором пользователь инициирует платежи через форму. Чтобы предотвратить нежелательные последствия, такие как обработка одного и того же запроса несколько раз, представлены атомарные блокировки. Реализация иллюстрируется в SendPaymentController.
Метод Cache::lock используется для создания атомарной блокировки. Он принимает три аргумента: имя блокировки, продолжительность ее действия и необязательный параметр владельца. Имя должно быть уникальным, чтобы избежать коллизий.
В примере SendPaymentController создается блокировка с уникальным именем ({$account->id}:payment:send), которая остается действительной в течение 10 секунд. Если блокировка получена, запрос обрабатывается, и пользователь перенаправляется с сообщением об успехе. Если блокировка не получена, пользователь перенаправляется с сообщением об ошибке.
Daryl Legion
Preventing Duplicate Form Submissions Using Atomic Locks
Prevent duplicate form submissions and job dispatching using Laravel's atomic locks.
❤7
Stressless — стресс-тестирование с помощью PEST
🔎В ходе LaraconAU представлены две значимые новинки: Laravel Pulse и плагин Stressless от Nuno Maduro, предназначенный для стресс-тестирования приложений.
❗Стресс-тестирование в области тестирования программного обеспечения направлено на оценку производительности приложения или системы при экстремальных нагрузках. Этот вид тестирования включает в себя создание сценариев, специально разработанных для превышения типичных операционных пределов системы.
Stressless использует инструмент k6, мощный инструмент с открытым исходным кодом для нагрузочного тестирования, чтобы оценить производительность API, микросервисов и веб-сайтов. Плагин интегрируется с Expectation API в Pest, обеспечивая отсутствие регрессий в стабильности и надежности приложения.
🔎В ходе LaraconAU представлены две значимые новинки: Laravel Pulse и плагин Stressless от Nuno Maduro, предназначенный для стресс-тестирования приложений.
❗Стресс-тестирование в области тестирования программного обеспечения направлено на оценку производительности приложения или системы при экстремальных нагрузках. Этот вид тестирования включает в себя создание сценариев, специально разработанных для превышения типичных операционных пределов системы.
Stressless использует инструмент k6, мощный инструмент с открытым исходным кодом для нагрузочного тестирования, чтобы оценить производительность API, микросервисов и веб-сайтов. Плагин интегрируется с Expectation API в Pest, обеспечивая отсутствие регрессий в стабильности и надежности приложения.
Introducing Stressless - Stress Testing with PEST
This week was full of treats for Laravel developers due to LaraconAU. After the launch of Laravel Pulse, Nuno Maduro announced a new plugin called...
❤5
Невидимые столбцы MySQL и как их определить с помощью Laravel и Doctrine
В новых версиях MySQL, начиная с v8.0.23, появилась поддержка невидимых колонок. Невидимая колонка по умолчанию скрыта от запросов, но может быть доступна при явном обращении к ней. Ранее все колонки были видимыми.
Создать невидимую колонку можно простым добавлением атрибута INVISIBLE при создании таблицы
В новых версиях MySQL, начиная с v8.0.23, появилась поддержка невидимых колонок. Невидимая колонка по умолчанию скрыта от запросов, но может быть доступна при явном обращении к ней. Ранее все колонки были видимыми.
Создать невидимую колонку можно простым добавлением атрибута INVISIBLE при создании таблицы
DEV Community
MySQL invisible columns and how to define it with Laravel and Doctrine
Many developers don't know that MySQL now has support for invisible columns. But what exactly is an...
🌚5❤4👍1
Что такое opcache? Как он работает?
OPcache (Optimized Cache) — это расширение для PHP, которое осуществляет кэширование скомпилированного байт-кода PHP для улучшения производительности выполнения скриптов.
OPcache работает в нескольких этапах:
Кэширование байт-кода: После компиляции скомпилированный байт-код кэшируется в памяти OPcache. Кэширование позволяет избежать необходимости компиляции скрипта при каждом его выполнении, что сокращает время обработки запросов.
Повторное использование кэша: При последующих запросах к этому скрипту, PHP загружает его скомпилированный байт-код из кэша OPcache, обеспечивая быстрое выполнение без необходимости повторной компиляции.
OPcache также предоставляет дополнительные возможности для оптимизации производительности:
- Предзагрузка определяемых классов: OPcache может предзагрузить классы, определенные в скриптах, для ускорения их доступа и использования.
- Контроль за памятью: OPcache имеет механизм управления памятью, который позволяет наблюдать за использованием памяти скриптами и в случае необходимости автоматически очищать кэш.
- Управление версиями кэша: OPcache автоматически отслеживает изменения файлов скриптов и автоматически очищает кэшированные данные, в случае, если файл был изменен или удален, чтобы гарантировать актуальность данных.
#вопросы_с_собеседований
OPcache (Optimized Cache) — это расширение для PHP, которое осуществляет кэширование скомпилированного байт-кода PHP для улучшения производительности выполнения скриптов.
OPcache работает в нескольких этапах:
Кэширование байт-кода: После компиляции скомпилированный байт-код кэшируется в памяти OPcache. Кэширование позволяет избежать необходимости компиляции скрипта при каждом его выполнении, что сокращает время обработки запросов.
Повторное использование кэша: При последующих запросах к этому скрипту, PHP загружает его скомпилированный байт-код из кэша OPcache, обеспечивая быстрое выполнение без необходимости повторной компиляции.
OPcache также предоставляет дополнительные возможности для оптимизации производительности:
- Предзагрузка определяемых классов: OPcache может предзагрузить классы, определенные в скриптах, для ускорения их доступа и использования.
- Контроль за памятью: OPcache имеет механизм управления памятью, который позволяет наблюдать за использованием памяти скриптами и в случае необходимости автоматически очищать кэш.
- Управление версиями кэша: OPcache автоматически отслеживает изменения файлов скриптов и автоматически очищает кэшированные данные, в случае, если файл был изменен или удален, чтобы гарантировать актуальность данных.
#вопросы_с_собеседований
👍11❤5😁1
Решение проблем CORS поддомена в Laravel Herd
Основной фокус статьи — решение проблем с CORS (Cross-Origin Resource Sharing) после миграции на Laravel Herd. Проблема заключается в отсутствии заголовка Access-Control-Allow-Origin для некоторых ресурсов, что приводит к блокировке загрузки JavaScript из-за политики Same-Origin.
Далее, автор предоставляет решение проблемы, предлагая добавить CORS-заголовки вручную. Это можно сделать через терминал с помощью команды или через интерфейс Herd. Автор также указывает на необходимость перезапуска Nginx после внесения изменений.
Основной фокус статьи — решение проблем с CORS (Cross-Origin Resource Sharing) после миграции на Laravel Herd. Проблема заключается в отсутствии заголовка Access-Control-Allow-Origin для некоторых ресурсов, что приводит к блокировке загрузки JavaScript из-за политики Same-Origin.
Далее, автор предоставляет решение проблемы, предлагая добавить CORS-заголовки вручную. Это можно сделать через терминал с помощью команды или через интерфейс Herd. Автор также указывает на необходимость перезапуска Nginx после внесения изменений.
vanpachtenbeke.com
Solving subdomain CORS issues on Laravel Herd
I have been a satisfied Valet user for the past four years, but my recent frustrations with Homebrew have led me to look into Laravel Herd.
❤4🥱3🌚2
Forwarded from Библиотека программиста | программирование, кодинг, разработка
💻 Комфортный сетап и качественное рабочее пространство — это то, что прямо пропорционально влияет на вашу продуктивность. Кто-то тратит на всё это очень большие деньги, а кому-то вообще по барабану, в какой монитор смотреть, на чём сидеть и на что нажимать.
В любом случае эта тема важная и интересная. Смотрите подкаст «Мы обречены» о том, как собрать идеальное рабочее место для программиста:
📺 02:58 — Представление гостей
📺 05:31 — Значение и смысл личного и рабочего комфорта
📺 16:23 — Поднимающийся стол
📺 23:16 — Стул
📺 30:23 — Монитор
📺 45:23 — Клавиатура
📺 1:08:51 — Мышка
📺 1:15:28 — Странные бесполезные устройства
📺 1:21:33 — Умный дом
📺 1:47:52 — Важность комфорта для продуктивности
📺 1:58:07 — С чего начать в осваивании комфорта
📺 2:02:32 — Обнадеживающее аутро
#подкасты
В любом случае эта тема важная и интересная. Смотрите подкаст «Мы обречены» о том, как собрать идеальное рабочее место для программиста:
📺 02:58 — Представление гостей
📺 05:31 — Значение и смысл личного и рабочего комфорта
📺 16:23 — Поднимающийся стол
📺 23:16 — Стул
📺 30:23 — Монитор
📺 45:23 — Клавиатура
📺 1:08:51 — Мышка
📺 1:15:28 — Странные бесполезные устройства
📺 1:21:33 — Умный дом
📺 1:47:52 — Важность комфорта для продуктивности
📺 1:58:07 — С чего начать в осваивании комфорта
📺 2:02:32 — Обнадеживающее аутро
#подкасты
👍3🔥2
Друзья, мы хотим делать для вас самый лучший контент — и для этого нам нужно узнать вас получше.
Пожалуйста, ответьте на несколько вопросов — это не займет у вас много времени, но поможет нам делать более полезные и интересные посты!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2
Ваш возраст:
Anonymous Poll
2%
Менее 18 лет
16%
18-24 года
47%
25-34 года
27%
35-44 года
5%
45-54 года
0%
55-64 года
2%
65 лет и старше
❤1
🌚5
В каком городе вы живете последние 3 месяца?
Anonymous Poll
11%
Москва
7%
Санкт-Петербург
4%
Краснодар
1%
Нижний Новгород
4%
Минск
2%
Екатеринбург
4%
Киев
2%
Львов
3%
Алматы
61%
Другое
В какой стране вы живете последние 3 месяца?
Anonymous Poll
58%
Россия
10%
Украина
6%
Беларусь
4%
Казахстан
1%
Польша
1%
Кыргызстан
5%
Узбекистан
1%
США
1%
Грузия
13%
Другое
🥱6👍2
Ваш доход в месяц после налогов:
Anonymous Poll
12%
до $500
7%
от $501 до $800
10%
от $801 до $1100
23%
от $1101 до $2000
22%
от $2001 до $3000
13%
от $3001 до $4000
4%
от $4001 до $5001
3%
от $5001 до $6000
6%
от $6001
👍4😁3🥱2
Какой у вас коммерческий опыт работы в IT?
Anonymous Poll
42%
от 6 лет
28%
от 3 до 6 лет включительно
18%
от 1 до 3 лет включительно
5%
до 1 года
8%
нет опыта
👍1🔥1
На каком языке программирования вы пишете больше всего?
Anonymous Poll
2%
Python
2%
Go
1%
Java
3%
JavaScript
0%
TypeScript
0%
C/C++
1%
С#
0%
Swift/Kotlin
87%
PHP
3%
Другой
Какая ваша специализация в IT?
Anonymous Poll
66%
Backend
1%
Frontend
27%
Fullstack
0%
Mobile
0%
Desktop
1%
DevOps/Sysadmin
0%
QA
0%
Data Science
1%
Кибербезопасность
4%
Другое
❤3
Какой грейд у вас на работе?
Anonymous Poll
4%
Стажер
11%
Джуниор
41%
Миддл
22%
Сеньор
11%
Тимлид
3%
Архитектор
3%
СТО
5%
я не в IT
🥱9👍2🔥1
Типичный Swagger без гмо
Здесь рассматривается подход к оптимизации Symfony-контроллера с использованием типизации входных и выходных данных вместо подхода, основанного на Swagger и аннотациях. Автор предлагает переход от базового Request объекта к использованию DTO (Data Transfer Object) с помощью библиотеки prugala/symfony-request-dto.
Здесь рассматривается подход к оптимизации Symfony-контроллера с использованием типизации входных и выходных данных вместо подхода, основанного на Swagger и аннотациях. Автор предлагает переход от базового Request объекта к использованию DTO (Data Transfer Object) с помощью библиотеки prugala/symfony-request-dto.
Хабр
Типичный Swagger без гмо
Кто из нас не был одурманен сказками про свагер? Мол, добавь эту волшебную штуку — да заживешь! Но плата за магию — зеленое болото нотаций. А нельзя ли обойтись только типизацией самого php? (Спойлер:...
🌚6👍4🤔1
ShipSaaS Logger
Laravel ShipSaasLogger позволяет отслеживать запросы между серверами, помечая каждый запрос уникальным идентификатором 🆔 для каждой записи в логах
Laravel ShipSaasLogger позволяет отслеживать запросы между серверами, помечая каждый запрос уникальным идентификатором 🆔 для каждой записи в логах
GitHub
GitHub - shipsaas/shipsaas-logger: Laravel ShipSaas Logger enables the tracing of requests across servers by marking each request…
Laravel ShipSaas Logger enables the tracing of requests across servers by marking each request with a unique ID. Skyrocket the production debugging. - shipsaas/shipsaas-logger
🥱4👍2❤1