Потратил часы на отладку, чтобы тебе не пришлось:
Если колонка в SQL допускает NULL и ты используешь
Урок, выученный самым тяжёлым способом. 😅
👉 @PHPgx
Если колонка в SQL допускает NULL и ты используешь
WHERE NOT, обязательно добавь OR IS NULL.NULL != значение — это не true, это unknown.Урок, выученный самым тяжёлым способом. 😅
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤3🔥1
Ищете API-клиенты, альтернативы Postman?
Вот три инструмента, которые особенно нравятся разработчикам:
🔹 HTTPie — подсветка синтаксиса и удобное переключение между CLI и GUI
🔹 Yaak — организация рабочих пространств и низкое потребление памяти
🔹 Insomnia — поддержка GraphQL и чистый интерфейс
А каким API-инструментом пользуетесь вы?
👉 @PHPgx
Вот три инструмента, которые особенно нравятся разработчикам:
А каким API-инструментом пользуетесь вы?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2
Привет, разработчики Laravel
Мы используем сидеры базы данных для генерации тестовых/фейковых данных, с которыми будет работать наше приложение.
Но что, если вам нужно запускать эти сидеры внутри тестов?
Не беспокойтесь — базовый тестовый класс Laravel использует трейт
Вот пример кода, демонстрирующий, как можно засеять всю базу данных или выполнить отдельный сидер.
👉 @PHPgx
Мы используем сидеры базы данных для генерации тестовых/фейковых данных, с которыми будет работать наше приложение.
Но что, если вам нужно запускать эти сидеры внутри тестов?
Не беспокойтесь — базовый тестовый класс Laravel использует трейт
InteractsWithDatabase, который предоставляет метод для запуска сидирования данных внутри тестов.Вот пример кода, демонстрирующий, как можно засеять всю базу данных или выполнить отдельный сидер.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍4
В Laravel появилась новая функция — мемоизация кэша
Теперь с помощью метода
Это позволяет временно сохранять значения, извлечённые из кэша, прямо в памяти во время одного запроса или выполнения задания. В результате — никаких повторных обращений к кэшу в рамках одного выполнения.
Подробнее в документации: https://laravel.com/docs/12.x/cache#cache-memoization
👉 @PHPgx
Теперь с помощью метода
Cache::memo можно обернуть любое хранилище кэша в обёртку с мемоизацией. Это позволяет временно сохранять значения, извлечённые из кэша, прямо в памяти во время одного запроса или выполнения задания. В результате — никаких повторных обращений к кэшу в рамках одного выполнения.
Подробнее в документации: https://laravel.com/docs/12.x/cache#cache-memoization
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤4
В новой версии PhpStorm появились крутые обновления:
🟣 Улучшения в настройке Xdebug и WordPress.
🟣 Автодополнение для
🟣 Поддержку вложенных переменных в
…а также множество других полезных функций и улучшений: https://jb.gg/phpstorm-251
👉 @PHPgx
@phpstan-type и @phpstan-import-type..env файлах.…а также множество других полезных функций и улучшений: https://jb.gg/phpstorm-251
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥3
Выпущена документация для нового fluent-класса URI в Laravel, который значительно упрощает анализ и манипулирование URI.
Теперь можно даже возвращать экземпляры этого класса из маршрутов, чтобы автоматически генерировать ответы с перенаправлением на указанный адрес.
Документация Laravel 12.x – URI
👉 @PHPgx
Теперь можно даже возвращать экземпляры этого класса из маршрутов, чтобы автоматически генерировать ответы с перенаправлением на указанный адрес.
Документация Laravel 12.x – URI
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍4🔥2
Laravel совет: Отслеживайте неудачные задания
Приходилось ли вам когда-либо следить за неудачными заданиями и получать уведомления, когда это происходит? Метод
👉 @PHPgx
Приходилось ли вам когда-либо следить за неудачными заданиями и получать уведомления, когда это происходит? Метод
failing позволяет сделать именно этоPlease open Telegram to view this post
VIEW IN TELEGRAM
❤4👍2😁2
Вы когда-нибудь сталкивались с проблемами или головной болью при попытке поддерживать документацию API в актуальном состоянии во время разработки?
Не переживайте — позвольте представить Scramble — генератор документации OpenAPI (Swagger) для Laravel.
Этот пакет после установки автоматически генерирует документацию для ваших API, анализируя ваш код.
Он работает лучше всего, когда вы используете классы Form Request и API Resources в своих API.
Этот пакет умеет очень многое
Вот несколько базовых шагов для установки пакета и запуска документации:
👉 @PHPgx
Не переживайте — позвольте представить Scramble — генератор документации OpenAPI (Swagger) для Laravel.
Этот пакет после установки автоматически генерирует документацию для ваших API, анализируя ваш код.
Он работает лучше всего, когда вы используете классы Form Request и API Resources в своих API.
Этот пакет умеет очень многое
Вот несколько базовых шагов для установки пакета и запуска документации:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤1
Совет по Laravel
Когда вы развёртываете изменения, пользователи могут столкнуться с недоступностью сайта.
Вы можете отобразить общую страницу «обслуживания», запустив команду
Также флаг
Наконец, вы можете кастомизировать страницу обслуживания, определив свой шаблон в
Подробнее в документации:
https://laravel.com/docs/12.x/configuration#maintenance-mode
👉 @PHPgx
Когда вы развёртываете изменения, пользователи могут столкнуться с недоступностью сайта.
Вы можете отобразить общую страницу «обслуживания», запустив команду
php artisan down перед деплоем и php artisan up после него.Также флаг
--refresh=15 будет автоматически обновлять эту страницу каждые 15 секунд, чтобы проверить, остаётся ли сайт в режиме обслуживания. Если нет — будет отображена обычная страница проекта.Наконец, вы можете кастомизировать страницу обслуживания, определив свой шаблон в
resources/views/errors/503.blade.php.Подробнее в документации:
https://laravel.com/docs/12.x/configuration#maintenance-mode
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍1
Новое в Laravel 12: больше не нужно вызывать
Вместо этого используйте новые методы
Теперь Laravel автоматически определяет соответствующие классы ресурсов
Ссылка на документацию: https://laravel.com/docs/12.x/eloquent-resources
👉 @PHPgx
new Resource() или Resource::collection().Вместо этого используйте новые методы
toResource() и toResourceCollection().Теперь Laravel автоматически определяет соответствующие классы ресурсов
Ссылка на документацию: https://laravel.com/docs/12.x/eloquent-resources
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍4🔥3
Ошибки неизбежны в любом приложении — они всегда будут возникать на вашем пути.
Поэтому все языки программирования предоставляют трассировку стека и сообщение об ошибке, чтобы вы могли отладить код и выяснить коренную причину проблемы.
Но иногда такие сообщения могут непреднамеренно раскрывать конфиденциальные данные вашего приложения.
Именно по этой причине в PHP был введён атрибут
Смотрите пример выше
👉 @PHPgx
Поэтому все языки программирования предоставляют трассировку стека и сообщение об ошибке, чтобы вы могли отладить код и выяснить коренную причину проблемы.
Но иногда такие сообщения могут непреднамеренно раскрывать конфиденциальные данные вашего приложения.
Именно по этой причине в PHP был введён атрибут
SensitiveParameter, чтобы вы могли скрыть такие параметры из трассировки стека и логов ошибок.Смотрите пример выше
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤3
В сегодняшнем релизе Laravel появилась возможность отображать атрибуты Eloquent, приведённые к коллекции, в конкретный объект
👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🤔2
Совет по Laravel
Используйте
Шаблон URL будет таким: /photos/{photo}/comments/{comment}
Ссылка на документацию: https://laravel.com/docs/12.x/controllers#restful-nested-resources
👉 @PHPgx
Используйте
Route::resource('photos.comments', CommentController::class), чтобы автоматически сгенерировать ВЛОЖЕННЫЕ маршруты ресурсов.Шаблон URL будет таким: /photos/{photo}/comments/{comment}
Ссылка на документацию: https://laravel.com/docs/12.x/controllers#restful-nested-resources
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤1
Новый пакет: Laravel Console Timer
https://github.com/mc0de/console-timer
Простой трейт, который добавляет отслеживание времени выполнения к вашим консольным командам в Laravel.
Полезен для:
🔹 Отслеживания времени выполнения команд
🔹 Измерения времени выполнения отдельных операций внутри команд
👉 @PHPgx
https://github.com/mc0de/console-timer
Простой трейт, который добавляет отслеживание времени выполнения к вашим консольным командам в Laravel.
Полезен для:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤4
В PHP 8.5 появятся две новые функции для работы с массивами —
Подробнее: https://amitmerchant.com/array-first-last-php-85/
👉 @PHPgx
array_first() и array_last() — для удобного получения соответственно первого и последнего значения массиваПодробнее: https://amitmerchant.com/array-first-last-php-85/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤18🔥6👍5👎1