Bonjour tous le monde,

j'ai créé un service :

<?php

namespace Logs\LogsBundle\Manager;

use Doctrine\Common\Persistence\ObjectManager;
use Logs\LogsBundle\Entity\Logs;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Utilisateurs\UtilisateursBundle\Entity\Utilisateurs;

class LogManager{

    /**
     * @var ObjectManager
     */
    private $em;
    /**
     * @var ContainerInterface
     */
    private $container;

    public function __construct(ObjectManager $em, ContainerInterface $container)
    {

        $this->em = $em;
        $this->container = $container;
    }

    /**
     * Creation d'un log
     *
     * @param Utilisateurs $utilisateurs
     * @param string $description
     */
    public function creationLog(string $description) {
        $user = $this->container->get("security.token_storage")->getToken()->getUser();
        $log = new Logs();
        $log->setDateCreation(new \DateTime());
        $log->setUtilisateurs($user);
        $log->setDescription($description);

        $this->em->persist($log);
        $this->em->flush();
    }
}

Je l'ai déclaré dans service.yml

app.log.manager:
        class: Logs\LogsBundle\Manager\LogManager
        arguments: ['@doctrine.orm.entity_manager', '@service_container']

Mais quand je veux l'utiliser dans mon controller :

public function AddAction(Request $request)
    {
        $test = $this->get("app.log.manager");
        $test->creationLog("je suis un log");

        /*..........*/
    }

j'obtiens l'erreur :

You have requested a non-existent service "app.log.manager".

Il me semble pourtant avoir tout fais, je comprends pas.
Cordialement.

2 réponses


Manuel Alvarez-Iglisias
Auteur
Réponse acceptée

Bonjour, non en fait je déclarais pas le service où il fallait. je le déclairais dans app/config/services.yml et non dans le fichier services.yml du bundle.

Salut, As-tu supprimé le contenu du répertoire cache (/var/cache) ?
L'erreur pourrais venir de là.