Telegram Web Link
Валидация email адресов в Laravel

Кейс: приложение должно валидировать входящие email-адреса по усиленным правилам

Проблема: при тестировании код "зависает" так как честно пытается выполнить свою задачу на фейковых адресах (fake()->email)

Решение: на уровне сервис-провайдера определяем дефолтные правила для разных сред.

После этого в форм-реквестах самого приложения можно писать просто email вместо email:dns,rfc,...:

-'email' => ['email:strict,filter,rfc,dns,spoof'],
+'email' => ['email'],
🔥82
🐘 Пых.конф'25

Крупнейшая PHP-конференция для всех от автора одного из крупнейших русскоязычных PHP-сообществ Пых Валентина Удальцова:

400 участников, 28 докладов, 4 зала.

Оффлайн и онлайн формат.

Присоединяйтесь! Встретимся там

https://conf.phpyh.ru
🔥7
Biome - очень шустрый линтер и форматтер для JavaScript, TypeScript, JSX, TSX, JSON, HTML, CSS and GraphQL.

Работает реально быстрее ESlint и Prettier 🙂

https://biomejs.dev
👍5
Laravel Feeds получила красивую доку и читается значительно проще портянки в README 🙂

Да, основные файлы конфигураций были скопипащены у https://laravel-lang.com, так что в некоторых местах можно найти отсылки 😅

Все нашли? 😉

https://feeds.dragon-code.pro
🔥6
Интересный сайт для быстрого удаления фона с изображений.

Обязательно включите звук кликнув по надписи "Click to enable audio" - это позволит лучше погрузиться в атмосферу происходящего.

бырыбырыбырыбырыбыры (с) 😅

https://tools.dverso.io/bgremove/
😁1
Разные изображения для светлой и тёмной тем на markdown страницах GitHub? Легко!

Всего-то нужно использовать фрагменты URL #gh-light-mode-only и #gh-dark-mode-only.

Например:

