PHP Portal | Программирование
5.29K subscribers
276 photos
10 videos
2 files
171 links
Присоединяйтесь к нашему каналу и погрузитесь в мир для PHP-разработчика

Связь: @devmangx
加入频道
Совет по PHP/Laravel

Когда у тебя есть два варианта обработки пользовательских исключений в рамках одного домена, вместо того чтобы создавать несколько классов исключений, лучше использовать один класс с разными методами!

Это позволяет сделать кодовую базу чище и более организованно

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12👎64
Совет по PHP: знали ли вы, что isset() может принимать несколько аргументов?

Функция вернёт true только в том случае, если все переданные переменные считаются установленными.
Проверка выполняется слева направо и останавливается при первом необъявленном или null-значении.

Документация: https://php.net/manual/en/function.isset.php

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
22👍14🤔1
Используйте метод upsert() для эффективных операций "вставить или обновить" в одном SQL-запросе.
Это намного быстрее, чем сначала проверять существование записи, особенно при массовых вставках.

Документация: https://laravel.com/docs/12.x/queries#upserts

Примечание: Все базы данных, кроме SQL Server, требуют, чтобы колонки, указанные во втором аргументе метода upsert, имели первичный или уникальный индекс.
Кроме того, драйверы баз данных MariaDB и MySQL игнорируют второй аргумент upsert и всегда используют первичный и уникальные индексы таблицы для определения существующих записей.

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82🔥2
Совет по Laravel для API

Хочешь единообразные ответы об успехе и ошибках?

Вот пример кода, который я увидел в одном опенсорс проекте:

Зарегистрируй кастомные функции как макросы (Macro) в фасаде Response через ServiceProvider.

Конечно, альтернатива — вынести эти методы в трейты или базовый контроллер

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥42
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
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥226👍3🤯2🌚2
Нужно добавить несколько колонок в определённую позицию таблицы?

Используйте метод after() вместе с замыканием, чтобы сгруппировать несколько связанных колонок и вставить их после уже существующей колонки.

Ссылка на документацию: https://laravel.com/docs/12.x/migrations#column-order

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍111
При создании Eloquent-скоупов, если у вас есть одинаковые скоупы в нескольких моделях, использующие одно и то же имя колонки, указывайте имя таблицы в качестве префикса.

Это поможет избежать SQL-ошибок вида "ambiguous column".

Источник: проект Larasense
https://github.com/nabilhassen/larasense/blob/main/app/Models/Material.php

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍1
Нужно получать значения из входных данных в нужном типе, а не всегда как строки?

Используй методы integer(), boolean(), array(), date() и enum()

Больше никакого ручного кастинга.

Документация: https://laravel.com/docs/12.x/requests#retrieving-input

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍2
Новая статья — несколько важных моментов, которые стоит учитывать при использовании SQLite в продакшене (с точки зрения приложений на Laravel)

Рассматриваются:
1. Journal mode
2. Data types
3. Concurrent transactions (the dreaded "database is locked" error)

> Читать

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Совет по Laravel

Используй insertOrIgnore() для вставки записей с пропуском дубликатов без выброса ошибок

Отлично подходит для массового импорта, когда часть данных уже может существовать.
Метод тихо игнорирует ограничения, не выбрасывая исключения.

Ссылка на документацию: https://laravel.com/docs/12.x/queries#insert-statements

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍4
Краткая история веб-разработки

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
25😁10👍7🎉3🔥1
Сегодня я узнал о синтаксисе when(app()->isLocal()) в файле маршрутов Laravel.

Выглядит прям как обычное английское предложение, очень читаемо

Источник: https://github.com/laravelstart/laravelstart/blob/main/routes/web.php

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍2
Тестируем отправку писем в Laravel…
не отправив ни одного реального письма.

1️⃣ Mail::fake() — перехватываем отправку
2️⃣ Запускаем нужное действие
3️⃣ Проверяем, что Mailable был поставлен в очередь
4️⃣ Валидируем получателя, тему, теги и метаданные

Полный разбор на Laravel + Pest:
https://youtu.be/6Zyp2MENadk

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍2
Наконец-то, как же мне этого не хватало

Теперь можно сгенерировать коллекцию Postman прямо из своих Laravel-роутов

Просто установи пакет laravel-postman и выполни 👆

https://github.com/yasintqvi/laravel-postman

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥113
Создаем свой пакет на PHP

Пошаговое руководство по созданию пакета на «чистом» PHP: от структуры проекта и настройки composer.json до использования статических анализаторов, тестов, CI‑скриптов с GitHub Actions и публикации пакета на Packagist

https://habr.com/ru/articles/935544/

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍92
Мы здесь, на этой стороне, избалованы, братья и сестры из экосистемы Laravel

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🤔21😁1
Filament v4 официально в стабильной версии и уже в проде 🎵

Обзор фич: https://filamentphp.com/content/leandrocfe-whats-new-in-filament-v4

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍2🎉1