respect-validation/docs/validators/Sorted.md
Henrique Moody 7db3bea8a6
Enhance LintSpdxCommand with contributor tracking and header normalization
Improves SPDX header linting to ensure consistent license metadata across
the codebase.

Key changes:

- Enforce deterministic tag ordering (License-Identifier, FileCopyrightText,
  FileContributor) to ensure consistency, prevent merge conflicts, and
  simplify code reviews

- Add contributor alias mapping to consolidate contributors with multiple
  emails or name variations (e.g., "nickl-" → "Nick Lombard")

- Add --contributions-strategy option with "blame" (current code authors)
  and "log" (all historical contributors) to support different attribution
  philosophies

- Add optional path argument to lint specific files or directories

- Add --fix option to automatically correct header issues

Assisted-by: Claude Code (claude-opus-4-5-20251101)
2026-02-03 15:23:20 +01:00

2.5 KiB

Sorted

  • Sorted(string $direction)

Validates whether the input is sorted in a certain order or not.

v::sorted('ASC')->assert([1, 2, 3]);
// Validation passes successfully

v::sorted('ASC')->assert('ABC');
// Validation passes successfully

v::sorted('DESC')->assert([3, 2, 1]);
// Validation passes successfully

v::sorted('ASC')->assert([]);
// Validation passes successfully

v::sorted('ASC')->assert([1]);
// Validation passes successfully

You can also combine After to create custom validations:

v::after(
        fn (array $input): array  => array_column($input, 'key'),
        v::sorted('ASC')
    )->assert([
        ['key' => 1],
        ['key' => 5],
        ['key' => 9],
    ]);
// Validation passes successfully

v::after('strval', v::sorted('DESC'))->assert(4321);
// Validation passes successfully

v::after('iterator_to_array', v::sorted('ASC'))->assert(new ArrayIterator([1, 7, 4]));
// → `[1, 7, 4]` must be sorted in ascending order

Templates

Sorted::TEMPLATE_ASCENDING

Mode Template
default {{subject}} must be sorted in ascending order
inverted {{subject}} must not be sorted in ascending order

Sorted::TEMPLATE_DESCENDING

Mode Template
default {{subject}} must be sorted in descending order
inverted {{subject}} must not be sorted in descending order

Template placeholders

Placeholder Description
subject The validated input or the custom validator name (if specified).

Categorization

  • Arrays
  • Strings

Changelog

Version Description
2.0.0 Add support for strings
2.0.0 Do not use array keys to sort
2.0.0 Use sorting direction instead of boolean value
2.0.0 Do not accept callback in the constructor
1.1.1 Created

See Also