/** * @param Factories $factories * * @return mixed */ public function addFactories(Factories $factories) { $factories->set('jigoshop.service.order', 'jigoshop.factory.order_service', 'getService'); $factories->set('jigoshop.service.product', 'jigoshop.factory.product_service', 'getService'); $factories->set('jigoshop.service.product.variable', 'jigoshop.factory.variable_product_service', 'getService'); $factories->set('jigoshop.service.tax', 'jigoshop.factory.tax_service', 'getService'); $factories->set('jigoshop.service.customer', 'jigoshop.factory.customer_service', 'getService'); $factories->set('jigoshop.service.shipping', 'jigoshop.factory.shipping_service', 'getService'); $factories->set('jigoshop.service.payment', 'jigoshop.factory.payment_service', 'getService'); $factories->set('jigoshop.service.session', 'jigoshop.factory.session_service', 'getService'); }
private function getServiceFromFactory($key, $params) { $factoryData = $this->factories->get($key); $factory = $this->get($factoryData['instance']); $method = $factoryData['method']; $instance = $this->factories->getService($factory, $method, $params); return $instance; }