em = $em ; $this->security = $security ; $this->productCategoryRepository = $productCategoryRepository ; $this->hubRepository = $hubRepository ; $this->globalParam = $globalParam ; $this->formFactory = $formFactory ; } public function getFunctions() { return array( new TwigFunction('get_product_categories', [$this, 'getProductCategories']), new TwigFunction('get_form_newsletter', [$this, 'getFormNewsletter']), new TwigFunction('get_merchants', [$this, 'getMerchants']), ); } public function getFilters() { return [ new TwigFilter('format_price', [$this, 'formatPrice']), ]; } public function getProductCategories() { $categories = $this->productCategoryRepository->findAllParents($this->globalParam->getCurrentMerchant()) ; return $categories ; } public function getFormNewsletter() { $form = $this->formFactory->create(NewsletterType::class); return $form->createView() ; } public function formatPrice($price) { $price = number_format($price, 2) ; $price = str_replace('.',',',$price) ; $price = $price .' €' ; return $price ; } public function getMerchants() { return $this->hubRepository->findAll() ; } }