Вот тебе совет по 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
Быстрый совет Laravel
Используйте методы вида
Вот пример для фейкового адреса недвижимости
👉 @PHPgx
Используйте методы вида
fake()->xxxxx() для более точных и реалистичных данных.Вот пример для фейкового адреса недвижимости
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍2
В Laravel есть класс Benchmark, который позволяет замерить время выполнения любой задачи
Это очень удобно, когда нужно быстро проверить время работы конкретной функции или сравнить несколько решений с точки зрения производительности
👉 @PHPgx
Это очень удобно, когда нужно быстро проверить время работы конкретной функции или сравнить несколько решений с точки зрения производительности
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14🔥10🤔1
Как структурировать проекты на Laravel?
Это вопрос №1, который мне задают.
И, как по мне, главное вот что:
Какую бы структуру вы ни выбрали, она должна быть последовательной по всему проекту.
Поэтому при ревью чужого кода именно несогласованность в структуре мгновенно бросается мне в глаза.
Пример прилагается
👉 @PHPgx
Это вопрос №1, который мне задают.
И, как по мне, главное вот что:
Какую бы структуру вы ни выбрали, она должна быть последовательной по всему проекту.
Поэтому при ревью чужого кода именно несогласованность в структуре мгновенно бросается мне в глаза.
Пример прилагается
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍4😁3🤔1
Laravel/PHP совет
Избегайте создания классов с одинаковыми именами в разных директориях.
Они МОГУТ работать, если везде правильно прописаны неймспейсы, но это слишком рискованно
В примере, который мне прислали на ревью, я бы переименовал классы в VisibilityInterface и/или VisibilityEnum.
👉 @PHPgx
Избегайте создания классов с одинаковыми именами в разных директориях.
Они МОГУТ работать, если везде правильно прописаны неймспейсы, но это слишком рискованно
В примере, который мне прислали на ревью, я бы переименовал классы в VisibilityInterface и/или VisibilityEnum.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🤔3❤2👎2
Новый метод билдера запросов в Laravel 12.21
Появился новый метод
👉 @PHPgx
Появился новый метод
whereValueBetween() для проверки, находится ли значение между двумя колонками с помощью билдера запросовPlease open Telegram to view this post
VIEW IN TELEGRAM
👍11❤4🤔4
Полезная PHP-библиотека:
https://github.com/tomloprod/colority
Позволяет:
и многое другое
👉 @PHPgx
https://github.com/tomloprod/colority
Позволяет:
- преобразовывать и валидировать цвета
- получать цвет с лучшим контрастом (используя коэффициент контрастности по стандарту WCAG 2.0)
- извлекать цвета из изображений
и многое другое
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2
Laravel/PHP совет
Знал ли ты про метод Faker
- символ
- символ
- символ
Пример: генерация номерных знаков для автомобиля.
Документация: https://fakerphp.org/formatters/numbers-and-strings/#bothify
👉 @PHPgx
Знал ли ты про метод Faker
bothify()?- символ
? заменяется на рандомную букву- символ
# — на рандомную цифру- символ
* — на рандомную букву или цифруПример: генерация номерных знаков для автомобиля.
Документация: https://fakerphp.org/formatters/numbers-and-strings/#bothify
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍1
Media is too big
VIEW IN TELEGRAM
Релиз PhpStorm 2025.3
В этом релизе появились нативная интеграция с Claude Agent, поддержка Laravel из коробки, поддержка PHP 8.5, улучшения в работе с дженериками, новая тема Islands и многое другое
https://blog.jetbrains.com/phpstorm/2025/12/phpstorm-2025-3-is-now-out/
👉 @PHPgx
В этом релизе появились нативная интеграция с Claude Agent, поддержка Laravel из коробки, поддержка PHP 8.5, улучшения в работе с дженериками, новая тема Islands и многое другое
https://blog.jetbrains.com/phpstorm/2025/12/phpstorm-2025-3-is-now-out/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤6🔥3
Laravel 12.42 только что сделал работу с индексами в миграциях гораздо чище.
Встречайте:
✅
✅
Никакого лишнего шаблонного кода. Отличный DX
👉 @PHPgx
Встречайте:
whenTableHasIndex()whenTableDoesntHaveIndex()Никакого лишнего шаблонного кода. Отличный DX
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16👍10🌚4🤔1
Laravel совет
Если у вас есть колонка в БД с деньгами и она хранится как DECIMAL, то в модели Eloquent, скорее всего, стоит привести её к типу
Тогда при ПОЛУЧЕНИИ значения вы всегда будете выводить корректные денежные значения вроде 10.00, а не 10 или 10.0.
👉 @PHPgx
Если у вас есть колонка в БД с деньгами и она хранится как DECIMAL, то в модели Eloquent, скорее всего, стоит привести её к типу
decimal:2Тогда при ПОЛУЧЕНИИ значения вы всегда будете выводить корректные денежные значения вроде 10.00, а не 10 или 10.0.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤17🤔1
Laravel 12.42 теперь поддерживает Enum в подстановках переводов
Больше не нужно вызывать
Это делает слой переводов чище и выразительнее✌️
👉 @PHPgx
Больше не нужно вызывать
->valueЭто делает слой переводов чище и выразительнее
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤5🔥2🤔1
Вы наверняка использовали HTTP Client в Laravel для выполнения внешних API-запросов к сторонним сервисам.
Но знали ли вы, что с помощью HTTP Client в Laravel можно также выполнять асинхронные HTTP-запросы, поскольку внутри он использует библиотеку Guzzle?
Асинхронные HTTP-запросы позволяют продолжать выполнение определённых операций, пока API-запрос обрабатывается в фоне, что помогает сократить общее время ответа
Вот пример кода для этого случая
👉 @PHPgx
Но знали ли вы, что с помощью HTTP Client в Laravel можно также выполнять асинхронные HTTP-запросы, поскольку внутри он использует библиотеку Guzzle?
Асинхронные HTTP-запросы позволяют продолжать выполнение определённых операций, пока API-запрос обрабатывается в фоне, что помогает сократить общее время ответа
Вот пример кода для этого случая
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥7❤4
Это выглядит ОЧЕНЬ полезно 👌
Позволяет увидеть, какие возможности языка PHP использует ваш код и зависимости (и какая версия PHP их поддерживает)
https://github.com/tomasVotruba/lines#2-php-feature-counter
👉 @PHPgx
Позволяет увидеть, какие возможности языка PHP использует ваш код и зависимости (и какая версия PHP их поддерживает)
https://github.com/tomasVotruba/lines#2-php-feature-counter
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - TomasVotruba/lines: CLI tool for quick size measure of PHP project, used PHP features and more. Zero dependencies. Runs…
CLI tool for quick size measure of PHP project, used PHP features and more. Zero dependencies. Runs anywhere - TomasVotruba/lines
👍10❤6