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

Связь: @devmangx
Download Telegram
Краткая история веб-разработки

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
29😁13👍9🎉6🔥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
9👍4
Тестируем отправку писем в 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
10👍2
Наконец-то, как же мне этого не хватало

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

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

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

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥155
Создаем свой пакет на 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
👍134
Мы здесь, на этой стороне, избалованы, братья и сестры из экосистемы Laravel

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82😁2🤔2
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
5👍3🎉1
Рост PHP впечатляет

От reset() к array_key_first(), а теперь в PHP 8.5 появляются array_first() и array_last()

Они делают код чище, безопаснее и выразительнее. Никаких побочных эффектов от указателей

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

В email-уведомлениях нельзя использовать два ->action() — отобразится только последний (и ошибок при этом вы не увидите).

Вместо этого превратите их в ссылки через несколько вызовов ->line()

Не спрашивайте, как я это выяснил

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

Используйте response()->streamDownload(), чтобы создавать загрузки без записи на диск.

Генерируйте файлы "на лету" и стримьте их напрямую пользователю.

Документация: https://laravel.com/docs/12.x/responses#streamed-downloads

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍5
Этот пакет выручит вас, если нужно экспортировать большой объём данных.

Он экспортирует 10 000 строк за 3 секунды, используя менее 3 МБ памяти.

Лучший выбор, когда речь идёт о производительности.

Познакомьтесь с rap2hpoutre/fast-excel

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

Выглядит очень перспективно

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

Используй response()->file(), чтобы отображать файлы в браузере вместо их скачивания

Отлично подходит для показа PDF или документов прямо внутри страницы.

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

Обрати внимание: поддержка зависит от браузера и пользовательских настроек.

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍94
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