TGViewer
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter @phpproglib · 10.5K subscribers
Post #4473 2.92K
Путь к DRY валидации в Laravel

В статье рассказывается о том, как один человек решил сократить дублирование кода при написании правил валидации с помощью принципа DRY (Don't Repeat Yourself). Он искал удобное решение, которое удовлетворяло бы нескольким основным требованиям:

1. Имело бы удобный интерфейс.
2. Позволяло бы при необходимости редактировать или переписывать правила валидации для полей.
3. Давало бы возможность добавлять дополнительные поля «на месте».
4. Использовало бы только строковые значения в качестве имен полей, при этом имена не могли бы содержать точки, так как они нужны для разделения уровней вложенности.
5. Некоторые поля группировались по сущностям базы данных, а некоторые существовали отдельно.

Для реализации этого решения использовался существующий механизм хелперов в Laravel. Было решено создать функцию get_validation_rules, которая бы принимала два параметра: массив с именами полей и ассоциативный массив с дополнительными правилами для этих полей.

Эта функция берет глобальные правила из конфигурационного файла Laravel и на их основе формирует итоговый массив правил для указанных полей. Если для поля указаны дополнительные правила, они добавляются к существующим правилам.

Таким образом, герой статьи смог создать удобный механизм для управления правилами валидации, минимизировав дублирование кода и упростив поддержку этих правил в будущем.
  • 🥱 10
  • 👍 8
  • 🌚 1
More from @phpproglib
  1. Oct 2, 2026🎹 Что делать после ChatGPT? Следующий шаг — AI-агенты. Они не просто отвечают на запросы,…
  2. Sep 30, 2026🔥 Последний день для разработчиков AI уже пишет код. Теперь важнее научиться встраивать е…
  3. Sep 30, 2026🐸 Библиотека пхпшника
  4. Sep 29, 2026💡 Laravel-фича, которая спасает тесты от случайных запросов Http::preventStrayRequests()…
  5. Sep 28, 2026🔐 ramsey/uuid — UUID без самописного кода Библиотека помогает генерировать, парсить и вал…
  6. Sep 28, 2026🤔 Что выведет код? ❤️ — 1 🔥 — 2 👍 — 12 👾 — Fatal error 👇 Правильный ответ (нажми, что…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →