Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
11.3K subscribers
1.34K photos
20 videos
26 files
4.03K links
Все самое полезное для пхпшника в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/bca892d6

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
#дайджест новостей по 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
👍92
В этой статье обсуждается, как предотвратить дублирование отправок форм или запросов в приложениях Laravel с использованием атомарных блокировок. Атомарные блокировки помогают управлять распределенными блокировками, не беспокоясь о состязательности.

В примере рассматривается сценарий, в котором пользователь инициирует платежи через форму. Чтобы предотвратить нежелательные последствия, такие как обработка одного и того же запроса несколько раз, представлены атомарные блокировки. Реализация иллюстрируется в SendPaymentController.

Метод Cache::lock используется для создания атомарной блокировки. Он принимает три аргумента: имя блокировки, продолжительность ее действия и необязательный параметр владельца. Имя должно быть уникальным, чтобы избежать коллизий.

В примере SendPaymentController создается блокировка с уникальным именем ({$account->id}:payment:send), которая остается действительной в течение 10 секунд. Если блокировка получена, запрос обрабатывается, и пользователь перенаправляется с сообщением об успехе. Если блокировка не получена, пользователь перенаправляется с сообщением об ошибке.
7
Stressless — стресс-тестирование с помощью PEST

🔎В ходе LaraconAU представлены две значимые новинки: Laravel Pulse и плагин Stressless от Nuno Maduro, предназначенный для стресс-тестирования приложений.

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

Stressless использует инструмент k6, мощный инструмент с открытым исходным кодом для нагрузочного тестирования, чтобы оценить производительность API, микросервисов и веб-сайтов. Плагин интегрируется с Expectation API в Pest, обеспечивая отсутствие регрессий в стабильности и надежности приложения.
5
Невидимые столбцы MySQL и как их определить с помощью Laravel и Doctrine

В новых версиях MySQL, начиная с v8.0.23, появилась поддержка невидимых колонок. Невидимая колонка по умолчанию скрыта от запросов, но может быть доступна при явном обращении к ней. Ранее все колонки были видимыми.

Создать невидимую колонку можно простым добавлением атрибута INVISIBLE при создании таблицы
🌚54👍1
Что такое opcache? Как он работает?

OPcache (Optimized Cache) — это расширение для PHP, которое осуществляет кэширование скомпилированного байт-кода PHP для улучшения производительности выполнения скриптов.

OPcache работает в нескольких этапах:

Кэширование байт-кода: После компиляции скомпилированный байт-код кэшируется в памяти OPcache. Кэширование позволяет избежать необходимости компиляции скрипта при каждом его выполнении, что сокращает время обработки запросов.

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

OPcache также предоставляет дополнительные возможности для оптимизации производительности:

- Предзагрузка определяемых классов: OPcache может предзагрузить классы, определенные в скриптах, для ускорения их доступа и использования.

- Контроль за памятью: OPcache имеет механизм управления памятью, который позволяет наблюдать за использованием памяти скриптами и в случае необходимости автоматически очищать кэш.

- Управление версиями кэша: OPcache автоматически отслеживает изменения файлов скриптов и автоматически очищает кэшированные данные, в случае, если файл был изменен или удален, чтобы гарантировать актуальность данных.

#вопросы_с_собеседований
👍115😁1
Решение проблем CORS поддомена в Laravel Herd

Основной фокус статьи — решение проблем с CORS (Cross-Origin Resource Sharing) после миграции на Laravel Herd. Проблема заключается в отсутствии заголовка Access-Control-Allow-Origin для некоторых ресурсов, что приводит к блокировке загрузки JavaScript из-за политики Same-Origin.

Далее, автор предоставляет решение проблемы, предлагая добавить CORS-заголовки вручную. Это можно сделать через терминал с помощью команды или через интерфейс Herd. Автор также указывает на необходимость перезапуска Nginx после внесения изменений.
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 — Обнадеживающее аутро

#подкасты
👍3🔥2
👁Помогите «Библиотеке программиста» лучше узнать свою аудиторию

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

Пожалуйста, ответьте на несколько вопросов — это не займет у вас много времени, но поможет нам делать более полезные и интересные посты!
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2
На каком языке программирования вы пишете больше всего?
Anonymous Poll
2%
Python
2%
Go
1%
Java
3%
JavaScript
0%
TypeScript
0%
C/C++
1%
С#
0%
Swift/Kotlin
87%
PHP
3%
Другой
Типичный Swagger без гмо

Здесь рассматривается подход к оптимизации Symfony-контроллера с использованием типизации входных и выходных данных вместо подхода, основанного на Swagger и аннотациях. Автор предлагает переход от базового Request объекта к использованию DTO (Data Transfer Object) с помощью библиотеки prugala/symfony-request-dto.
🌚6👍4🤔1
ShipSaaS Logger

Laravel ShipSaasLogger позволяет отслеживать запросы между серверами, помечая каждый запрос уникальным идентификатором 🆔 для каждой записи в логах
🥱4👍21