productPriceUtils = $productPriceUtils ; $this->orderProductPriceUtils = $orderProductPriceUtils ; $this->orderShopPriceUtils = $orderShopPriceUtils ; } public function __call($name, $arguments) { $entity = $arguments[0] ; $service = '' ; if($entity instanceof ProductPropertyInterface) { $service = 'productPriceUtils' ; } if($entity instanceof OrderProductInterface) { $service = 'orderProductPriceUtils' ; } if($entity instanceof OrderShopInterface) { $service = 'orderShopPriceUtils' ; } if(strlen($service) && $entity && method_exists($this->$service, $name)) { return $this->$service->$name($entity) ; } return false ; } }