<?php trait PropertyHelperTrait { protected function splitPropertyParts(): void { } } trait OrmPropertyHelperTrait { abstract protected function splitPropertyParts(): void; protected function addJoinsForNestedProperty(): void { $this->splitPropertyParts(); } } trait SearchFilterTrait { use PropertyHelperTrait; } abstract class AbstractFilter { use OrmPropertyHelperTrait, PropertyHelperTrait; public function apply(): void { $this->filterProperty(); } abstract protected function filterProperty(): void; } class SearchFilter extends AbstractFilter { use SearchFilterTrait; protected function filterProperty(): void { $this->addJoinsForNestedProperty(); } } class FilterExtension { public function applyToCollection(): void { (new SearchFilter())->apply(); } } (new FilterExtension)->applyToCollection();
You have javascript disabled. You will not be able to edit any code.
Generated using Vulcan Logic Dumper, using php 8.0.0