PHP Portal | Программирование
4.66K subscribers
426 photos
20 videos
2 files
212 links
Присоединяйтесь к нашему каналу и погрузитесь в мир для PHP-разработчика

Связь: @devmangx
Download Telegram
Привет, Laravel-разработчики

Начиная с Laravel v13.15.0, во фасаде Cache появился новый метод rememberWithState().

По сути, этот метод выполняет две задачи.

Сначала он проверяет, существует ли указанный ключ в кеше. Если ключ найден, метод просто возвращает сохранённое значение. Если же ключ отсутствует, выполняется переданный callback, а результат сохраняется в кеше под этим ключом.

Это полностью соответствует поведению уже существующего метода remember().

Однако у rememberWithState() есть дополнительная возможность: помимо значения он также возвращает булево состояние (true или false), которое показывает, было ли значение уже в кеше или оно было сгенерировано только что.

Одним из основных сценариев использования может быть отправка клиенту кастомного HTTP-заголовка с информацией о состоянии кеша (cache hit/cache miss). Это позволяет явно указать, был ли ответ получен из кеша или сформирован заново.

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12
Масштабирование Laravel не обязательно означает переписывание всего приложения.

Обычно достаточно найти и устранить узкие места: медленные SQL-запросы, отсутствующие индексы, перегруженные очереди и другие проблемы производительности.

В этом руководстве Olamilekan показывает, как подготовить Laravel к работе под высокой нагрузкой в production-среде с помощью Redis, очередей, оптимизации базы данных и инструментов наблюдаемости (observability).

Статья: https://freecodecamp.org/news/how-to-scale-laravel-applications-for-high-traffic-production-systems/

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6😁2🔥1
Нашёл полезный пакет для Laravel!

sunchayn/nimbus — встроенный API-клиент для Laravel, работающий прямо в браузере.
https://github.com/sunchayn/nimbus

Автоматически анализирует ваши маршруты и правила валидации, чтобы генерировать интерактивные схемы запросов и предоставлять нативный интерфейс для тестирования, исследования и отладки API

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7
Laravel-совет

Знали ли вы, что аксессоры Eloquent могут возвращать небольшие value objects?

Пример: вместо того чтобы в каждом Blade-шаблоне, view или сервисе повторять fallback-логику вроде «name или email», можно один раз обернуть связанные колонки и вызывать методы, которые явно отражают намерение.

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤3🤔1
Совет по Laravel

DB::listen() цепляется за каждый SQL-запрос, который выполняет Laravel, и отдает SQL, биндинги и время выполнения. Достаточно зарегистрировать один listener в service provider, чтобы логировать медленные запросы или разбирать N+1-проблемы по всему приложению

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥3❤2
В Laravel 13.19 в хелпер str() добавили метод counted().

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

Ещё на одно место меньше, где нужно вручную учитывать единственное и множественное число.

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍1
Совет по Laravel

Сделайте даты Carbon в приложении неизменяемыми

Всего одна строка в AppServiceProvider — и $date->addDay() больше не будет незаметно менять исходный объект, который может использоваться в другом месте.

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2
PhpStorm 2026.2 уже доступен!

В релиз вошло множество обновлений, среди которых:
- Постоянные ссылки на файлы с помощью #[FileReference]
- Новое окно инструментов Laravel
- Улучшения для работы с Git worktree
- Встроенный GitHub Copilot


Подробности релиза:
https://jetbrains.com/phpstorm/whatsnew/

Особенно радует новое окно инструментов Laravel:
- общая информация о проекте и быстрый доступ к командам Artisan;
- просмотр локальных логов и логов из Sentry;
- отдельная вкладка Laravel Cloud для управления деплоями и переменными окружения.

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🔥4
В Laravel Cloud появился Secrets Manager 🎉

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

Значения шифруются прямо в браузере и после сохранения больше не отображаются. Функция доступна на всех тарифах.

Подробнее - в документации → https://cloud.laravel.com/docs/secrets

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Разработчики на Laravel, теперь тесты валидации email:dns больше не должны зависеть от реального DNS.

В Laravel 13.22 добавили возможность подменять DNS-запросы во время валидации.

Можно точно задать, какие DNS-записи должны возвращаться, и сделать тесты предсказуемыми - без внешних DNS-запросов.

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7
Совет по PHP

Перечисляйте в match() все варианты enum и не добавляйте ветку default. Если позже кто-то добавит новый вариант и забудет обновить match(), PHP выбросит UnhandledMatchError, а не молча пропустит его. Так отсутствующий вариант невозможно будет проигнорировать.

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15
PHP-совет

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

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍5
Разработчики на Laravel, Image API стал ещё лучше в Laravel 13.24.

Теперь доминирующий цвет изображения можно определить с помощью dominantColor().

Также добавлена поддержка HEIC и дополнительных форматов AVIF, что упрощает работу с изображениями с современных устройств.

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
Полезный пакет для Laravel!

MiranSalehi/mksine — основа CMS на Laravel + Filament 5: визуальный page builder, устанавливаемые плагины и темы, хуки, меню, медиабиблиотека, настройки, переводы и отдельная консоль Super Admin.

Это Composer-пакет для создания контентных сайтов и расширяемых админок без необходимости форкать Laravel.
https://github.com/miransalehi/mksine

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8
Совет по Laravel

DB::transaction() принимает второй аргумент – сколько раз повторно выполнить весь callback, если база вернула deadlock

Передайте его по имени – attempts: 3, и Laravel попробует выполнить транзакцию до 3 раз вместо того, чтобы сразу завалить запрос

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👎1
TypePHP вышел в open source раньше запланированного 🎉

Изначально релиз исходников был намечен на октябрь, но проект уже доступен на GitHub. Если тема интересна - стоит заглянуть.

https://github.com/swoole/typephp

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🔥5
Он не из наших

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
😁18❤2
PHP-совет

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

Пишите 1_000_000 вместо 1000000 - так значение легче читать и не приходится считать нули.

PHP убирает подчёркивания на этапе компиляции, поэтому само число остаётся точно таким же

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤3
В Laravel 13.30 появился удобный метод для Collection

Использовали chunkWhile(), чтобы просто сгруппировать подряд идущие элементы с одинаковым значением?

Теперь это проще делать через chunkBy().

И в отличие от groupBy(), он сохраняет отдельные чанки, если то же значение встречается снова позже.

Использовали такой паттерн раньше?

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔5❤2