GET http://www.dev.michaeljpitz.com/article/migrations-doctrine-bonnes-pratiques

Components

4 Twig Components
12 Render Count
8 ms Render Time
4.0 MiB Memory Usage

Components

Name Metadata Render Count Render Time
CategoryBadge
[Anonymous]
components/CategoryBadge.html.twig
7 0.77ms
ArticleCard
[Anonymous]
components/ArticleCard.html.twig
3 3.82ms
Navbar
"App\Twig\Components\NavbarComponent"
components/Navbar.html.twig
1 3.43ms
Breadcrumb
"App\Twig\Components\BreadcrumbComponent"
components/Breadcrumb.html.twig
1 0.60ms

Render calls

Navbar App\Twig\Components\NavbarComponent 4.0 MiB 3.43 ms
Input props
[]
Attributes
[]
Component
App\Twig\Components\NavbarComponent {#1588
  -categoryRepository: App\Repository\CategoryRepository {#1072 …}
}
Breadcrumb App\Twig\Components\BreadcrumbComponent 4.0 MiB 0.60 ms
Input props
[
  "items" => [
    [
      "label" => "Accueil"
      "url" => "/"
    ]
    [
      "label" => "Articles"
      "url" => "/articles"
    ]
    [
      "label" => "PHP"
      "url" => "/categorie/php"
    ]
    [
      "label" => "Doctrine ORM"
      "url" => "/categorie/doctrine-orm"
    ]
    [
      "label" => "Doctrine Migrations"
      "url" => "/categorie/doctrine-migrations"
    ]
    [
      "label" => "Les migrations Doctrine : bonnes pratiques"
    ]
  ]
]
Attributes
[]
Component
App\Twig\Components\BreadcrumbComponent {#1693
  +items: [
    [
      "label" => "Accueil"
      "url" => "/"
    ]
    [
      "label" => "Articles"
      "url" => "/articles"
    ]
    [
      "label" => "PHP"
      "url" => "/categorie/php"
    ]
    [
      "label" => "Doctrine ORM"
      "url" => "/categorie/doctrine-orm"
    ]
    [
      "label" => "Doctrine Migrations"
      "url" => "/categorie/doctrine-migrations"
    ]
    [
      "label" => "Les migrations Doctrine : bonnes pratiques"
    ]
  ]
}
CategoryBadge
[Anonymous]
4.0 MiB 0.38 ms
Input props
[
  "category" => App\Entity\Category {#1165
    -id: 284
    -title: "PHP"
    -slug: "php"
    -color: "#7b4f9e"
    -description: "Tout sur le langage PHP : bonnes pratiques, nouveautés et astuces."
    -level: 0
    -articles: Doctrine\ORM\PersistentCollection {#1191 …}
    -pages: Doctrine\ORM\PersistentCollection {#1209 …}
  }
]
Attributes
[
  "category" => "PHP"
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#1720
  -props: [
    "category" => App\Entity\Category {#1165
      -id: 284
      -title: "PHP"
      -slug: "php"
      -color: "#7b4f9e"
      -description: "Tout sur le langage PHP : bonnes pratiques, nouveautés et astuces."
      -level: 0
      -articles: Doctrine\ORM\PersistentCollection {#1191 …}
      -pages: Doctrine\ORM\PersistentCollection {#1209 …}
    }
  ]
}
CategoryBadge
[Anonymous]
4.0 MiB 0.05 ms
Input props
[
  "category" => App\Entity\Category {#1203
    -id: 287
    -title: "Doctrine ORM"
    -slug: "doctrine-orm"
    -color: "#f26522"
    -description: "Doctrine ORM : entités, repositories et requêtes DQL."
    -level: 284
    -articles: Doctrine\ORM\PersistentCollection {#1210 …}
    -pages: Doctrine\ORM\PersistentCollection {#1212 …}
  }
]
Attributes
[
  "category" => "Doctrine ORM"
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#1740
  -props: [
    "category" => App\Entity\Category {#1203
      -id: 287
      -title: "Doctrine ORM"
      -slug: "doctrine-orm"
      -color: "#f26522"
      -description: "Doctrine ORM : entités, repositories et requêtes DQL."
      -level: 284
      -articles: Doctrine\ORM\PersistentCollection {#1210 …}
      -pages: Doctrine\ORM\PersistentCollection {#1212 …}
    }
  ]
}
CategoryBadge
[Anonymous]
4.0 MiB 0.06 ms
Input props
[
  "category" => App\Entity\Category {#1240
    -id: 291
    -title: "Doctrine Migrations"
    -slug: "doctrine-migrations"
    -color: "#c24f1a"
    -description: "Gestion des migrations de schéma avec Doctrine Migrations."
    -level: 287
    -articles: Doctrine\ORM\PersistentCollection {#1241 …}
    -pages: Doctrine\ORM\PersistentCollection {#1243 …}
  }
]
Attributes
[
  "category" => "Doctrine Migrations"
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#1757
  -props: [
    "category" => App\Entity\Category {#1240
      -id: 291
      -title: "Doctrine Migrations"
      -slug: "doctrine-migrations"
      -color: "#c24f1a"
      -description: "Gestion des migrations de schéma avec Doctrine Migrations."
      -level: 287
      -articles: Doctrine\ORM\PersistentCollection {#1241 …}
      -pages: Doctrine\ORM\PersistentCollection {#1243 …}
    }
  ]
}
ArticleCard
[Anonymous]
4.0 MiB 2.23 ms
Input props
[
  "article" => App\Entity\Article {#1346
    -id: 718
    -title: "Introduction à PHP 8.3 : les nouveautés essentielles"
    -slug: "introduction-php-83-nouveautes-essentielles"
    -content: "<h2>Introduction à PHP 8.3 : les nouveautés essentielles</h2><p>Cet article explore en détail les concepts fondamentaux et avancés liés à ce sujet. Que vous soyez débutant ou développeur confirmé, vous trouverez ici des informations pratiques et des exemples concrets.</p><h3>Pourquoi ce sujet est important</h3><p>Dans le développement web moderne, maîtriser ces concepts vous permettra d'écrire un code plus maintenable, plus performant et plus sécurisé. Les équipes qui adoptent ces pratiques constatent une réduction significative du temps de débogage.</p><h3>Mise en pratique</h3><p>Voici comment appliquer ces connaissances dans un projet Symfony réel. Commencez par configurer votre environnement de développement correctement, puis suivez les étapes décrites ci-dessous.</p><pre><code>// Exemple de code commenté&#10;// Adaptez ce code à votre contexte</code></pre><h3>Points clés à retenir</h3><ul><li>Toujours utiliser le typage strict en PHP 8+</li><li>Privilégier les attributs PHP aux annotations pour la configuration</li><li>Tester régulièrement avec PHPUnit pour garantir la stabilité</li></ul><p>N'hésitez pas à laisser un commentaire si vous avez des questions ou des suggestions d'amélioration.</p>"
    -excerpt: "Découvrez les nouvelles fonctionnalités de PHP 8.3 : types en lecture seule, json_validate() et bien plus encore."
    -featuredImage: null
    -imageFile: null
    -isPublished: true
    -createdAt: DateTimeImmutable @1782709593 {#1253
      date: 2026-06-29 05:06:33.0 UTC (+00:00)
    }
    -publishedAt: DateTimeImmutable @1782623193 {#1374
      date: 2026-06-28 05:06:33.0 UTC (+00:00)
    }
    -updatedAt: null
    -categories: Doctrine\ORM\PersistentCollection {#1375 …}
    -comments: Doctrine\ORM\PersistentCollection {#1367 …}
    -ratings: Doctrine\ORM\PersistentCollection {#1365 …}
  }
]
Attributes
[
  "article" => "Introduction à PHP 8.3 : les nouveautés essentielles"
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#1792
  -props: [
    "article" => App\Entity\Article {#1346
      -id: 718
      -title: "Introduction à PHP 8.3 : les nouveautés essentielles"
      -slug: "introduction-php-83-nouveautes-essentielles"
      -content: "<h2>Introduction à PHP 8.3 : les nouveautés essentielles</h2><p>Cet article explore en détail les concepts fondamentaux et avancés liés à ce sujet. Que vous soyez débutant ou développeur confirmé, vous trouverez ici des informations pratiques et des exemples concrets.</p><h3>Pourquoi ce sujet est important</h3><p>Dans le développement web moderne, maîtriser ces concepts vous permettra d'écrire un code plus maintenable, plus performant et plus sécurisé. Les équipes qui adoptent ces pratiques constatent une réduction significative du temps de débogage.</p><h3>Mise en pratique</h3><p>Voici comment appliquer ces connaissances dans un projet Symfony réel. Commencez par configurer votre environnement de développement correctement, puis suivez les étapes décrites ci-dessous.</p><pre><code>// Exemple de code commenté&#10;// Adaptez ce code à votre contexte</code></pre><h3>Points clés à retenir</h3><ul><li>Toujours utiliser le typage strict en PHP 8+</li><li>Privilégier les attributs PHP aux annotations pour la configuration</li><li>Tester régulièrement avec PHPUnit pour garantir la stabilité</li></ul><p>N'hésitez pas à laisser un commentaire si vous avez des questions ou des suggestions d'amélioration.</p>"
      -excerpt: "Découvrez les nouvelles fonctionnalités de PHP 8.3 : types en lecture seule, json_validate() et bien plus encore."
      -featuredImage: null
      -imageFile: null
      -isPublished: true
      -createdAt: DateTimeImmutable @1782709593 {#1253
        date: 2026-06-29 05:06:33.0 UTC (+00:00)
      }
      -publishedAt: DateTimeImmutable @1782623193 {#1374
        date: 2026-06-28 05:06:33.0 UTC (+00:00)
      }
      -updatedAt: null
      -categories: Doctrine\ORM\PersistentCollection {#1375 …}
      -comments: Doctrine\ORM\PersistentCollection {#1367 …}
      -ratings: Doctrine\ORM\PersistentCollection {#1365 …}
    }
  ]
}
CategoryBadge
[Anonymous]
4.0 MiB 0.10 ms
Input props
[
  "category" => App\Entity\Category {#1165
    -id: 284
    -title: "PHP"
    -slug: "php"
    -color: "#7b4f9e"
    -description: "Tout sur le langage PHP : bonnes pratiques, nouveautés et astuces."
    -level: 0
    -articles: Doctrine\ORM\PersistentCollection {#1191 …}
    -pages: Doctrine\ORM\PersistentCollection {#1209 …}
  }
]
Attributes
[
  "category" => "PHP"
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#1822
  -props: [
    "category" => App\Entity\Category {#1165
      -id: 284
      -title: "PHP"
      -slug: "php"
      -color: "#7b4f9e"
      -description: "Tout sur le langage PHP : bonnes pratiques, nouveautés et astuces."
      -level: 0
      -articles: Doctrine\ORM\PersistentCollection {#1191 …}
      -pages: Doctrine\ORM\PersistentCollection {#1209 …}
    }
  ]
}
ArticleCard
[Anonymous]
4.0 MiB 0.89 ms
Input props
[
  "article" => App\Entity\Article {#1361
    -id: 738
    -title: "Les Array en PHP"
    -slug: "les-array-en-php"
    -content: """
      <p>\u{200B}En <strong>PHP,</strong> un&nbsp;<code><strong>array</strong></code><strong> </strong>(tableau) est une structure de données ordonnée qui associe des <strong>valeurs à des clés</strong>, fonctionnant comme une carte (map), une liste, un dictionnaire ou une collection. Il permet de stocker plusieurs valeurs de types différents (nombres, chaînes, booléens) dans une seule variable. Les tableaux peuvent être numériques (<strong>indexés </strong>par des nombres) ou <strong>associatifs </strong>(indexés par des chaînes).</p>\n
      \n
      <p><strong>Ils peuvent être multidimensionnel (imbriqué)</strong></p>\n
      \n
      <p><strong>Ils premettent de stocker un grand nombre de valeur dans une seule variable.</strong></p>\n
      \n
      <p style="line-height:1.38"><span style="font-size:15px;color:#000000;background-color:transparent">Les<strong> tableaux en PHP</strong> sont omniprésents : des entrées utilisateur aux résultats de base de données, en passant par les paramètres et les configurations. Ils sont incroyablement flexibles, mais la plupart d&apos;entre nous n&apos;en connaissent qu&apos;une infime partie.</span></p>\n
      \n
      <h2 style="line-height: 1.38"><span style="font-size:15px;color:#000000;background-color:transparent">Déclaration d&apos;un tableau</span></h2>\n
      \n
      <p>[php]# la plus ancienne méthode, mais<br>\n
      # est toujours fonctionnelle!<br>\n
      $tableau1 = array();<br>\n
      <br>\n
      # ou la plus fréquente<br>\n
      $tableau2 = [];<br>\n
      <br>\n
      # Débogage, donne 2 tableaux vides<br>\n
      var_dump($tableau1, $tableau2);[/php]</p>\n
      \n
      <h2>Tableau indexé</h2>\n
      \n
      <p>Des numériques en partant de 0 servent de clé pour pouvoir afficher la valeur en question.</p>\n
      \n
      <p>[php]# Ce type de tableau n&apos;est déclaré qu&apos;avec des valeurs<br>\n
      $tab_index = [<br>\n
          &apos;un&apos;, <br>\n
          &apos;deux&apos;, <br>\n
          &apos;trois&apos;,<br>\n
      ];<br>\n
      <br>\n
      <br>\n
      # On veut afficher la &apos;un&apos;<br>\n
      echo $tab_index[0];<br>\n
      <br>\n
      # retour à la ligne (\n)<br>\n
      echo PHP_EOL;<br>\n
      <br>\n
      <br>\n
      # débogage<br>\n
      var_dump($tab_index);[/php]</p>\n
      \n
      <p><br>\n
      </p>\n
      \n
      <h2>Tableau associatif&nbsp;</h2>\n
      \n
      <p>Des chaînes de caractères servent de clé pour pouvoir afficher la valeur en question.</p>\n
      \n
      <p><br>\n
      </p>\n
      \n
      <p>[php]# Ce type de tableau est déclaré qu&apos;avec des clés =&gt; valeurs<br>\n
      $tab_assoc = [<br>\n
          &apos;one&apos;=&gt;&apos;un&apos;,<br>\n
           &apos;two&apos;=&gt;&apos;deux&apos;, <br>\n
          &apos;three&apos;=&gt;&apos;trois&apos;<br>\n
       ];<br>\n
      <br>\n
      # On veut afficher la &apos;un&apos;<br>\n
      echo $tab_assoc[&apos;one&apos;];<br>\n
      <br>\n
      # retour à la ligne<br>\n
      echo PHP_EOL;<br>\n
      <br>\n
      # débogage<br>\n
      var_dump($tab_assoc);[/php]</p>\n
      \n
      <h2>Tableau Multidimensionnel</h2>\n
      \n
      <p>Un tableau peut avoir des sous tableaux, et donc contenir énormément d&apos;informations !</p>\n
      \n
      <p>[php]# Liste d&apos;élèves ayant participer à 3 contrôles<br>\n
      <br>\n
      $stagiaires = [<br>\n
          &apos;classe&apos; =&gt; &apos;2CB&apos;,<br>\n
          &apos;date&apos; =&gt; &apos;2026-04-18&apos;,<br>\n
          [<br>\n
              &apos;nom&apos; =&gt; &apos;Ben Adj&apos;,<br>\n
              &apos;prenom&apos; =&gt; &apos;Meidhy&apos;,<br>\n
              &apos;matière&apos; =&gt; [<br>\n
                  &apos;Français&apos; =&gt; &apos;18.5/20&apos;,<br>\n
                  &apos;Géographie&apos; =&gt; &apos;16/20&apos;,<br>\n
                  &apos;Mathématique&apos; =&gt; &apos;14.5/20&apos;,<br>\n
              ],<br>\n
          ],<br>\n
           [<br>\n
              &apos;nom&apos; =&gt; &apos;Pitz&apos;,<br>\n
              &apos;prenom&apos; =&gt; &apos;Michaël&apos;,<br>\n
              &apos;matière&apos; =&gt; [<br>\n
                  &apos;Français&apos; =&gt; &apos;17/20&apos;,<br>\n
                  &apos;Géographie&apos; =&gt; &apos;18/20&apos;,<br>\n
                  &apos;Mathématique&apos; =&gt; &apos;17/20&apos;,<br>\n
              ],<br>\n
          ],<br>\n
      ];</p>\n
      \n
      <p><br>\n
      </p>\n
      \n
      <p># pour récupérer la cote en Français de Pitz Michaël:</p>\n
      \n
      <p>echo $stagiaires[1][&apos;matière&apos;][&apos;Français&apos;];</p>\n
      \n
      <p><br>\n
      </p>\n
      \n
      <p># retour à la ligne</p>\n
      \n
      <p>echo PHP_EOL;</p>\n
      \n
      <p><br>\n
      </p>\n
      \n
      <p># Débogage avec print_r (plus lisible)</p>\n
      \n
      <p>print_r($stagiaires);[/php]</p>\n
      \n
      <p><br>\n
      </p>\n
      """
    -excerpt: "Un tableau en PHP est en fait une carte ordonnée qui associe des valeurs à des clés."
    -featuredImage: "903ecff8abe47fd4f6e0d8e222a5ee965297926d.jpg"
    -imageFile: null
    -isPublished: true
    -createdAt: DateTimeImmutable @1782709593 {#1363
      date: 2026-06-29 05:06:33.0 UTC (+00:00)
    }
    -publishedAt: DateTimeImmutable @1782623193 {#1362
      date: 2026-06-28 05:06:33.0 UTC (+00:00)
    }
    -updatedAt: null
    -categories: Doctrine\ORM\PersistentCollection {#1360 …}
    -comments: Doctrine\ORM\PersistentCollection {#1358 …}
    -ratings: Doctrine\ORM\PersistentCollection {#1356 …}
  }
]
Attributes
[
  "article" => "Les Array en PHP"
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#1836
  -props: [
    "article" => App\Entity\Article {#1361
      -id: 738
      -title: "Les Array en PHP"
      -slug: "les-array-en-php"
      -content: """
        <p>\u{200B}En <strong>PHP,</strong> un&nbsp;<code><strong>array</strong></code><strong> </strong>(tableau) est une structure de données ordonnée qui associe des <strong>valeurs à des clés</strong>, fonctionnant comme une carte (map), une liste, un dictionnaire ou une collection. Il permet de stocker plusieurs valeurs de types différents (nombres, chaînes, booléens) dans une seule variable. Les tableaux peuvent être numériques (<strong>indexés </strong>par des nombres) ou <strong>associatifs </strong>(indexés par des chaînes).</p>\n
        \n
        <p><strong>Ils peuvent être multidimensionnel (imbriqué)</strong></p>\n
        \n
        <p><strong>Ils premettent de stocker un grand nombre de valeur dans une seule variable.</strong></p>\n
        \n
        <p style="line-height:1.38"><span style="font-size:15px;color:#000000;background-color:transparent">Les<strong> tableaux en PHP</strong> sont omniprésents : des entrées utilisateur aux résultats de base de données, en passant par les paramètres et les configurations. Ils sont incroyablement flexibles, mais la plupart d&apos;entre nous n&apos;en connaissent qu&apos;une infime partie.</span></p>\n
        \n
        <h2 style="line-height: 1.38"><span style="font-size:15px;color:#000000;background-color:transparent">Déclaration d&apos;un tableau</span></h2>\n
        \n
        <p>[php]# la plus ancienne méthode, mais<br>\n
        # est toujours fonctionnelle!<br>\n
        $tableau1 = array();<br>\n
        <br>\n
        # ou la plus fréquente<br>\n
        $tableau2 = [];<br>\n
        <br>\n
        # Débogage, donne 2 tableaux vides<br>\n
        var_dump($tableau1, $tableau2);[/php]</p>\n
        \n
        <h2>Tableau indexé</h2>\n
        \n
        <p>Des numériques en partant de 0 servent de clé pour pouvoir afficher la valeur en question.</p>\n
        \n
        <p>[php]# Ce type de tableau n&apos;est déclaré qu&apos;avec des valeurs<br>\n
        $tab_index = [<br>\n
            &apos;un&apos;, <br>\n
            &apos;deux&apos;, <br>\n
            &apos;trois&apos;,<br>\n
        ];<br>\n
        <br>\n
        <br>\n
        # On veut afficher la &apos;un&apos;<br>\n
        echo $tab_index[0];<br>\n
        <br>\n
        # retour à la ligne (\n)<br>\n
        echo PHP_EOL;<br>\n
        <br>\n
        <br>\n
        # débogage<br>\n
        var_dump($tab_index);[/php]</p>\n
        \n
        <p><br>\n
        </p>\n
        \n
        <h2>Tableau associatif&nbsp;</h2>\n
        \n
        <p>Des chaînes de caractères servent de clé pour pouvoir afficher la valeur en question.</p>\n
        \n
        <p><br>\n
        </p>\n
        \n
        <p>[php]# Ce type de tableau est déclaré qu&apos;avec des clés =&gt; valeurs<br>\n
        $tab_assoc = [<br>\n
            &apos;one&apos;=&gt;&apos;un&apos;,<br>\n
             &apos;two&apos;=&gt;&apos;deux&apos;, <br>\n
            &apos;three&apos;=&gt;&apos;trois&apos;<br>\n
         ];<br>\n
        <br>\n
        # On veut afficher la &apos;un&apos;<br>\n
        echo $tab_assoc[&apos;one&apos;];<br>\n
        <br>\n
        # retour à la ligne<br>\n
        echo PHP_EOL;<br>\n
        <br>\n
        # débogage<br>\n
        var_dump($tab_assoc);[/php]</p>\n
        \n
        <h2>Tableau Multidimensionnel</h2>\n
        \n
        <p>Un tableau peut avoir des sous tableaux, et donc contenir énormément d&apos;informations !</p>\n
        \n
        <p>[php]# Liste d&apos;élèves ayant participer à 3 contrôles<br>\n
        <br>\n
        $stagiaires = [<br>\n
            &apos;classe&apos; =&gt; &apos;2CB&apos;,<br>\n
            &apos;date&apos; =&gt; &apos;2026-04-18&apos;,<br>\n
            [<br>\n
                &apos;nom&apos; =&gt; &apos;Ben Adj&apos;,<br>\n
                &apos;prenom&apos; =&gt; &apos;Meidhy&apos;,<br>\n
                &apos;matière&apos; =&gt; [<br>\n
                    &apos;Français&apos; =&gt; &apos;18.5/20&apos;,<br>\n
                    &apos;Géographie&apos; =&gt; &apos;16/20&apos;,<br>\n
                    &apos;Mathématique&apos; =&gt; &apos;14.5/20&apos;,<br>\n
                ],<br>\n
            ],<br>\n
             [<br>\n
                &apos;nom&apos; =&gt; &apos;Pitz&apos;,<br>\n
                &apos;prenom&apos; =&gt; &apos;Michaël&apos;,<br>\n
                &apos;matière&apos; =&gt; [<br>\n
                    &apos;Français&apos; =&gt; &apos;17/20&apos;,<br>\n
                    &apos;Géographie&apos; =&gt; &apos;18/20&apos;,<br>\n
                    &apos;Mathématique&apos; =&gt; &apos;17/20&apos;,<br>\n
                ],<br>\n
            ],<br>\n
        ];</p>\n
        \n
        <p><br>\n
        </p>\n
        \n
        <p># pour récupérer la cote en Français de Pitz Michaël:</p>\n
        \n
        <p>echo $stagiaires[1][&apos;matière&apos;][&apos;Français&apos;];</p>\n
        \n
        <p><br>\n
        </p>\n
        \n
        <p># retour à la ligne</p>\n
        \n
        <p>echo PHP_EOL;</p>\n
        \n
        <p><br>\n
        </p>\n
        \n
        <p># Débogage avec print_r (plus lisible)</p>\n
        \n
        <p>print_r($stagiaires);[/php]</p>\n
        \n
        <p><br>\n
        </p>\n
        """
      -excerpt: "Un tableau en PHP est en fait une carte ordonnée qui associe des valeurs à des clés."
      -featuredImage: "903ecff8abe47fd4f6e0d8e222a5ee965297926d.jpg"
      -imageFile: null
      -isPublished: true
      -createdAt: DateTimeImmutable @1782709593 {#1363
        date: 2026-06-29 05:06:33.0 UTC (+00:00)
      }
      -publishedAt: DateTimeImmutable @1782623193 {#1362
        date: 2026-06-28 05:06:33.0 UTC (+00:00)
      }
      -updatedAt: null
      -categories: Doctrine\ORM\PersistentCollection {#1360 …}
      -comments: Doctrine\ORM\PersistentCollection {#1358 …}
      -ratings: Doctrine\ORM\PersistentCollection {#1356 …}
    }
  ]
}
CategoryBadge
[Anonymous]
4.0 MiB 0.07 ms
Input props
[
  "category" => App\Entity\Category {#1165
    -id: 284
    -title: "PHP"
    -slug: "php"
    -color: "#7b4f9e"
    -description: "Tout sur le langage PHP : bonnes pratiques, nouveautés et astuces."
    -level: 0
    -articles: Doctrine\ORM\PersistentCollection {#1191 …}
    -pages: Doctrine\ORM\PersistentCollection {#1209 …}
  }
]
Attributes
[
  "category" => "PHP"
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#1861
  -props: [
    "category" => App\Entity\Category {#1165
      -id: 284
      -title: "PHP"
      -slug: "php"
      -color: "#7b4f9e"
      -description: "Tout sur le langage PHP : bonnes pratiques, nouveautés et astuces."
      -level: 0
      -articles: Doctrine\ORM\PersistentCollection {#1191 …}
      -pages: Doctrine\ORM\PersistentCollection {#1209 …}
    }
  ]
}
ArticleCard
[Anonymous]
4.0 MiB 0.70 ms
Input props
[
  "article" => App\Entity\Article {#1352
    -id: 720
    -title: "Doctrine ORM : optimiser vos requêtes avec QueryBuilder"
    -slug: "doctrine-orm-optimiser-requetes-querybuilder"
    -content: "<h2>Doctrine ORM : optimiser vos requêtes avec QueryBuilder</h2><p>Cet article explore en détail les concepts fondamentaux et avancés liés à ce sujet. Que vous soyez débutant ou développeur confirmé, vous trouverez ici des informations pratiques et des exemples concrets.</p><h3>Pourquoi ce sujet est important</h3><p>Dans le développement web moderne, maîtriser ces concepts vous permettra d'écrire un code plus maintenable, plus performant et plus sécurisé. Les équipes qui adoptent ces pratiques constatent une réduction significative du temps de débogage.</p><h3>Mise en pratique</h3><p>Voici comment appliquer ces connaissances dans un projet Symfony réel. Commencez par configurer votre environnement de développement correctement, puis suivez les étapes décrites ci-dessous.</p><pre><code>// Exemple de code commenté&#10;// Adaptez ce code à votre contexte</code></pre><h3>Points clés à retenir</h3><ul><li>Toujours utiliser le typage strict en PHP 8+</li><li>Privilégier les attributs PHP aux annotations pour la configuration</li><li>Tester régulièrement avec PHPUnit pour garantir la stabilité</li></ul><p>N'hésitez pas à laisser un commentaire si vous avez des questions ou des suggestions d'amélioration.</p>"
    -excerpt: "Apprenez à construire des requêtes performantes avec le QueryBuilder de Doctrine ORM."
    -featuredImage: null
    -imageFile: null
    -isPublished: true
    -createdAt: DateTimeImmutable @1782709593 {#1354
      date: 2026-06-29 05:06:33.0 UTC (+00:00)
    }
    -publishedAt: DateTimeImmutable @1782104793 {#1353
      date: 2026-06-22 05:06:33.0 UTC (+00:00)
    }
    -updatedAt: null
    -categories: Doctrine\ORM\PersistentCollection {#1351 …}
    -comments: Doctrine\ORM\PersistentCollection {#1349 …}
    -ratings: Doctrine\ORM\PersistentCollection {#1347 …}
  }
]
Attributes
[
  "article" => "Doctrine ORM : optimiser vos requêtes avec QueryBuilder"
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#1875
  -props: [
    "article" => App\Entity\Article {#1352
      -id: 720
      -title: "Doctrine ORM : optimiser vos requêtes avec QueryBuilder"
      -slug: "doctrine-orm-optimiser-requetes-querybuilder"
      -content: "<h2>Doctrine ORM : optimiser vos requêtes avec QueryBuilder</h2><p>Cet article explore en détail les concepts fondamentaux et avancés liés à ce sujet. Que vous soyez débutant ou développeur confirmé, vous trouverez ici des informations pratiques et des exemples concrets.</p><h3>Pourquoi ce sujet est important</h3><p>Dans le développement web moderne, maîtriser ces concepts vous permettra d'écrire un code plus maintenable, plus performant et plus sécurisé. Les équipes qui adoptent ces pratiques constatent une réduction significative du temps de débogage.</p><h3>Mise en pratique</h3><p>Voici comment appliquer ces connaissances dans un projet Symfony réel. Commencez par configurer votre environnement de développement correctement, puis suivez les étapes décrites ci-dessous.</p><pre><code>// Exemple de code commenté&#10;// Adaptez ce code à votre contexte</code></pre><h3>Points clés à retenir</h3><ul><li>Toujours utiliser le typage strict en PHP 8+</li><li>Privilégier les attributs PHP aux annotations pour la configuration</li><li>Tester régulièrement avec PHPUnit pour garantir la stabilité</li></ul><p>N'hésitez pas à laisser un commentaire si vous avez des questions ou des suggestions d'amélioration.</p>"
      -excerpt: "Apprenez à construire des requêtes performantes avec le QueryBuilder de Doctrine ORM."
      -featuredImage: null
      -imageFile: null
      -isPublished: true
      -createdAt: DateTimeImmutable @1782709593 {#1354
        date: 2026-06-29 05:06:33.0 UTC (+00:00)
      }
      -publishedAt: DateTimeImmutable @1782104793 {#1353
        date: 2026-06-22 05:06:33.0 UTC (+00:00)
      }
      -updatedAt: null
      -categories: Doctrine\ORM\PersistentCollection {#1351 …}
      -comments: Doctrine\ORM\PersistentCollection {#1349 …}
      -ratings: Doctrine\ORM\PersistentCollection {#1347 …}
    }
  ]
}
CategoryBadge
[Anonymous]
4.0 MiB 0.06 ms
Input props
[
  "category" => App\Entity\Category {#1165
    -id: 284
    -title: "PHP"
    -slug: "php"
    -color: "#7b4f9e"
    -description: "Tout sur le langage PHP : bonnes pratiques, nouveautés et astuces."
    -level: 0
    -articles: Doctrine\ORM\PersistentCollection {#1191 …}
    -pages: Doctrine\ORM\PersistentCollection {#1209 …}
  }
]
Attributes
[
  "category" => "PHP"
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#1900
  -props: [
    "category" => App\Entity\Category {#1165
      -id: 284
      -title: "PHP"
      -slug: "php"
      -color: "#7b4f9e"
      -description: "Tout sur le langage PHP : bonnes pratiques, nouveautés et astuces."
      -level: 0
      -articles: Doctrine\ORM\PersistentCollection {#1191 …}
      -pages: Doctrine\ORM\PersistentCollection {#1209 …}
    }
  ]
}
CategoryBadge
[Anonymous]
4.0 MiB 0.05 ms
Input props
[
  "category" => App\Entity\Category {#1203
    -id: 287
    -title: "Doctrine ORM"
    -slug: "doctrine-orm"
    -color: "#f26522"
    -description: "Doctrine ORM : entités, repositories et requêtes DQL."
    -level: 284
    -articles: Doctrine\ORM\PersistentCollection {#1210 …}
    -pages: Doctrine\ORM\PersistentCollection {#1212 …}
  }
]
Attributes
[
  "category" => "Doctrine ORM"
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#1920
  -props: [
    "category" => App\Entity\Category {#1203
      -id: 287
      -title: "Doctrine ORM"
      -slug: "doctrine-orm"
      -color: "#f26522"
      -description: "Doctrine ORM : entités, repositories et requêtes DQL."
      -level: 284
      -articles: Doctrine\ORM\PersistentCollection {#1210 …}
      -pages: Doctrine\ORM\PersistentCollection {#1212 …}
    }
  ]
}