В продакшене всегда нужно принудительно использовать HTTPS. Вот как это сделать в Laravel:
- Убедитесь, что все генерируемые ссылки используют https (настраивается через фасад URL)
- Настройте редирект пользователей с http на https (с помощью middleware)
👉 @PHPgx
- Убедитесь, что все генерируемые ссылки используют https (настраивается через фасад URL)
- Настройте редирект пользователей с http на https (с помощью middleware)
Please open Telegram to view this post
VIEW IN TELEGRAM
👎6❤4👍3
Если вы хотите организовать свой Laravel-проект по модульной структуре, есть два хорошо известных пакета:
-
-
В чём ключевые различия?
Я бы выделил два момента:
🔹 Пакет nwidart при использовании команды
🔹 Пакет internachi регистрирует модули практически как Laravel-пакеты, благодаря чему их можно переиспользовать в других проектах. В то время как nwidart рассматривает модули как внутренние мини-приложения Laravel.
Так что оба решения хорошие, выбор зависит от конкретного сценария использования
👉 @PHPgx
-
nwidart/laravel-modules-
internachi/modularВ чём ключевые различия?
Я бы выделил два момента:
module:make генерирует больше файлов, включая нестандартные и довольно «мнение-ориентированные» файлы, создаваемые командами вроде module:make-model и подобными. Поэтому, если вам не нравится предлагаемая структура, придётся потратить время на правки или удаление лишнего. Пакет internachi генерирует минимально необходимый набор файлов.Так что оба решения хорошие, выбор зависит от конкретного сценария использования
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍4
Во время написания тестов для вашего приложения вы можете столкнуться с ситуацией, когда нужно проверить поведение кода в определённый момент в будущем или в прошлом.
Не переживайте, 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