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