![feeds](images/light.png#gh-light-mode-only)
![feeds](images/dark.png#gh-dark-mode-only)


Пощупать руками можно здесь 😎
🔥7
📃 Laravel Feeds вышел в релиз!

Laravel Feeds - это лёгкий и быстрый способ экспортировать большие объёмы данных для маркетплейсов, sitemap и других потребителей.


Установить зависимость можно через Composer:
composer require dragon-code/laravel-feeds


🌟 Особенности проекта:

— Разбиение результатов при запросах к БД (chunk)
— Режим черновика в процессе наполнения файла
— Лёгкий маппинг свойств в виде привычного массива
— Поддержка Dependency Injection для всех классов
— Полная кастомизация хедера, футера и рут элемента
— Генерация любых фидов, карт сайтов и т.д.
— Поддержка быстрого создания классов с Laravel Idea


📔 В документации Вы найдёте расширенную информацию по использованию Laravel Feeds.

Также в ней доступен раздел рецептов с готовыми пресетами классов и результатом их выполнения! 😍
👍7🔥4❤‍🔥21🤔1
Легаси код сгенерировал XML файл фида за 5 минут.
Laravel Feeds справился за 36 секунд 😎

Тот же объём данных, тот же конечный результат, прирост скорости на 88%.


 ------- --------------  ---------------
# Legacy Dragon Code
------- -------------- ---------------
min 297335.54 ms 36187.14 ms
max 301008.29 ms 37282.62 ms
avg 299113.61 ms 36723.00 ms
------- -------------- ---------------
Order - 2 - - 1 -
------- -------------- ---------------


Измерение времени выполнения производилось бенчмарком с тремя итерациями на каждый фид.

https://feeds.dragon-code.pro
🔥13
Laravel Feeds теперь умеет работать не только с XML форматами фидов, но ещё и с JSON и JSON Lines 😍

Версия 1.5 уже в релизе 🥳

https://feeds.dragon-code.pro
4🔥4
Микро-гайд для тех, кто не в курсе 🙂

Для обновления контейнеров в Docker на свежие версии воспользуйтесь консольными командами:

docker compose pull
docker compose restart


И всё.
👍3
Поздравляю с 256-м днём этого года!

Пусть ваши проекты будут как хороший кофе: крепкими, пробуждающими и с приятным послевкусием. Пусть код всегда запускается без ошибок, жизнь радует новыми возможностями, идеи всегда находят отклик в мире, а проекты расширяют горизонты знаний и возможностей!

Deploy, Comrades! 🎉
👍7🎉3
📚 Laravel Feeds приобрёл сразу несколько улучшений в версии 1.8:

- Добавлен фид RSS Atom
- Добавлены пресеты упрощающие создание фидов (Instagram, Yandex, Sitemap, RSS)
- Добавлен Conditionable и Macroable функционал в базовые классы Feed, FeedInfo и FeedItem, расширяющие их возможности.

Среди прочего прибрались по коду да убрали из подсказок Laravel Idea технические классы при использовании в конечном приложении (Transformer светился в частности).
👍4🔥3
Laravel Boost - это мощный инструмент по добавлению инструкций для ИИ агентов и одним из его механизмов является MCP сервер.

В рамках одного приложения всё супер - агенты реально лучше подсказывают.

А что делать тем кто разрабатывает библиотеки? В этом случае начинаются пляски с бубном для внедрения MCP.

И решение есть - глобальная установка MCP сервера Лары.

Всё что для этого нужно - это установить Laravel в какую-нибудь папку с зависимостью Boost и добавить глобальный конфиг.

laravel new mcp

cd mcp

composer require laravel/boost --dev
php artisan boost:install


После этого открываем настройки MCP. Например, для AI Assistant и Junie в PhpStorm (см скрины) и добавляем конфиг с путём к файлам.

Всё. С этих пор MCP сервер будет работать во всех проектах и IDE/Editor будут автоматом цепляться к нему.
👍2
Часто используемые способы взаимодействия с релейшенами Laravel и их улучшение

1) Первый
 Product::query()
- ->with([
- 'attribute' => fn (Builder $query) => $query->select(['id', 'title'])
- ])
- ->whereHas('attribute');
+ ->withWhereHas('attribute:id,title')


2) Второй
 Product::query()
- ->whereHas('attribute', fn (Builder $query) => $query
- ->where('id', $id)
- );
+ ->whereRelation('attribute', 'id', $id)


3) Третий
 Product::query()
- ->with([
- 'attribute' => fn (Builder $query) => $query->select(['id', 'title'])
- ])
- ->whereHas('attribute', fn (Builder $query) => $query
- ->where('id', $id)
- );
+ ->with('attribute:id,title')
+ ->whereRelation('attribute', 'id', $id)
5👍4🔥2
Пых.Конф’25

Это моя первая конференция за всё время и ожидания были услышать несколько полезных идей, а по факту всё что я там услышал, было полезным. Да, что-то давно лично применяю в работе и считаю полезным это рассказывать тем, кто ещё не знает, что и сделали докладчики, а что-то узнал из того, в каком направлении сам начал двигаться.

Получил новый опыт для себя, поделился своим опытом с другими. Запомнился Анатолий с вопросом по утечкам памяти в Laravel Octane 🙂

Было очень круто до, во время и после конференции 😊

Жаль, что всё закончилось очень быстро. В хорошей компании время летит незаметно 🥲

И уже жду следующей конференции 😎

Отдельное спасибо:

— Валентину Удальцову (@vudaltsov) за организацию и проведение столь классного мероприятия

— Александру Черняеву (@tabuna) за книгу «Денди-код»

— Данилу Шуцкому (@leeto_telegram) за мерч MoonShine

— Владимиру Баркаеву (@Muumba) за гостеприимство
2🔥96
2025/10/21 22:42:29
Back to Top
HTML Embed Code: