Совет по Laravel: хватит писать кастомную логику повторных попыток для нестабильных API
Используйте
Ссылка на документацию: https://laravel.com/docs/12.x/http-client#retries
👉 @PHPgx
Используйте
Http::retry() — он автоматически повторяет неудачные запросы с экспоненциальной задержкой между попытками.Ссылка на документацию: https://laravel.com/docs/12.x/http-client#retries
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤5🔥1
strlen() vs mb_strlen(): Почему 71% PHP-разработчиков ошибаютсяВ этой статье разберем, как PHP работает со строками и почему даже простой вызов
strlen() может привести к неожиданным результатам. На примере крайне простой задачи "что выведет
echo strlen('привет!');" посмотрим, что и как влияет на подсчет длины строки, заглянем внутрь реализации strlen() и развенчаем миф о строках как массивах.https://habr.com/ru/articles/919192/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤3
Удобный шпаргалка с самыми полезными константами языка PHP
От DIR до UPLOAD_ERR_NO_FILE — всё аккуратно сгруппировано и готово к версии 8.4
Сохраняйте. Используйте. Делитесь
👉 @PHPgx
От DIR до UPLOAD_ERR_NO_FILE — всё аккуратно сгруппировано и готово к версии 8.4
Сохраняйте. Используйте. Делитесь
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤4🤔2🔥1
Совет по Laravel
Делаешь несколько API-запросов? Не отправляй их по очереди!
Вместо этого используй
Ссылка на документацию: https://laravel.com/docs/12.x/http-client#concurrent-requests
👉 @PHPgx
Делаешь несколько API-запросов? Не отправляй их по очереди!
Вместо этого используй
Http::pool() — он позволяет запускать запросы параллельно и прокачать производительность, выполнив их все одновременно.Ссылка на документацию: https://laravel.com/docs/12.x/http-client#concurrent-requests
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16👍12🔥6
Совет по PHP
Вы можете проверять файлы на синтаксические ошибки без запуска кода — и валидировать весь проект одной командой.
🔹 Быстрая проверка на ошибки
🔹 Валидация проекта в одну строку
Чище код — быстрее разработка
👉 @PHPgx
Вы можете проверять файлы на синтаксические ошибки без запуска кода — и валидировать весь проект одной командой.
Чище код — быстрее разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤8
Очередной годный сайт для прокачки навыков SQL-запросов
На платформе вам предстоит решать задачи, используя базу данных больницы. Задачи разделены по уровням сложности, начиная с простых запросов с SELECT и постепенно переходя к более сложным
Есть подсказки и возможность получить готовый запрос, если застряли👍
👉 @PHPgx
На платформе вам предстоит решать задачи, используя базу данных больницы. Задачи разделены по уровням сложности, начиная с простых запросов с SELECT и постепенно переходя к более сложным
Есть подсказки и возможность получить готовый запрос, если застряли
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤7🔥1🎉1
Как использовать сервисные классы в контроллере Laravel?
А точнее — где их определять или внедрять?
Моё правило:
🔹 Если сервис используется в одном методе контроллера — внедрение в метод
🔹 Если в нескольких методах — внедрение через конструктор с использованием property promotion
👉 @PHPgx
А точнее — где их определять или внедрять?
Моё правило:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤6
PHP-разработчики, пишущие на JavaScript, после того как у них челюсть отвисает от того, что аналогичный функционал не идет из коробки в JS. 🤣
👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁10👍4❤2
Храни уведомления в базе данных, чтобы построить систему in-app уведомлений.
Добавь
Документация: https://laravel.com/docs/12.x/notifications#database-notifications
👉 @PHPgx
Добавь
'database' в метод via(), и Laravel автоматически сохранит данные уведомления в формате JSON.Документация: https://laravel.com/docs/12.x/notifications#database-notifications
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍3
Вот как нужно писать на PHP
Инструменты для современного PHP сейчас реально на хорошем уровне. А значит, писать на PHP можно куда лучше, чем ты, возможно, думаешь.
Вдохновившись докладом Нуно Мадуро про современные PHP-инструменты, автор занялся обновлением своего стартового набора Fission, чтобы убедиться, что использует всё самое актуальное из того, что предлагает PHP для разработки.
И это полностью изменило его подход к написанию кода на PHP. Он нашёл идеальный стек инструментов.
https://www.youtube.com/watch?v=qkG2ybcmpZc
👉 @PHPgx
Инструменты для современного PHP сейчас реально на хорошем уровне. А значит, писать на PHP можно куда лучше, чем ты, возможно, думаешь.
Вдохновившись докладом Нуно Мадуро про современные PHP-инструменты, автор занялся обновлением своего стартового набора Fission, чтобы убедиться, что использует всё самое актуальное из того, что предлагает PHP для разработки.
И это полностью изменило его подход к написанию кода на PHP. Он нашёл идеальный стек инструментов.
https://www.youtube.com/watch?v=qkG2ybcmpZc
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤5
Теперь вы можете запускать Laravel-приложения напрямую внутри Node.js.
Платформа Platformatic анонсировала решение, которое объединяет PHP и JavaScript в едином рантайме. Это открывает новые горизонты для full-stack разработки и избавляет от необходимости поддерживать раздельные инфраструктуры для PHP и Node.js.
Новое решение под названием Platformatic PHP stackable позволяет запускать Laravel-приложения внутри Node.js-рантайма Watt. Ключевым компонентом является
Это создает высокопроизводительный мост, позволяя вашему Laravel-приложению запускаться как stackable-модуль внутри Watt. Это снижает задержки и даёт массу преимуществ:
✅ Единый деплой: PHP и Node.js-сервисы работают в одном рантайме.
✅ Общие ресурсы: Оптимизация использования ресурсов и снижение затрат на инфраструктуру.
✅ Плавная миграция: Постепенный перенос легаси-приложений на JavaScript.
✅ Polyglot-архитектура: Используйте PHP и JS вместе в микросервисной архитектуре.
Начать просто — всего пара шагов по конфигурации, и ваше существующее Laravel-приложение будет работать в окружении Node.js.
В блоге Platformatic уже опубликовано подробное руководство по запуску
Репозиторий на GitHub:
https://github.com/platformatic/watt-next-laravel
👉 @PHPgx
Платформа Platformatic анонсировала решение, которое объединяет PHP и JavaScript в едином рантайме. Это открывает новые горизонты для full-stack разработки и избавляет от необходимости поддерживать раздельные инфраструктуры для PHP и Node.js.
Новое решение под названием Platformatic PHP stackable позволяет запускать Laravel-приложения внутри Node.js-рантайма Watt. Ключевым компонентом является
@platformatic/php-node — нативный модуль на Rust, который внедряет многопоточный PHP-интерпретатор прямо в Node.jsЭто создает высокопроизводительный мост, позволяя вашему Laravel-приложению запускаться как stackable-модуль внутри Watt. Это снижает задержки и даёт массу преимуществ:
Начать просто — всего пара шагов по конфигурации, и ваше существующее Laravel-приложение будет работать в окружении Node.js.
В блоге Platformatic уже опубликовано подробное руководство по запуску
Репозиторий на GitHub:
https://github.com/platformatic/watt-next-laravel
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🤔3👎2
Нужно выполнить поиск по нескольким столбцам с одним и тем же условием?
Используй методы
Документация: https://laravel.com/docs/12.x/queries#where-any-all-none-clauses
👉 @PHPgx
Используй методы
whereAny(), whereAll() или whereNone() вместо написания множества условий с OR или AND. Код станет гораздо чище и понятнее!Документация: https://laravel.com/docs/12.x/queries#where-any-all-none-clauses
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21❤6
Как заставить ИИ писать код по стилю
Нашёл оптимизированные для ИИ гайдлайны, специально отформатированные для Claude Code и аналогичных инструментов. Это позволяет генерировать код в соответствии со стандартами Laravel и PHP от Spatie.
Файл с гайдлайнами, адаптированными под ИИ, можно посмотреть здесь: https://spatie.be/guidelines/ai
👉 @PHPgx
Нашёл оптимизированные для ИИ гайдлайны, специально отформатированные для Claude Code и аналогичных инструментов. Это позволяет генерировать код в соответствии со стандартами Laravel и PHP от Spatie.
Файл с гайдлайнами, адаптированными под ИИ, можно посмотреть здесь: https://spatie.be/guidelines/ai
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2
Новое в Laravel 12.21 на этой неделе:
Теперь при запуске
Ранее Laravel показывал это только при запуске с указанием конкретного сидера через
Ссылка на PR:
https://github.com/laravel/framework/pull/56310
👉 @PHPgx
Теперь при запуске
php artisan db:seed будет отображаться время выполнения.Ранее Laravel показывал это только при запуске с указанием конкретного сидера через
--class=SomeSeeder.Ссылка на PR:
https://github.com/laravel/framework/pull/56310
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤3🔥2🌚1
Совет по PHP/Laravel
Когда у тебя есть два варианта обработки пользовательских исключений в рамках одного домена, вместо того чтобы создавать несколько классов исключений, лучше использовать один класс с разными методами!
Это позволяет сделать кодовую базу чище и более организованно
👉 @PHPgx
Когда у тебя есть два варианта обработки пользовательских исключений в рамках одного домена, вместо того чтобы создавать несколько классов исключений, лучше использовать один класс с разными методами!
Это позволяет сделать кодовую базу чище и более организованно
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12👎6❤4
Совет по PHP: знали ли вы, что
Функция вернёт
Проверка выполняется слева направо и останавливается при первом необъявленном или
Документация: https://php.net/manual/en/function.isset.php
👉 @PHPgx
isset() может принимать несколько аргументов?Функция вернёт
true только в том случае, если все переданные переменные считаются установленными.Проверка выполняется слева направо и останавливается при первом необъявленном или
null-значении.Документация: https://php.net/manual/en/function.isset.php
Please open Telegram to view this post
VIEW IN TELEGRAM
❤22👍16🤔1
Используйте метод
Это намного быстрее, чем сначала проверять существование записи, особенно при массовых вставках.
Документация: https://laravel.com/docs/12.x/queries#upserts
Примечание: Все базы данных, кроме SQL Server, требуют, чтобы колонки, указанные во втором аргументе метода
Кроме того, драйверы баз данных MariaDB и MySQL игнорируют второй аргумент
👉 @PHPgx
upsert() для эффективных операций "вставить или обновить" в одном SQL-запросе.Это намного быстрее, чем сначала проверять существование записи, особенно при массовых вставках.
Документация: https://laravel.com/docs/12.x/queries#upserts
Примечание: Все базы данных, кроме SQL Server, требуют, чтобы колонки, указанные во втором аргументе метода
upsert, имели первичный или уникальный индекс.Кроме того, драйверы баз данных MariaDB и MySQL игнорируют второй аргумент
upsert и всегда используют первичный и уникальные индексы таблицы для определения существующих записей.Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2🔥2
Хорошая статья: Сгенерированные столбцы и представления в SQL: как использовать их в Laravel-приложении
🔹 Что такое сгенерированные столбцы?
🔹 Сравнение: сгенерированные столбцы против аксессоров Eloquent
🔹 Сортировка, фильтрация и индексация
🔹 Получение значений через Eloquent, Query Builder и raw SQL
🔹 Оптимизация производительности
🔹 И всё-таки... всегда ли стоит использовать сгенерированные столбцы?
🔹 Что такое представления?
🔹 Практический пример: первый день в интернет-магазине
🔹 Заключение
Читаем здесь (#en)
👉 @PHPgx
Читаем здесь (#en)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1
Совет по Laravel для API
Хочешь единообразные ответы об успехе и ошибках?
Вот пример кода, который я увидел в одном опенсорс проекте:
Зарегистрируй кастомные функции как макросы (
Конечно, альтернатива — вынести эти методы в трейты или базовый контроллер
👉 @PHPgx
Хочешь единообразные ответы об успехе и ошибках?
Вот пример кода, который я увидел в одном опенсорс проекте:
Зарегистрируй кастомные функции как макросы (
Macro) в фасаде Response через ServiceProvider.Конечно, альтернатива — вынести эти методы в трейты или базовый контроллер
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥5❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Плагин Laravel Idea теперь БЕСПЛАТНЫЙ для пользователей PhpStorm
https://blog.jetbrains.com/phpstorm/2025/07/laravel-idea-is-now-free/
👉 @PHPgx
https://blog.jetbrains.com/phpstorm/2025/07/laravel-idea-is-now-free/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23❤8👍4🤯2🌚2