Symfont 4 : le service pim_catalog.saver.product est private et ne peut être utilisé dans le Controller de mon bundle

a marqué ce sujet comme résolu.

Salut tout le monde,

D’après la documentation, https://docs.akeneo.com/4.0/manipulate_pim_data/product/save.html, je devrais pouvoir appeler $saver = $this->get('pim_catalog.saver.product'); dans le contrôleur de mon bundle, comme ceci :

<?php
namespace XXX\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;

class ExportController extends Controller
{
    public function exportProduct($id): Response
    {
        $saver = $this->get('pim_catalog.saver.product');
        $saver->save($id);

    
        return new Response(
            '<html><body>foo</body></html>'
        );
    }

}

Cependant, je reçois cette erreur :

[2020–11–05 13:44:58] request.CRITICAL: Uncaught PHP Exception Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException: "The "pim_catalog.saver.product" service or alias has been removed or inlined when the container was compiled. You should either make it public, or stop using the container directly and use dependency injection instead." at /var/www/html/pim/vendor/symfony/dependency-injection/Container.php line 275 {"exception":"[object] (Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException(code: 0): The "pim_catalog.saver.product" service or alias has been removed or inlined when the container was compiled. You should either make it public, or stop using the container directly and use dependency injection instead. at /var/www/html/pim/vendor/symfony/dependency-injection/Container.php:275)"} []

Je voudrais donc surcharger la déclaration de ce service en ajoutant un fichier services.YML dans le répertoire de configuration de mon bundle (mybundle/Resources/config/services.YML) :

services: pim_catalog.saver.product: public: true priority: 999

Cependant, cela ne fonctionne toujours pas.

D’après la documentation de Symfony 4, je devrais peut-être créer une classe d’extension. Elle devrait avoir le même nom que celle d’Akénéo, mais je ne trouve pas cette dernière.

Que dois-je faire ?

Merci d’avance et bonne journée. :)

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte