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

Связь: @devmangx
Download Telegram
Новый пакет hdaklue/LaraPath: билдер путей для PHP с поддержкой стратегий санитизации и интеграцией с Laravel
https://github.com/hdaklue/LaraPath

Посмотрите на примеры проблем и сценариев использования на скриншотах.

Больше реальных кейсов здесь:
https://github.com/hdaklue/LaraPath/blob/master/real-world-problems.md

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5😁21
Совет по PHP

Совместите мощь генераторов с SplFileObject, чтобы обрабатывать ОГРОМНЫЕ CSV-файлы, не беспокоясь о памяти!

Посмотрите пример, чтобы узнать, как это сделать

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍6
Метод toRawSql в Laravel возвращает «сырой» SQL-запрос со всеми подставленными параметрами. Это удобный способ быстро увидеть сгенерированный SQL, а также скопировать и вставить запрос в ваше приложение для работы с БД

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍9
Сегодня узнал про array_column в PHP 🤩

И оно работает даже с объектами, так что вот простой способ получить все значения из backed enum…

(К тому же, в моих тестах это примерно в 2 раза быстрее, чем array_map.)

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

Используйте required_array_keys, чтобы убедиться, что указанные ключи присутствуют в данных массива, идеально подходит для API-эндпоинтов, где ожидается чёткая структура.

Документация: https://laravel.com/docs/12.x/validation#rule-required-array-keys

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍6
После 13 лет разработки на PHP я только что понял, что существует управляющая конструкция под названием continue 2.

Она пропускает ещё и внешний цикл.

У меня просто взорвался мозг 🤯

Как думаете, это хорошо или плохо?

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍28😁43
Работаете с PHP Enum? Параметры маршрута могут автоматически валидировать и инжектить значения Enum

Laravel вернёт 404 для некорректных значений Enum, так что контроллеры остаются чистыми.

Ссылка на документацию: https://laravel.com/docs/12.x/routing#implicit-enum-binding

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥3👀2
Недавно вышел курс PHP Fundamentals - всё, что нужно знать о современном PHP в 10 коротких уроках. Идеально подходит для Laravel-разработчиков или для тех, кто хочет освоить PHP сегодня.

00:00 Why PHP?
01:41 Setup
03:50 Variables & Types
08:53 Arrays
15:48 Functions
21:10 Loops
31:15 Classes
43:35 Modern PHP
56:39 Composer
01:02:30 Your First PHP Application

Смотреть на YouTube

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

Рейт-лимитинг иногда бывает непростым, верно? Но не в Laravel.

Посмотри, как просто применить rate limit для каждой команды и тарифного плана, с фоллбеком на IP

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍93
Партиционирование таблиц в MySQL может существенно повысить производительность запросов за счёт разбивки больших таблиц на более мелкие физические файлы

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍141
Привет, Laravel-разработчики

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

Начиная с Laravel v12.29.0 у нас появился новый метод withoutGlobalScopesExcept(), который позволяет отключить все остальные скоупы, кроме указанных.

Простое, но отличное добавление в фреймворк. Что думаете об этом?

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍102
Использование именованных конструкторов может сильно упростить создание исключений

«Чит-код», о котором я всё время забываю, и который делает это возможным - это возможность PHP-классов устанавливать protected/private свойства у экземпляров, созданных внутри самого класса. Это супер-удобно

Это избавляет от необходимости переопределять конструктор и даёт больше свободы добавлять новые именованные конструкторы в будущем

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👎52👍2
Совет по работе с filamentphp

Действия для строк таблицы не обязательно должны располагаться в конце.

С помощью RecordActionsPosition::BeforeColumns или BeforeCells их можно перенести перед данными или даже перед колонкой с чекбоксами.

Документация: https://filamentphp.com/docs/4.x/tables/actions#positioning-record-actions-before-columns

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥5
Можно сгенерировать коллекцию Postman прямо из своих Laravel-роутов

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

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

Нужно интегрироваться со сторонним сервисом? Поскольку HTTP-клиент в Laravel поддерживает макросы, можно определить под него отказоустойчивый HTTP-клиент с помощью макроса и использовать его по всему приложению

Смотри пример, чтобы узнать, как

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
6
Мега-совет по PHP: используйте #[SensitiveParameter] для чувствительных параметров.
PHP скроет их значение в стектрейсах, сообщениях об ошибках и логах..

Это предотвращает случайные утечки секретов на проде. Абсолютный шедевр.

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
21🔥16
Совет по filamentphp

Преобразуйте строки таблицы в сетку с помощью $table->contentGrid(). Отлично подходит для UI в стиле карточек или когда список выглядит слишком тесным.

На мобильных = 1 колонка
Начиная с md = 2 колонки
Начиная с xl = 3 колонки

Ссылка на доку: https://filamentphp.com/docs/4.x/tables/layout#arranging-records-into-a-grid

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥3
Совет по filamentphp

Группируйте по датам, а не по полным таймстампам. Применяйте date() к группе для более чистых ежедневных сводок

Ссылка на доку: https://filamentphp.com/docs/4.x/tables/grouping#date-groups

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32