Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤4
Теперь PHPUnit по умолчанию использует in-memory SQLite базу данных для тестов
Ранее эти настройки в файле
👉 @PHPgx
Ранее эти настройки в файле
phpunit.xml были закомментированы. Теперь они будут активны по умолчаниюPlease open Telegram to view this post
VIEW IN TELEGRAM
❤9👍3🔥1
1.
git init – инициализация нового Git-репозитория в текущем каталоге.2.
git add – добавление изменений в индекс (staging area).3.
git commit – фиксация проиндексированных изменений с комментарием. 4.
git push – отправка локальных изменений в удалённый репозиторий.5.
git pull – получение изменений из удалённого репозитория и их слияние с локальной веткой.6.
git remote – добавление, просмотр или удаление удалённого репозитория.7.
git branch – вывод списка веток, создание новой ветки и переключение на неё.8.
git fetch – загрузка изменений из удалённого репозитория без их слияния.9.
git checkout – переключение на указанную ветку.10.
git merge – слияние указанной ветки с текущей.11.
git status – отображение текущего состояния репозитория и неподтверждённых изменений.12.
git reset – откат текущей ветки до указанного коммита.Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤6
Мне нравится эта новая фича в Laravel
Автоматическая жадная загрузка связей в Eloquent-моделях
В своём коде я убрал использование
На одной из самых тяжёлых страниц количество запросов было 16.
После применения
Круто.
👉 @PHPgx
Автоматическая жадная загрузка связей в Eloquent-моделях
В своём коде я убрал использование
$with и with().На одной из самых тяжёлых страниц количество запросов было 16.
После применения
Model::automaticallyEagerLoadRelationships() оно снизилось до 10.Круто.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13👍6
Интересная вещь про PHP, которую я недавно узнал: что если вы хотите сделать continue в нескольких foreach-циклах?
Сначала я попробовал
👉 @PHPgx
Сначала я попробовал
continue; continue;, что (очевидно) не сработало — потом узнал, что в PHP можно передать число как {level}, указав, сколько уровней вложенности нужно пропустить.Please open Telegram to view this post
VIEW IN TELEGRAM
👍20😁10❤3
Потратил часы на отладку, чтобы тебе не пришлось:
Если колонка в 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