IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

getDoctrine obsolète Symfony 5.4


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 211
    Par défaut getDoctrine obsolète Symfony 5.4
    Bonjour,

    Je m'aperçois en lançant un nouveau projet avec la version 5.4, que getDoctrine est devenu obsolète alors j'essaie de cette façon, mais il ne reconnait pas mes variables pour un projet qui est entièrement fonctionnel avec la version 5.3.9:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    <?php
     
    namespace App\Controller;
     
    use App\Entity\Article;
    use App\Entity\Category;
    use App\Repository\ArticleRepository;
    use App\Repository\CategoryRepository;
    use Doctrine\Persistence\ManagerRegistry;
    use Knp\Component\Pager\PaginatorInterface;
    use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
    use Symfony\Component\HttpFoundation\Request;
    use Symfony\Component\HttpFoundation\Response;
    use Symfony\Component\Routing\Annotation\Route;
     
     
    class HomeController extends AbstractController
    {
        public $repoArticle;
        public $repoCategory;
     
        public function __construct(ArticleRepository $repoArticle,
                                    CategoryRepository $repoCategory,
                                    private ManagerRegistry $doctrine)
        {
            $this->repoArticle = $repoArticle;
            $this->repoCategory = $repoCategory;
        }
     
        /**
         * @Route("/", name="home")
         */
        //HOME
        public function index(): Response
        {
            $repoArticle = $this->doctrine->getRepository(Article::class);
            $repoCategory = $this->doctrine->getRepository(Category::class);
     
            $categories = $repoCategory->findAll();
            // dd($repoCategory);
            $article = $repoArticle->lastFive();
            $articleDer = $repoArticle->randomTree();
     
            return $this->render("home/index.html.twig", [
                'article' => $article,
                'articleDer' => $articleDer,
                'categories' => $categories,
            ]);
    Je vous remercie de votre aide

  2. #2
    Expert confirmé

    Avatar de -Nikopol-
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2013
    Messages
    2 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 174
    Billets dans le blog
    5
    Par défaut
    à ma connaissance le manager de doctrine n'a pas changé entre ces deux versions.
    Je fais mon contructeur ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        private $manager;
     
        public function __construct(EntityManagerInterface $manager)
        {
            $this->manager = $manager;
        }
    mais tu peux aussi passer par l'injection de dépendance dans les fonctions de ton controller
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        /**
         * @Route("/home")
         */
        public function index(EntityManagerInterface $manager): Response
        {
            //todo
        }
    idem pour tes repositories tu peux passer par l'injection de dépendance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        /**
         * @Route("/home")
         */
        public function index(EntityManagerInterface $manager, ArticleRepository $ArticleRepository): Response
        {
            $articles = $ArticleRepository->findAll();
            //dans le cas d'une persistance des données tu as besoin du manager mais dans le cas d'un retour d'un response vers un twig tu n'en a pas besoin.
     
           //todo
        }
    dans ton code tu fais deux fois l'instanciation des objets ArticleRepository et CategoryRepository

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [1.x] Problème installation symfony
    Par Nout dans le forum Symfony
    Réponses: 3
    Dernier message: 27/05/2007, 22h26
  2. [C#] new hastable obsolète
    Par mobscene dans le forum Windows Forms
    Réponses: 5
    Dernier message: 15/12/2006, 16h06
  3. Migration MySql 4 - Php 5 : connaitre fonctions obsolètes
    Par chris-ren dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 20/02/2006, 11h48
  4. Réponses: 2
    Dernier message: 16/01/2006, 22h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo