xref: /PHP-8.4/Zend/tests/gh14480.phpt (revision 86b93bc4)
1--TEST--
2GH-14480: Method visibility issue
3--FILE--
4<?php
5trait PropertyHelperTrait
6{
7    protected function splitPropertyParts(): void
8    {
9	    echo "OK\n";
10    }
11}
12
13trait OrmPropertyHelperTrait
14{
15    abstract protected function splitPropertyParts(): void;
16
17    protected function addJoinsForNestedProperty(): void
18    {
19        $this->splitPropertyParts();
20    }
21}
22
23trait SearchFilterTrait
24{
25    use PropertyHelperTrait;
26}
27
28abstract class AbstractFilter
29{
30    use OrmPropertyHelperTrait, PropertyHelperTrait;
31
32    public function apply(): void
33    {
34        $this->filterProperty();
35    }
36
37    abstract protected function filterProperty(): void;
38}
39
40class SearchFilter extends AbstractFilter
41{
42    use SearchFilterTrait;
43    protected function filterProperty(): void
44    {
45        $this->addJoinsForNestedProperty();
46    }
47}
48
49class FilterExtension
50{
51    public function applyToCollection(): void
52    {
53        (new SearchFilter())->apply();
54    }
55}
56
57(new FilterExtension)->applyToCollection();
58?>
59--EXPECT--
60OK
61