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

Связь: @devmangx
Download Telegram
Pest v4 уже здесь. Теперь с поддержкой браузерного тестирования

Браузерные тесты, которые ощущаются как unit-тесты: готовые к использованию в Laravel, работающие на Playwright, сверхбыстрые благодаря параллельному запуску, со встроенными smoke- и визуальными регрессионными тестами

https://pestphp.com/docs/pest-v4-is-here-now-with-browser-testing

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43
Когда-нибудь приходилось делать foreach по КОНСТАНТАМ PHP-класса?

Все константы можно получить в массив с помощью ReflectionClass

На скриншотах пример, как достали все Render Hooks у Filament

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

Добавь к маршруту middleware password.confirm. Пользователю придётся заново ввести пароль перед продолжением.

Документация: https://laravel.com/docs/12.x/authentication#password-confirmation-protecting-routes

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

Если нужно проверить, является ли строка корректным кликабельным URL, можно использовать функцию filter_var() с флагом FILTER_VALIDATE_URL.

Упрощённый пример — добавить префикс "https://" в случае, если пользователь его забыл.

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍4
Когда я провожу ревью Laravel-проекта, вот несколько вещей, которые я обычно меняю при первом же взгляде. Без компромиссов. Это меняет всё

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍117👎6
7 крупных опенсорс проектов, написанных на чистом PHP (без фреймворка)

1. Matomo — это ведущая свободная (Free/Libre) платформа веб-аналитики с открытым исходным кодом.
2. OpenCart — это бесплатная платформа для e-commerce, предназначенная для онлайн-продавцов
3. Kimai — это профессиональное приложение для трекинга времени
4. Friendica — это платформа для децентрализованного социального взаимодействия, объединяющая независимые социальные и корпоративные сервисы
5. Grocy — это веб-приложение для самостоятельного хостинга, предназначенное для управления запасами продуктов и бытовыми делами дома
6. osTicket — это система тикетов для поддержки пользователей. Она объединяет обращения, созданные по email, телефону и через веб-формы, в едином удобном мультипользовательском веб-интерфейсе
7. Kanboard — это софт для управления проектами, ориентированный на методологию Kanban.


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

Нужно разное поведение для разных поддоменов?

Используйте роутинг по поддоменам, чтобы обрабатывать мультиарендные приложения, версии API или региональный контент

Ссылка на доку: https://laravel.com/docs/12.x/routing#route-group-subdomain-routing

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍94😁2
Новый пакет 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