• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

diego-ninja / granite / 16608963009

29 Jul 2025 10:37PM UTC coverage: 50.423%. First build
16608963009

Pull #5

github

web-flow
Merge 43d8840d7 into 6a6caca51
Pull Request #5: code: adds phpstan level max, pint with per and github actions

321 of 632 new or added lines in 77 files covered. (50.79%)

1132 of 2245 relevant lines covered (50.42%)

9.88 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/Validation/Attributes/Each.php
1
<?php
2

3
namespace Ninja\Granite\Validation\Attributes;
4

5
use Attribute;
6
use Ninja\Granite\Validation\Rules;
7
use Ninja\Granite\Validation\ValidationRule;
8

9
/**
10
 * Attribute for validating each item in an array.
11
 */
12
#[Attribute(Attribute::TARGET_PROPERTY)]
13
class Each
14
{
15
    /**
16
     * @var ValidationRule|array<ValidationRule> Rules to apply to each item
17
     */
18
    private ValidationRule|array $rules;
19

20
    /**
21
     * @var string|null Custom error message
22
     */
23
    private ?string $message;
24

25
    /**
26
     * @param ValidationRule|array<ValidationRule> $rules
27
     * @param string|null $message
28
     */
29
    public function __construct(ValidationRule|array $rules, ?string $message = null)
×
30
    {
31
        $this->rules = $rules;
×
32
        $this->message = $message;
×
33
    }
34

35
    public function asRule(): Rules\Each
×
36
    {
37
        $rule = new Rules\Each($this->rules);
×
38

NEW
39
        if (null !== $this->message) {
×
40
            $rule->withMessage($this->message);
×
41
        }
42

43
        return $rule;
×
44
    }
45
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc