About bitrix-validation
A Bitrix development skill for validating DTOs and controller inputs with the framework's validation facilities. It documents supported rules, custom validators, version constraints, and how to propagate validation errors.
Key features
- 01Define validation rules on DTOs
- 02Validate controller action parameters
- 03Support nested objects and collections
- 04Create custom rules and validators
- 05Propagate errors through Result
Use cases
- 01Validate nested service input
- 02Apply rules to controller parameters
- 03Return validation errors through service results
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ bxmaximum/ bitrix-framework-skills --skill bitrix-validationAfter installing, type/bitrix-validationin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
rules/controller.mdcustom.mdrules-dto.mdDetails
From the project READMEValidation
Baseline: main 23.0+ · Verified: main 26.800.0
The whole namespace is Since main 24.300. Before that, check input by hand in the service and return Result errors (bitrix-result-and-errors).
| Task | Read |
|---|---|
Rule attributes, DTOs, nested objects, collections, groups, ValidationService | rules/rules-dto.md |
Controller input: rules on action params, ValidationParameter DTOs | rules/controller.md |
| Custom rule attribute and validator, error codes | rules/custom.md |
Invariants
- Service:
ServiceLocator::getInstance()->get('main.validation.service'), or type-hintValidationServicein a service constructor (stateless). - There is no
.settings.phpvalidationsection and no#[ValidationParameter]attribute. - Names:
RegExp(notRegex),errorMessage(notmessage). Errors have nogetField(): the property path is ingetCode()(email,items.0.name). - Rules on action params,
groups,#[Json],#[OnlyOneOfPropertyRequired]are Since main 26.250*. On 25.x a rule on an action param is silently ignored: validate a DTO instead. ValidationResultextendsResult: pass its errors up via the serviceResult, don't throw.
Comments
Markdown supported