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.