Во время написания тестов для вашего приложения вы можете столкнуться с ситуацией, когда нужно проверить поведение кода в определённый момент в будущем или в прошлом.
Не переживайте, Laravel предоставляет удобные методы, такие как
👉 @PHPgx
Не переживайте, Laravel предоставляет удобные методы, такие как
travel(), travelTo() и travelBack(), которые позволяют «перемещаться во времени» внутри теста и проверять поведение вашего кода соответствующим образомPlease open Telegram to view this post
VIEW IN TELEGRAM
👍4❤1
defer() отлично подходит для показа уведомлений.Примерно как в X-уведомлениях: когда пользователь кликает посмотреть уведомления, вы фетчите их и отдаёте как непрочитанные, а сразу после того, как ответ долетает до пользователя, помечаете их как прочитанные. Чисто
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8
Мониторинг ещё никогда не был таким простым
Тебе даже не нужно поднимать сложные стеки и компоненты - просто установи пакет
- загрузку CPU
- использование дискового пространства
- подключения к базе данных
- Redis
- и многое другое
👉 @PHPgx
Тебе даже не нужно поднимать сложные стеки и компоненты - просто установи пакет
spatie/laravel-health, и ты получишь:- загрузку CPU
- использование дискового пространства
- подключения к базе данных
- Redis
- и многое другое
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤5
В Laravel есть несколько классных хелперов для работы с Request
Вот некоторые из самых интересных и наименее известных из них
👉 @PHPgx
Вот некоторые из самых интересных и наименее известных из них
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍5
Новые строковые методы в Laravel 12.21
Добавлены новые хелперы для строк:
Сразу напрашиваются два варианта использования:
Упрощение отрицательных условий в
Проверка расширений файлов
👉 @PHPgx
Добавлены новые хелперы для строк:
doesntStartWith() и doesntEndWith().Сразу напрашиваются два варианта использования:
Упрощение отрицательных условий в
ifПроверка расширений файлов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2😁1
Вы, конечно, знакомы с middleware, которые идут вместе с Laravel
Но я часто замечаю, что многим начинающим сложно понять разницу между Before (Request) и After (Response) middleware.
По сути, различие между ними зависит от того, когда вызывается колбэк-функция
Если ваше middleware выполняет какие-то действия до вызова
С другой стороны, если оно выполняет какие-то действия после вызова
👉 @PHPgx
Но я часто замечаю, что многим начинающим сложно понять разницу между Before (Request) и After (Response) middleware.
По сути, различие между ними зависит от того, когда вызывается колбэк-функция
$next.Если ваше middleware выполняет какие-то действия до вызова
$next, это Request (Before) middleware, которое отрабатывает до вызова контроллера.С другой стороны, если оно выполняет какие-то действия после вызова
$next, то это Response (After) middleware, которое выполняется после того, как контроллер уже был выполненPlease open Telegram to view this post
VIEW IN TELEGRAM
❤7
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤3🔥2👀1
Laravel 12.37 добавляет новый метод insert() для фабрик моделей
Теперь можно засевать тысячи записей одним SQL-запросом
- События моделей и наблюдатели не вызываются, работает как сырой insert.
Идеально подходит для тестирования, сидирования и высоконагруженных сценариев💡
👉 @PHPgx
Теперь можно засевать тысячи записей одним SQL-запросом
- События моделей и наблюдатели не вызываются, работает как сырой insert.
Идеально подходит для тестирования, сидирования и высоконагруженных сценариев
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍4❤3
Для всех, кто говорит: «Зачем разработчики Laravel изобретают колесо заново?» 👀
Потому что наши колёса - со стилем, читаемостью и скоростью😎
PHP просто работает. Laravel течёт
👉 @PHPgx
Потому что наши колёса - со стилем, читаемостью и скоростью
PHP просто работает. Laravel течёт
Please open Telegram to view this post
VIEW IN TELEGRAM
😁11👍7❤5🔥1🌭1
Начиная с Laravel 12.36, можно использовать метод
👉 @PHPgx
File::allDirectories, чтобы получить массив всех вложенных директорий (включая поддиректории) в указанном путиPlease open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥2❤1👎1
Совет по таблицам filamentphp
Группы по дате
Когда вы используете колонку с типом date-time для группировки, может понадобиться сгруппировать записи только по дате, игнорируя время.
Для этого используйте метод
Документация: https://filamentphp.com/docs/4.x/tables/grouping#date-groups
👉 @PHPgx
Группы по дате
Когда вы используете колонку с типом date-time для группировки, может понадобиться сгруппировать записи только по дате, игнорируя время.
Для этого используйте метод
date() у объекта Group.Документация: https://filamentphp.com/docs/4.x/tables/grouping#date-groups
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3🌭1
Новая валидация в Laravel 12.21
Добавлено новое правило
👉 @PHPgx
Добавлено новое правило
in_array_keys, которое проверяет наличие определённых ключей в массиве. Больше не нужно вручную вызывать array_key_exists.Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥6❤1🏆1
Тестирование в Laravel 12.28 стало быстрее
Теперь можно кэшировать роуты и конфиг один раз за прогон тестов, вместо того чтобы пересобирать их для каждого теста.
Отличный прирост производительности для приложений с большим количеством роутов или тяжёлым конфигом
Работает как в PHPUnit, так и в Pest
👉 @PHPgx
Теперь можно кэшировать роуты и конфиг один раз за прогон тестов, вместо того чтобы пересобирать их для каждого теста.
Отличный прирост производительности для приложений с большим количеством роутов или тяжёлым конфигом
Работает как в PHPUnit, так и в Pest
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🔥3
Forwarded from IT Portal
PHP живее всех живых: вышел релиз 8.5
В нём: оператор пайпа (|>), расширение для работы с URI, апгрейды констант и ещё куча годноты.
Подробнее тут
@IT_Portal
В нём: оператор пайпа (|>), расширение для работы с URI, апгрейды констант и ещё куча годноты.
Подробнее тут
@IT_Portal
🔥22👍8❤4
Только спустя столько лет работы с Laravel я узнал, что пустой вызов
Клёво😂
👉 @PHPgx
dd() выводит на страницу эмодзи баг… Клёво
Please open Telegram to view this post
VIEW IN TELEGRAM
😁36👍6
Вот тебе совет по Laravel
Race condition’ы не выбрасывают исключений - они тихо портят данные.
Если ты обновляешь несколько моделей (особенно в платёжных сценариях!!!), оберни это в транзакцию, залочь строки и выполняй сайд-эффекты после коммита. Будущий ты скажет спасибо
👉 @PHPgx
Race condition’ы не выбрасывают исключений - они тихо портят данные.
Если ты обновляешь несколько моделей (особенно в платёжных сценариях!!!), оберни это в транзакцию, залочь строки и выполняй сайд-эффекты после коммита. Будущий ты скажет спасибо
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍8🔥3
Совет по filamentphp
Не полагайтесь на официальную страницу с плагинами, когда речь идёт об актуальной информации по совместимости версий.
Доверяйте GitHub-репозиторию пакета.
Я видел, что на сайте некоторые пакеты помечены как «не совместимые с v4», но если посмотреть на GitHub - они вполне поддерживают v4.
Пример: https://filamentphp.com/plugins/diogogpinto-auth-ui-enhancer
👉 @PHPgx
Не полагайтесь на официальную страницу с плагинами, когда речь идёт об актуальной информации по совместимости версий.
Доверяйте GitHub-репозиторию пакета.
Я видел, что на сайте некоторые пакеты помечены как «не совместимые с v4», но если посмотреть на GitHub - они вполне поддерживают v4.
Пример: https://filamentphp.com/plugins/diogogpinto-auth-ui-enhancer
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍2
Быстрый cовет по Laravel
Laravel может отправлять тебе email-уведомления, когда важная консольная команда падает. Просто используй хелпер
👉 @PHPgx
Laravel может отправлять тебе email-уведомления, когда важная консольная команда падает. Просто используй хелпер
emailOutputOnFailure().Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11❤3
Кэшировать огромные массивы данных стало проще.
Этот новый пакет делает массу оптимизаций для работы с большим объёмом данных в кэше:
- автоматически определяет крупные payload’ы кэша
- сжимает данные
- разбивает большие массивы или объекты на чанки
- использует умную сериализацию
Знакомьтесь: пакет
👉 @PHPgx
Этот новый пакет делает массу оптимизаций для работы с большим объёмом данных в кэше:
- автоматически определяет крупные payload’ы кэша
- сжимает данные
- разбивает большие массивы или объекты на чанки
- использует умную сериализацию
Знакомьтесь: пакет
iazaran/smart-cache.Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍7