Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
85.71% covered (warning)
85.71%
6 / 7
50.00% covered (danger)
50.00%
1 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
PlaceholderHandler
85.71% covered (warning)
85.71%
6 / 7
50.00% covered (danger)
50.00%
1 / 2
4.05
0.00% covered (danger)
0.00%
0 / 1
 apply
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
1 / 1
2
 properties
66.67% covered (warning)
66.67%
2 / 3
0.00% covered (danger)
0.00%
0 / 1
2.15
1<?php
2
3declare(strict_types=1);
4
5namespace Cosray\Field\Schema;
6
7use Cosray\Exception\RuntimeException;
8use Cosray\Field\Capability\Placeholdable;
9use Cosray\Field\Field;
10use Cosray\Schema\Placeholder;
11use Override;
12
13class PlaceholderHandler extends Handler
14{
15    #[Override]
16    public function apply(object $meta, Field $field): void
17    {
18        assert($meta instanceof Placeholder, 'The registry maps #[Placeholder] to this handler');
19
20        if ($field instanceof Placeholdable) {
21            $field->placeholder($meta->placeholder);
22
23            return;
24        }
25
26        throw new RuntimeException($this->capabilityErrorMessage($field, Placeholdable::class));
27    }
28
29    #[Override]
30    public function properties(object $meta, Field $field): array
31    {
32        if ($field instanceof Placeholdable) {
33            return ['placeholder' => $field->getPlaceholder()];
34        }
35
36        return [];
37    }
38}