Redirect 301 redirect from GET @training_exercise_group (099e7b)

GET https://test.fitmetrics.ch/fr/exercice/6733d73b94185-moulinet-avec-kettlebell?alias=4916

Components

20 Twig Components
120 Render Count
648 ms Render Time
86.5 MiB Memory Usage

Components

Name Metadata Render Count Render Time
media:icon
"App\Twig\Components\Media\Icon"
components/media/icon.html.twig
67 3.57ms
ui:badge
"App\Twig\Components\Ui\Badge"
components/ui/badge.html.twig
19 2.32ms
faq
"App\Twig\Components\Ui\FaqComponent"
components/ui/faq.html.twig
5 1.44ms
raw-faq
"App\Twig\Components\Ui\RawFaqComponent"
components/ui/raw-faq.html.twig
5 0.48ms
utils:theme-switcher
[Anonymous]
components/utils/theme-switcher.html.twig
3 1.44ms
ad:square:fluid
"App\Twig\Components\Ad\AdSquareFluid"
components/ad/square-fluid.html.twig
3 0.52ms
app:lang-selector
"App\Twig\Components\App\LangSelector"
components/app/lang-selector.html.twig
2 0.56ms
app:page-sharer
"App\Twig\Components\App\PageSharer"
components/app/page-sharer.html.twig
2 3.63ms
ui:editor-render
"App\Twig\Components\Ui\Editor\EditorRender"
components/ui/editor/render.html.twig
2 1.07ms
app:loading_spinner
"App\Twig\Components\App\LoadingSpinner"
components/app/loading-spinner.html.twig
2 0.69ms
menu:main
"App\Twig\Components\Menu\MainMenu"
components/menu/main.html.twig
1 39.50ms
menu:connexion-menu
"App\Twig\Components\Menu\ConnexionMenu"
components/menu/user-menu.html.twig
1 9.15ms
menu:breadcrumb
"App\Twig\Components\Menu\Breadcrumb"
components/menu/breadcrumb.html.twig
1 0.57ms
ad:banner
"App\Twig\Components\Ad\AdBanner"
components/ad/banner.html.twig
1 0.51ms
media:video
"App\Twig\Components\Media\Video"
components/media/video.html.twig
1 0.35ms
anatomy:avatar
"App\Twig\Components\Anatomy\Avatar"
components/anatomy/avatar.html.twig
1 592.69ms
training:difficulty-badge
"App\Twig\Components\Training\DifficultyBadge"
components/training/difficulity-badge.html.twig
1 0.62ms
ui:widget-embed
"App\Twig\Components\Ui\WidgetEmbed"
components/ui/widget_embed.html.twig
1 1.69ms
ad:wide-skyscraper
"App\Twig\Components\Ad\AdWideSkyscraper"
components/ad/wide-skyscraper.html.twig
1 0.69ms
ad:horizontal:fluid
"App\Twig\Components\Ad\AdHorizontalFluid"
components/ad/horizontal-fluid.html.twig
1 0.58ms

Render calls

menu:main App\Twig\Components\Menu\MainMenu 74.5 MiB 39.50 ms
Input props
[]
Attributes
[]
Component
App\Twig\Components\Menu\MainMenu {#6107
  -routingManager: App\BusinessLogic\Training\Exercise\Url\ExerciseRoutingManager {#208 …}
  -em: Doctrine\ORM\EntityManager {#550 …}
  -cache: Symfony\Component\Cache\Adapter\TraceableAdapter {#205 …}
  -kernel: App\Kernel {#14 …}
  -mediaManager: App\BusinessLogic\Media\Manager\MediaManager {#214 …}
}
media:icon App\Twig\Components\Media\Icon 68.5 MiB 0.46 ms
Input props
[
  "name" => "fitmetrics-biceps"
  "class" => "header--logo-dark header--logo dark:hidden h-[80px] w-[130px] max-w-[130px]"
  "data-front--header-target" => "logoDark"
]
Attributes
[
  "class" => "header--logo-dark header--logo dark:hidden h-[80px] w-[130px] max-w-[130px]"
  "data-front--header-target" => "logoDark"
]
Component
App\Twig\Components\Media\Icon {#6154
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "fitmetrics-biceps"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 68.5 MiB 0.05 ms
Input props
[
  "name" => "fitmetrics-white-biceps"
  "class" => "header--logo-white header--logo hidden dark:block h-[80px] w-[130px] max-w-[130px]"
  "data-front--header-target" => "logoWhite"
]
Attributes
[
  "class" => "header--logo-white header--logo hidden dark:block h-[80px] w-[130px] max-w-[130px]"
  "data-front--header-target" => "logoWhite"
]
Component
App\Twig\Components\Media\Icon {#6165
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "fitmetrics-white-biceps"
  +title: null
  +symbolDefsName: null
}
utils:theme-switcher
[Anonymous]
68.5 MiB 1.05 ms
Input props
[
  "class" => "max-w-fit"
]
Attributes
[
  "class" => "max-w-fit"
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#6216
  -props: [
    "class" => "max-w-fit"
  ]
}
media:icon App\Twig\Components\Media\Icon 68.5 MiB 0.05 ms
Input props
[
  "name" => "fitmetrics-biceps"
  "class" => "block header--logo-dark header--logo w-full dark:hidden h-[50px] scale-150"
  "data-front--header-target" => "logoDark"
]
Attributes
[
  "class" => "block header--logo-dark header--logo w-full dark:hidden h-[50px] scale-150"
  "data-front--header-target" => "logoDark"
]
Component
App\Twig\Components\Media\Icon {#6231
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "fitmetrics-biceps"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 68.5 MiB 0.04 ms
Input props
[
  "name" => "fitmetrics-white-biceps"
  "class" => "hidden header--logo-white header--logo w-full dark:block h-[50px] scale-150"
  "data-front--header-target" => "logoWhite"
]
Attributes
[
  "class" => "hidden header--logo-white header--logo w-full dark:block h-[50px] scale-150"
  "data-front--header-target" => "logoWhite"
]
Component
App\Twig\Components\Media\Icon {#6281
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "fitmetrics-white-biceps"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 68.5 MiB 0.03 ms
Input props
[
  "name" => "search"
  "class" => "h-7 w-7 mr-4 fill-current"
]
Attributes
[
  "class" => "h-7 w-7 mr-4 fill-current"
]
Component
App\Twig\Components\Media\Icon {#6309
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "search"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 68.5 MiB 0.03 ms
Input props
[
  "name" => "flexed-biceps"
  "class" => "h-7 w-7 mr-4 fill-current"
]
Attributes
[
  "class" => "h-7 w-7 mr-4 fill-current"
]
Component
App\Twig\Components\Media\Icon {#6325
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "flexed-biceps"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 68.5 MiB 0.03 ms
Input props
[
  "name" => "barbell"
  "class" => "h-8 w-8 mr-3 fill-current"
]
Attributes
[
  "class" => "h-8 w-8 mr-3 fill-current"
]
Component
App\Twig\Components\Media\Icon {#6349
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "barbell"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 68.5 MiB 0.03 ms
Input props
[
  "name" => "category"
  "class" => "h-8 w-8 mr-3 fill-current"
]
Attributes
[
  "class" => "h-8 w-8 mr-3 fill-current"
]
Component
App\Twig\Components\Media\Icon {#6373
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "category"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 68.5 MiB 0.03 ms
Input props
[
  "name" => "fire"
  "class" => "h-8 w-8 mr-3 fill-current"
]
Attributes
[
  "class" => "h-8 w-8 mr-3 fill-current"
]
Component
App\Twig\Components\Media\Icon {#6397
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "fire"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 68.5 MiB 0.03 ms
Input props
[
  "name" => "discipline "
  "class" => "h-8 w-8 mr-3 fill-current"
]
Attributes
[
  "class" => "h-8 w-8 mr-3 fill-current"
]
Component
App\Twig\Components\Media\Icon {#6421
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "discipline "
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 68.5 MiB 0.03 ms
Input props
[
  "name" => "stats-chart"
  "class" => "h-8 w-8 mr-3 fill-current"
]
Attributes
[
  "class" => "h-8 w-8 mr-3 fill-current"
]
Component
App\Twig\Components\Media\Icon {#6445
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "stats-chart"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 68.5 MiB 0.03 ms
Input props
[
  "name" => "latest"
  "class" => "h-7 w-7 mr-4 fill-current"
]
Attributes
[
  "class" => "h-7 w-7 mr-4 fill-current"
]
Component
App\Twig\Components\Media\Icon {#6469
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "latest"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 68.5 MiB 0.03 ms
Input props
[
  "name" => "random"
  "class" => "h-8 w-8 mr-3 fill-current"
]
Attributes
[
  "class" => "h-8 w-8 mr-3 fill-current"
]
Component
App\Twig\Components\Media\Icon {#6493
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "random"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 70.5 MiB 0.05 ms
Input props
[
  "name" => "chevron-down"
  "class" => "w-7 h-7 fill-black dark:fill-white transition group-hover:rotate-180"
]
Attributes
[
  "class" => "w-7 h-7 fill-black dark:fill-white transition group-hover:rotate-180"
]
Component
App\Twig\Components\Media\Icon {#6866
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "chevron-down"
  +title: null
  +symbolDefsName: null
}
utils:theme-switcher
[Anonymous]
70.5 MiB 0.13 ms
Input props
[
  "class" => "max-w-fit"
]
Attributes
[
  "class" => "max-w-fit"
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#6821
  -props: [
    "class" => "max-w-fit"
  ]
}
menu:connexion-menu App\Twig\Components\Menu\ConnexionMenu 74.5 MiB 9.15 ms
Input props
[]
Attributes
[]
Component
App\Twig\Components\Menu\ConnexionMenu {#6951
  -authenticationUtils: Symfony\Component\Security\Http\Authentication\AuthenticationUtils {#6952 …}
  -formFactory: Symfony\Component\Form\FormFactory {#6950 …}
}
media:icon App\Twig\Components\Media\Icon 72.5 MiB 0.05 ms
Input props
[
  "name" => "close"
  "class" => "w-[26px] h-[26px] md:w-[15px] md:h-[15px] cursor-pointer"
]
Attributes
[
  "class" => "w-[26px] h-[26px] md:w-[15px] md:h-[15px] cursor-pointer"
]
Component
App\Twig\Components\Media\Icon {#7103
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "close"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 72.5 MiB 0.04 ms
Input props
[
  "name" => "fitmetrics-white-biceps"
  "class" => "hidden dark:block h-[80px] w-[300px]"
]
Attributes
[
  "class" => "hidden dark:block h-[80px] w-[300px]"
]
Component
App\Twig\Components\Media\Icon {#7138
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "fitmetrics-white-biceps"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 72.5 MiB 0.03 ms
Input props
[
  "name" => "fitmetrics-biceps"
  "class" => "block dark:hidden h-[80px] w-[300px]"
]
Attributes
[
  "class" => "block dark:hidden h-[80px] w-[300px]"
]
Component
App\Twig\Components\Media\Icon {#7168
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "fitmetrics-biceps"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 72.5 MiB 0.04 ms
Input props
[
  "name" => "google"
  "class" => "h-[24px] w-[20px]"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "h-[24px] w-[20px]"
]
Component
App\Twig\Components\Media\Icon {#7200
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "google"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 72.5 MiB 0.03 ms
Input props
[
  "name" => "apple"
  "class" => "h-[24px] w-[20px] fill-white"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "h-[24px] w-[20px] fill-white"
]
Component
App\Twig\Components\Media\Icon {#7219
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "apple"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.05 ms
Input props
[
  "name" => "fitmetrics-white-biceps"
  "class" => "h-[80px] w-[300px]"
]
Attributes
[
  "class" => "h-[80px] w-[300px]"
]
Component
App\Twig\Components\Media\Icon {#7329
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "fitmetrics-white-biceps"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.04 ms
Input props
[
  "name" => "chevron-down"
  "class" => "fill-white w-[20px] h-[20px]"
]
Attributes
[
  "class" => "fill-white w-[20px] h-[20px]"
]
Component
App\Twig\Components\Media\Icon {#7363
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "chevron-down"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "flexed-biceps"
  "class" => "h-5 w-5 mr-2 fill-current"
]
Attributes
[
  "class" => "h-5 w-5 mr-2 fill-current"
]
Component
App\Twig\Components\Media\Icon {#7379
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "flexed-biceps"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "fire"
  "class" => "h-5 w-5 mr-2 fill-current"
]
Attributes
[
  "class" => "h-5 w-5 mr-2 fill-current"
]
Component
App\Twig\Components\Media\Icon {#7403
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "fire"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "category"
  "class" => "h-5 w-5 mr-2 fill-current"
]
Attributes
[
  "class" => "h-5 w-5 mr-2 fill-current"
]
Component
App\Twig\Components\Media\Icon {#7427
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "category"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.04 ms
Input props
[
  "name" => "barbell"
  "class" => "h-5 w-5 mr-2 fill-current"
]
Attributes
[
  "class" => "h-5 w-5 mr-2 fill-current"
]
Component
App\Twig\Components\Media\Icon {#7451
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "barbell"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "discipline"
  "class" => "h-5 w-5 mr-2 fill-current"
]
Attributes
[
  "class" => "h-5 w-5 mr-2 fill-current"
]
Component
App\Twig\Components\Media\Icon {#7475
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "discipline"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "stats-chart"
  "class" => "h-5 w-5 mr-2 fill-current"
]
Attributes
[
  "class" => "h-5 w-5 mr-2 fill-current"
]
Component
App\Twig\Components\Media\Icon {#7499
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "stats-chart"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "latest"
  "class" => "h-5 w-5 mr-2 fill-current"
]
Attributes
[
  "class" => "h-5 w-5 mr-2 fill-current"
]
Component
App\Twig\Components\Media\Icon {#7523
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "latest"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "random"
  "class" => "h-5 w-5 mr-2 fill-current"
]
Attributes
[
  "class" => "h-5 w-5 mr-2 fill-current"
]
Component
App\Twig\Components\Media\Icon {#7547
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "random"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "favorites"
  "class" => "h-5 w-5 mr-2 fill-current"
]
Attributes
[
  "class" => "h-5 w-5 mr-2 fill-current"
]
Component
App\Twig\Components\Media\Icon {#7571
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "favorites"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "more"
  "class" => "h-5 w-5 mr-2 fill-current"
]
Attributes
[
  "class" => "h-5 w-5 mr-2 fill-current"
]
Component
App\Twig\Components\Media\Icon {#7595
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "more"
  +title: null
  +symbolDefsName: null
}
app:lang-selector App\Twig\Components\App\LangSelector 74.5 MiB 0.47 ms
Input props
[
  "defaultOpenLeft" => true
]
Attributes
[]
Component
App\Twig\Components\App\LangSelector {#7640
  +routeName: null
  +params: null
  +withQuery: true
  +defaultOpenLeft: true
  -seoPage: App\BusinessLogic\App\Seo\SeoPage {#210 …}
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#865 …}
  -router: Symfony\Bundle\FrameworkBundle\Routing\Router {#681 …}
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.04 ms
Input props
[
  "name" => "close"
  "class" => "w-[26px] h-[26px] md:w-[15px] md:h-[15px] cursor-pointer text-white"
]
Attributes
[
  "class" => "w-[26px] h-[26px] md:w-[15px] md:h-[15px] cursor-pointer text-white"
]
Component
App\Twig\Components\Media\Icon {#7630
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "close"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "fitmetrics-biceps"
  "class" => "h-16 w-full"
]
Attributes
[
  "class" => "h-16 w-full"
]
Component
App\Twig\Components\Media\Icon {#7271
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "fitmetrics-biceps"
  +title: null
  +symbolDefsName: null
}
menu:breadcrumb App\Twig\Components\Menu\Breadcrumb 74.5 MiB 0.57 ms
Input props
[
  "builder" => App\BusinessLogic\App\Menu\BreadcrumbBuilder {#4685
    -items: [
      [
        "label" => "menu.home"
        "url" => "/fr/"
      ]
      [
        "label" => "menu.exercises"
        "url" => "/fr/exercices"
      ]
      [
        "label" => "Windmill"
        "url" => "/fr/exercices/groupe/159-windmill"
      ]
      [
        "label" => "Moulin à vent avec kettlebell"
        "url" => null
      ]
    ]
  }
]
Attributes
[]
Component
App\Twig\Components\Menu\Breadcrumb {#7723
  +items: [
    [
      "label" => "menu.home"
      "url" => "/fr/"
    ]
    [
      "label" => "menu.exercises"
      "url" => "/fr/exercices"
    ]
    [
      "label" => "Windmill"
      "url" => "/fr/exercices/groupe/159-windmill"
    ]
    [
      "label" => "Moulin à vent avec kettlebell"
      "url" => null
    ]
  ]
  +builder: App\BusinessLogic\App\Menu\BreadcrumbBuilder {#4685
    -items: [
      [
        "label" => "menu.home"
        "url" => "/fr/"
      ]
      [
        "label" => "menu.exercises"
        "url" => "/fr/exercices"
      ]
      [
        "label" => "Windmill"
        "url" => "/fr/exercices/groupe/159-windmill"
      ]
      [
        "label" => "Moulin à vent avec kettlebell"
        "url" => null
      ]
    ]
  }
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.04 ms
Input props
[
  "name" => "chevron-right"
  "class" => "w-[10px] h-[10px] fill-black dark:fill-white"
]
Attributes
[
  "class" => "w-[10px] h-[10px] fill-black dark:fill-white"
]
Component
App\Twig\Components\Media\Icon {#7753
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "chevron-right"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.04 ms
Input props
[
  "name" => "chevron-right"
  "class" => "w-[10px] h-[10px] fill-black dark:fill-white"
]
Attributes
[
  "class" => "w-[10px] h-[10px] fill-black dark:fill-white"
]
Component
App\Twig\Components\Media\Icon {#7775
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "chevron-right"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "chevron-right"
  "class" => "w-[10px] h-[10px] fill-black dark:fill-white"
]
Attributes
[
  "class" => "w-[10px] h-[10px] fill-black dark:fill-white"
]
Component
App\Twig\Components\Media\Icon {#7798
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "chevron-right"
  +title: null
  +symbolDefsName: null
}
ad:banner App\Twig\Components\Ad\AdBanner 74.5 MiB 0.51 ms
Input props
[
  "containerClass" => "my-4"
]
Attributes
[]
Component
App\Twig\Components\Ad\AdBanner {#7841
  +includeScript: true
  +labelClass: null
  +containerClass: "my-4"
  +adClass: null
  +showBgColor: true
  #kernel: App\Kernel {#14 …}
  #accountManager: App\BusinessLogic\User\Manager\AccountManager {#2927 …}
  #parameterBag: Symfony\Component\DependencyInjection\ParameterBag\ContainerBag {#686 …}
  #seoPage: App\BusinessLogic\App\Seo\SeoPage {#210 …}
}
media:video App\Twig\Components\Media\Video 74.5 MiB 0.35 ms
Input props
[
  "media" => App\Entity\Media\MediaVideo {#4616
    #uploadedFile: null
    #file: Vich\UploaderBundle\Entity\File {#4618 …}
    #credits: Doctrine\ORM\PersistentCollection {#4620 …}
    -source: null
    -zone: null
    -urlExternal: "https://www.youtube.com/watch?v=BaKdPgHAk6c"
    #id: 2052
    -notes: null
    #translations: Doctrine\ORM\PersistentCollection {#4667 …}
    #newTranslations: null
    #currentLocale: "fr"
    #defaultLocale: "en"
    -tiersId: null
    -tiersName: "azeoo"
    #createdAt: DateTimeImmutable @1731450683 {#4654
      date: 2024-11-12 23:31:23.0 Europe/Zurich (+01:00)
    }
    #updatedAt: DateTimeImmutable @1731450683 {#4606
      date: 2024-11-12 23:31:23.0 Europe/Zurich (+01:00)
    }
    #createdBy: null
    #updatedBy: null
    -duration: null
    -format: null
    -startTime: null
    -endTime: null
    -youtubeId: "BaKdPgHAk6c"
  }
  "title" => "Moulinet avec kettlebell"
  "showCredits" => false
]
Attributes
[]
Component
App\Twig\Components\Media\Video {#7928
  +media: App\Entity\Media\MediaVideo {#4616
    #uploadedFile: null
    #file: Vich\UploaderBundle\Entity\File {#4618 …}
    #credits: Doctrine\ORM\PersistentCollection {#4620 …}
    -source: null
    -zone: null
    -urlExternal: "https://www.youtube.com/watch?v=BaKdPgHAk6c"
    #id: 2052
    -notes: null
    #translations: Doctrine\ORM\PersistentCollection {#4667 …}
    #newTranslations: null
    #currentLocale: "fr"
    #defaultLocale: "en"
    -tiersId: null
    -tiersName: "azeoo"
    #createdAt: DateTimeImmutable @1731450683 {#4654
      date: 2024-11-12 23:31:23.0 Europe/Zurich (+01:00)
    }
    #updatedAt: DateTimeImmutable @1731450683 {#4606
      date: 2024-11-12 23:31:23.0 Europe/Zurich (+01:00)
    }
    #createdBy: null
    #updatedBy: null
    -duration: null
    -format: null
    -startTime: null
    -endTime: null
    -youtubeId: "BaKdPgHAk6c"
  }
  +title: "Moulinet avec kettlebell"
  +posterSm: null
  +posterLg: null
  +hasPipButton: true
  +loop: false
  +mute: false
  +showCredits: false
  +creditsTitle: "label.media_video.credits"
  -mediaManager: App\BusinessLogic\Media\Manager\MediaManager {#214 …}
  -appManager: App\BusinessLogic\App\Manager\AppManager {#152 …}
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.04 ms
Input props
[
  "name" => "favorites"
  "class" => "h-4 w-4 stroke-yellow text-transparent"
  "data-front--favorite-target" => "icon"
]
Attributes
[
  "class" => "h-4 w-4 stroke-yellow text-transparent"
  "data-front--favorite-target" => "icon"
]
Component
App\Twig\Components\Media\Icon {#7944
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "favorites"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "program"
  "class" => "w-5 h-5 text-white inline-flex"
]
Attributes
[
  "class" => "w-5 h-5 text-white inline-flex"
]
Component
App\Twig\Components\Media\Icon {#7977
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "program"
  +title: null
  +symbolDefsName: null
}
app:page-sharer App\Twig\Components\App\PageSharer 76.5 MiB 1.43 ms
Input props
[
  "class" => "mt-2 md:m-0"
]
Attributes
[
  "class" => "mt-2 md:m-0"
]
Component
App\Twig\Components\App\PageSharer {#8001
  +shareUrl: "https://test.fitmetrics.ch/fr/exercice/6733d73b94185-moulinet-avec-kettlebell?alias=4916"
  +title: "Moulin à vent avec kettlebell - Exercice - FitMetrics"
  +description: "Le moulinet avec kettlebell est un exercice avancé de renforcement fonctionnel conçu pour développer le contrôle corporel global, la stabilité articulaire et la coordination motrice. Il sollicite une flexion latérale contrôlée combinée à une rotation du tronc, ce qui en fait un mouvement complet et technique. Réalisé avec une kettlebell maintenue au-dessus de la tête, ce mouvement met l’accent sur l’alignement postural, la stabilité de l’épaule et le contrôle unilatéral. Le moulinet permet d’améliorer la souplesse de la colonne vertébrale, de renforcer la sangle abdominale profonde et de travailler la chaîne postérieure en synergie. Il est particulièrement recommandé dans les routines de mobilité, de préparation physique et dans les disciplines telles que le CrossFit. Ce mouvement favorise également la proprioception et l'endurance musculaire dans les plans de rotation en apportant un bénéfice direct à la performance athlétique et à la prévention des blessures. Son exécution maîtrisée exige une technique rigoureuse et une conscience corporelle avancée."
  +quote: null
  +hashtags: [
    "fitmetrics"
  ]
  +alignMobileLeft: false
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#865 …}
  -seoPage: App\BusinessLogic\App\Seo\SeoPage {#210 …}
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.04 ms
Input props
[
  "name" => "check"
  "class" => "w-5 h-5 text-white fill-white"
]
Attributes
[
  "class" => "w-5 h-5 text-white fill-white"
]
Component
App\Twig\Components\Media\Icon {#8031
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "check"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.04 ms
Input props
[
  "name" => "reddit"
  "class" => "w-6 h-6 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-6 h-6 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
]
Component
App\Twig\Components\Media\Icon {#8059
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "reddit"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "twitter"
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
]
Component
App\Twig\Components\Media\Icon {#8084
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "twitter"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "threads"
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
]
Component
App\Twig\Components\Media\Icon {#8107
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "threads"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "facebook"
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
]
Component
App\Twig\Components\Media\Icon {#8130
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "facebook"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "linkedin"
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
]
Component
App\Twig\Components\Media\Icon {#8153
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "linkedin"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 76.5 MiB 0.03 ms
Input props
[
  "name" => "whatsapp"
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
]
Component
App\Twig\Components\Media\Icon {#8176
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "whatsapp"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 76.5 MiB 0.03 ms
Input props
[
  "name" => "email"
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
]
Component
App\Twig\Components\Media\Icon {#8199
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "email"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 76.5 MiB 0.04 ms
Input props
[
  "name" => "program"
  "class" => "w-6 h-6 mr-3 !text-white"
]
Attributes
[
  "class" => "w-6 h-6 mr-3 !text-white"
]
Component
App\Twig\Components\Media\Icon {#8230
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "program"
  +title: null
  +symbolDefsName: null
}
ui:editor-render App\Twig\Components\Ui\Editor\EditorRender 76.5 MiB 0.97 ms
Input props
[
  "data" => [
    "time" => 1749204098
    "version" => "2.31.0-rc.7"
    "blocks" => [
      [
        "type" => "header"
        "data" => [
          "level" => 2
          "text" => "Instructions"
        ]
      ]
      [
        "type" => "list"
        "data" => [
          "style" => "ordered"
          "items" => [
            [
              "content" => "Placez-vous debout, les pieds légèrement plus écartés que la largeur des épaules, une kettlebell tenue à bout de bras au-dessus de la tête."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Tournez les pieds à 45 degrés dans la direction opposée à celle du bras tenant la kettlebell."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Faites glisser votre main libre le long de l'intérieur de la cuisse opposée en gardant les jambes tendues."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Effectuez une rotation du torse tout en maintenant le bras portant la kettlebell verrouillé à la verticale."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Descendez jusqu'à toucher votre pied ou le sol avec la main libre, puis revenez à la position de départ en contrôlant le mouvement."
              "items" => []
              "meta" => []
            ]
          ]
          "meta" => []
        ]
      ]
      [
        "type" => "header"
        "data" => [
          "level" => 2
          "text" => "Conseils techniques"
        ]
      ]
      [
        "type" => "list"
        "data" => [
          "style" => "unordered"
          "items" => [
            [
              "content" => "Engagez la sangle abdominale et les fessiers pendant toute l’exécution."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Gardez les yeux fixés sur la kettlebell pour assurer la stabilité de l’épaule."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Ne pliez pas les genoux ; effectuez une charnière de hanches en conservant un dos droit."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Veillez à ce que la kettlebell reste en trajectoire verticale au-dessus de la tête en permanence."
              "items" => []
              "meta" => []
            ]
          ]
          "meta" => []
        ]
      ]
      [
        "type" => "header"
        "data" => [
          "level" => 2
          "text" => "Conseils de respiration"
        ]
      ]
      [
        "type" => "list"
        "data" => [
          "style" => "unordered"
          "items" => [
            [
              "content" => "Inspirez en amorçant la descente du torse."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Expirez de manière fluide en revenant à la position debout."
              "items" => []
              "meta" => []
            ]
          ]
          "meta" => []
        ]
      ]
    ]
  ]
]
Attributes
[]
Component
App\Twig\Components\Ui\Editor\EditorRender {#8279
  +title: null
  +data: [
    "time" => 1749204098
    "version" => "2.31.0-rc.7"
    "blocks" => [
      [
        "type" => "header"
        "data" => [
          "level" => 2
          "text" => "Instructions"
        ]
      ]
      [
        "type" => "list"
        "data" => [
          "style" => "ordered"
          "items" => [
            [
              "content" => "Placez-vous debout, les pieds légèrement plus écartés que la largeur des épaules, une kettlebell tenue à bout de bras au-dessus de la tête."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Tournez les pieds à 45 degrés dans la direction opposée à celle du bras tenant la kettlebell."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Faites glisser votre main libre le long de l'intérieur de la cuisse opposée en gardant les jambes tendues."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Effectuez une rotation du torse tout en maintenant le bras portant la kettlebell verrouillé à la verticale."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Descendez jusqu'à toucher votre pied ou le sol avec la main libre, puis revenez à la position de départ en contrôlant le mouvement."
              "items" => []
              "meta" => []
            ]
          ]
          "meta" => []
        ]
      ]
      [
        "type" => "header"
        "data" => [
          "level" => 2
          "text" => "Conseils techniques"
        ]
      ]
      [
        "type" => "list"
        "data" => [
          "style" => "unordered"
          "items" => [
            [
              "content" => "Engagez la sangle abdominale et les fessiers pendant toute l’exécution."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Gardez les yeux fixés sur la kettlebell pour assurer la stabilité de l’épaule."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Ne pliez pas les genoux ; effectuez une charnière de hanches en conservant un dos droit."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Veillez à ce que la kettlebell reste en trajectoire verticale au-dessus de la tête en permanence."
              "items" => []
              "meta" => []
            ]
          ]
          "meta" => []
        ]
      ]
      [
        "type" => "header"
        "data" => [
          "level" => 2
          "text" => "Conseils de respiration"
        ]
      ]
      [
        "type" => "list"
        "data" => [
          "style" => "unordered"
          "items" => [
            [
              "content" => "Inspirez en amorçant la descente du torse."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Expirez de manière fluide en revenant à la position debout."
              "items" => []
              "meta" => []
            ]
          ]
          "meta" => []
        ]
      ]
    ]
  ]
  +spacing: 4
  +adsInterval: 5
  +withAds: true
  +withMarketingBanner: false
  +marketingBannerPosition: 8
  -host: "https://test.fitmetrics.ch"
  #requestStack: Symfony\Component\HttpFoundation\RequestStack {#865 …}
  #parameterBag: Symfony\Component\DependencyInjection\ParameterBag\ContainerBag {#686 …}
}
ui:editor-render App\Twig\Components\Ui\Editor\EditorRender 76.5 MiB 0.10 ms
Input props
[
  "data" => [
    "time" => 1749204098
    "version" => "2.31.0-rc.7"
    "blocks" => [
      [
        "type" => "list"
        "data" => [
          "style" => "unordered"
          "items" => [
            [
              "content" => "Instabilité ou blessure à l’épaule"
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Douleurs lombaires ou hernie discale"
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Mobilité thoracique limitée"
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Troubles de l’équilibre"
              "items" => []
              "meta" => []
            ]
          ]
          "meta" => []
        ]
      ]
    ]
  ]
]
Attributes
[]
Component
App\Twig\Components\Ui\Editor\EditorRender {#8340
  +title: null
  +data: [
    "time" => 1749204098
    "version" => "2.31.0-rc.7"
    "blocks" => [
      [
        "type" => "list"
        "data" => [
          "style" => "unordered"
          "items" => [
            [
              "content" => "Instabilité ou blessure à l’épaule"
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Douleurs lombaires ou hernie discale"
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Mobilité thoracique limitée"
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Troubles de l’équilibre"
              "items" => []
              "meta" => []
            ]
          ]
          "meta" => []
        ]
      ]
    ]
  ]
  +spacing: 4
  +adsInterval: 5
  +withAds: true
  +withMarketingBanner: false
  +marketingBannerPosition: 8
  -host: "https://test.fitmetrics.ch"
  #requestStack: Symfony\Component\HttpFoundation\RequestStack {#865 …}
  #parameterBag: Symfony\Component\DependencyInjection\ParameterBag\ContainerBag {#686 …}
}
ad:square:fluid App\Twig\Components\Ad\AdSquareFluid 76.5 MiB 0.29 ms
Input props
[
  "containerClass" => "mt-6"
]
Attributes
[]
Component
App\Twig\Components\Ad\AdSquareFluid {#8327
  +includeScript: true
  +labelClass: null
  +containerClass: "mt-6"
  +adClass: null
  +showBgColor: true
  #kernel: App\Kernel {#14 …}
  #accountManager: App\BusinessLogic\User\Manager\AccountManager {#2927 …}
  #parameterBag: Symfony\Component\DependencyInjection\ParameterBag\ContainerBag {#686 …}
  #seoPage: App\BusinessLogic\App\Seo\SeoPage {#210 …}
}
faq App\Twig\Components\Ui\FaqComponent 76.5 MiB 0.75 ms
Input props
[
  "faq" => App\Entity\Faq {#5429
    -news: Doctrine\ORM\PersistentCollection {#5412 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5414 …}
    #id: 1840
    #createdAt: DateTimeImmutable @1749138310 {#5424
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1749138310 {#5399
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #createdBy: null
    #updatedBy: null
    #translations: Doctrine\ORM\PersistentCollection {#5462 …}
    #newTranslations: null
    #currentLocale: "fr"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
]
Attributes
[]
Component
App\Twig\Components\Ui\FaqComponent {#8384
  +faq: App\Entity\Faq {#5429
    -news: Doctrine\ORM\PersistentCollection {#5412 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5414 …}
    #id: 1840
    #createdAt: DateTimeImmutable @1749138310 {#5424
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1749138310 {#5399
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #createdBy: null
    #updatedBy: null
    #translations: Doctrine\ORM\PersistentCollection {#5462 …}
    #newTranslations: null
    #currentLocale: "fr"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
}
raw-faq App\Twig\Components\Ui\RawFaqComponent 76.5 MiB 0.27 ms
Input props
[
  "question" => "Quels muscles sont principalement sollicités par le moulinet avec kettlebell ?"
  "answer" => "Le moulinet avec kettlebell sollicite principalement les muscles du tronc, notamment les obliques, ainsi que les épaules, les fessiers et le bas du dos pour assurer la stabilité et le contrôle du mouvement."
]
Attributes
[]
Component
App\Twig\Components\Ui\RawFaqComponent {#8412
  +question: "Quels muscles sont principalement sollicités par le moulinet avec kettlebell ?"
  +answer: "Le moulinet avec kettlebell sollicite principalement les muscles du tronc, notamment les obliques, ainsi que les épaules, les fessiers et le bas du dos pour assurer la stabilité et le contrôle du mouvement."
}
faq App\Twig\Components\Ui\FaqComponent 76.5 MiB 0.19 ms
Input props
[
  "faq" => App\Entity\Faq {#5460
    -news: Doctrine\ORM\PersistentCollection {#5459 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5457 …}
    #id: 1841
    #createdAt: DateTimeImmutable @1749138310 {#5464
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1749138310 {#5461
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #createdBy: null
    #updatedBy: null
    #translations: Doctrine\ORM\PersistentCollection {#5455 …}
    #newTranslations: null
    #currentLocale: "fr"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
]
Attributes
[]
Component
App\Twig\Components\Ui\FaqComponent {#8443
  +faq: App\Entity\Faq {#5460
    -news: Doctrine\ORM\PersistentCollection {#5459 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5457 …}
    #id: 1841
    #createdAt: DateTimeImmutable @1749138310 {#5464
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1749138310 {#5461
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #createdBy: null
    #updatedBy: null
    #translations: Doctrine\ORM\PersistentCollection {#5455 …}
    #newTranslations: null
    #currentLocale: "fr"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
}
raw-faq App\Twig\Components\Ui\RawFaqComponent 76.5 MiB 0.06 ms
Input props
[
  "question" => "Un débutant peut-il pratiquer le moulinet avec kettlebell en toute sécurité ?"
  "answer" => "Le moulinet avec kettlebell est un exercice avancé qui nécessite une bonne stabilité du tronc et une mobilité de l’épaule ; les débutants devraient commencer par des moulinets au poids du corps ou avec une charge légère sous supervision."
]
Attributes
[]
Component
App\Twig\Components\Ui\RawFaqComponent {#8488
  +question: "Un débutant peut-il pratiquer le moulinet avec kettlebell en toute sécurité ?"
  +answer: "Le moulinet avec kettlebell est un exercice avancé qui nécessite une bonne stabilité du tronc et une mobilité de l’épaule ; les débutants devraient commencer par des moulinets au poids du corps ou avec une charge légère sous supervision."
}
faq App\Twig\Components\Ui\FaqComponent 76.5 MiB 0.18 ms
Input props
[
  "faq" => App\Entity\Faq {#5451
    -news: Doctrine\ORM\PersistentCollection {#5450 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5448 …}
    #id: 1842
    #createdAt: DateTimeImmutable @1749138310 {#5453
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1749138310 {#5452
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #createdBy: null
    #updatedBy: null
    #translations: Doctrine\ORM\PersistentCollection {#5446 …}
    #newTranslations: null
    #currentLocale: "fr"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
]
Attributes
[]
Component
App\Twig\Components\Ui\FaqComponent {#8491
  +faq: App\Entity\Faq {#5451
    -news: Doctrine\ORM\PersistentCollection {#5450 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5448 …}
    #id: 1842
    #createdAt: DateTimeImmutable @1749138310 {#5453
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1749138310 {#5452
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #createdBy: null
    #updatedBy: null
    #translations: Doctrine\ORM\PersistentCollection {#5446 …}
    #newTranslations: null
    #currentLocale: "fr"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
}
raw-faq App\Twig\Components\Ui\RawFaqComponent 76.5 MiB 0.06 ms
Input props
[
  "question" => "Quel poids de kettlebell choisir pour les moulinets ?"
  "answer" => "Commencez avec une kettlebell légère à modérée qui vous permet de maintenir la stabilité de l’épaule et une technique correcte sur toute l’amplitude du mouvement."
]
Attributes
[]
Component
App\Twig\Components\Ui\RawFaqComponent {#8535
  +question: "Quel poids de kettlebell choisir pour les moulinets ?"
  +answer: "Commencez avec une kettlebell légère à modérée qui vous permet de maintenir la stabilité de l’épaule et une technique correcte sur toute l’amplitude du mouvement."
}
faq App\Twig\Components\Ui\FaqComponent 76.5 MiB 0.16 ms
Input props
[
  "faq" => App\Entity\Faq {#5442
    -news: Doctrine\ORM\PersistentCollection {#5441 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5439 …}
    #id: 1843
    #createdAt: DateTimeImmutable @1749138310 {#5444
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1749138310 {#5443
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #createdBy: null
    #updatedBy: null
    #translations: Doctrine\ORM\PersistentCollection {#5437 …}
    #newTranslations: null
    #currentLocale: "fr"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
]
Attributes
[]
Component
App\Twig\Components\Ui\FaqComponent {#8538
  +faq: App\Entity\Faq {#5442
    -news: Doctrine\ORM\PersistentCollection {#5441 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5439 …}
    #id: 1843
    #createdAt: DateTimeImmutable @1749138310 {#5444
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1749138310 {#5443
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #createdBy: null
    #updatedBy: null
    #translations: Doctrine\ORM\PersistentCollection {#5437 …}
    #newTranslations: null
    #currentLocale: "fr"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
}
raw-faq App\Twig\Components\Ui\RawFaqComponent 76.5 MiB 0.05 ms
Input props
[
  "question" => "Le moulinet avec kettlebell est-il efficace pour améliorer la mobilité ?"
  "answer" => "Oui, le moulinet avec kettlebell améliore significativement la mobilité de la colonne thoracique, la flexibilité des hanches et la stabilité de l’épaule lorsqu’il est effectué avec une bonne technique."
]
Attributes
[]
Component
App\Twig\Components\Ui\RawFaqComponent {#8582
  +question: "Le moulinet avec kettlebell est-il efficace pour améliorer la mobilité ?"
  +answer: "Oui, le moulinet avec kettlebell améliore significativement la mobilité de la colonne thoracique, la flexibilité des hanches et la stabilité de l’épaule lorsqu’il est effectué avec une bonne technique."
}
faq App\Twig\Components\Ui\FaqComponent 76.5 MiB 0.16 ms
Input props
[
  "faq" => App\Entity\Faq {#5389
    -news: Doctrine\ORM\PersistentCollection {#5388 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5386 …}
    #id: 1844
    #createdAt: DateTimeImmutable @1749138310 {#5391
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1749138310 {#5390
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #createdBy: null
    #updatedBy: null
    #translations: Doctrine\ORM\PersistentCollection {#5384 …}
    #newTranslations: null
    #currentLocale: "fr"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
]
Attributes
[]
Component
App\Twig\Components\Ui\FaqComponent {#8585
  +faq: App\Entity\Faq {#5389
    -news: Doctrine\ORM\PersistentCollection {#5388 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5386 …}
    #id: 1844
    #createdAt: DateTimeImmutable @1749138310 {#5391
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1749138310 {#5390
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #createdBy: null
    #updatedBy: null
    #translations: Doctrine\ORM\PersistentCollection {#5384 …}
    #newTranslations: null
    #currentLocale: "fr"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
}
raw-faq App\Twig\Components\Ui\RawFaqComponent 76.5 MiB 0.05 ms
Input props
[
  "question" => "Dois-je garder les jambes tendues pendant le moulinet avec kettlebell ?"
  "answer" => "Oui, garder les jambes tendues permet de solliciter les ischio-jambiers et les fessiers tout en favorisant une bonne mécanique de charnière de hanches."
]
Attributes
[]
Component
App\Twig\Components\Ui\RawFaqComponent {#8629
  +question: "Dois-je garder les jambes tendues pendant le moulinet avec kettlebell ?"
  +answer: "Oui, garder les jambes tendues permet de solliciter les ischio-jambiers et les fessiers tout en favorisant une bonne mécanique de charnière de hanches."
}
anatomy:avatar App\Twig\Components\Anatomy\Avatar 84.5 MiB 592.69 ms
Input props
[
  "class" => "relative"
  "primaryMuscles" => [
    6
  ]
  "secondaryMuscles" => [
    3
    5
    15
    25
    26
    28
    33
  ]
  "displayFront" => true
]
Attributes
[
  "class" => "relative"
]
Component
App\Twig\Components\Anatomy\Avatar {#8557
  #container: Symfony\Component\DependencyInjection\Argument\ServiceLocator {#8640 …}
  +primaryMuscles: [
    6
  ]
  +secondaryMuscles: [
    3
    5
    15
    25
    26
    28
    33
  ]
  +type: "url"
  +urlReferenceType: 2
  +displayFront: true
  +selectedMuscles: []
  +displayTagMuscles: false
  +hoverMuscleDefaultText: "-"
  #entityManager: Doctrine\ORM\EntityManager {#550 …}
  #localeSwitcher: Symfony\Component\Translation\LocaleSwitcher {#1600 …}
  #avatarData: App\BusinessLogic\Anatomy\AvatarData {#8638 …}
  -liveResponder: Symfony\UX\LiveComponent\LiveResponder {#8639 …}
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.65 ms
Input props
[
  "name" => "Abdominaux"
  "url" => "/fr/exercices/muscle/6-abdominaux"
  "color" => "primary"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#9955
  +name: "Abdominaux"
  +url: "/fr/exercices/muscle/6-abdominaux"
  +color: "primary"
  +small: false
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.11 ms
Input props
[
  "name" => "Fessiers"
  "url" => "/fr/exercices/muscle/3-fessiers"
  "color" => "primary"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10007
  +name: "Fessiers"
  +url: "/fr/exercices/muscle/3-fessiers"
  +color: "primary"
  +small: false
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.10 ms
Input props
[
  "name" => "Lombaires"
  "url" => "/fr/exercices/muscle/5-lombaires"
  "color" => "primary"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10031
  +name: "Lombaires"
  +url: "/fr/exercices/muscle/5-lombaires"
  +color: "primary"
  +small: false
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.09 ms
Input props
[
  "name" => "Obliques"
  "url" => "/fr/exercices/muscle/15-obliques"
  "color" => "primary"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10055
  +name: "Obliques"
  +url: "/fr/exercices/muscle/15-obliques"
  +color: "primary"
  +small: false
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.09 ms
Input props
[
  "name" => "Grand dorsal"
  "url" => "/fr/exercices/muscle/25-grand-dorsal"
  "color" => "primary"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10079
  +name: "Grand dorsal"
  +url: "/fr/exercices/muscle/25-grand-dorsal"
  +color: "primary"
  +small: false
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.10 ms
Input props
[
  "name" => "Rhomboïde"
  "url" => "/fr/exercices/muscle/26-rhombo%C3%AFde"
  "color" => "primary"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10103
  +name: "Rhomboïde"
  +url: "/fr/exercices/muscle/26-rhombo%C3%AFde"
  +color: "primary"
  +small: false
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.09 ms
Input props
[
  "name" => "Épaules"
  "url" => "/fr/exercices/muscle/28-epaules"
  "color" => "primary"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10127
  +name: "Épaules"
  +url: "/fr/exercices/muscle/28-epaules"
  +color: "primary"
  +small: false
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.08 ms
Input props
[
  "name" => "Moyen fessier"
  "url" => "/fr/exercices/muscle/33-moyen-fessier"
  "color" => "primary"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10151
  +name: "Moyen fessier"
  +url: "/fr/exercices/muscle/33-moyen-fessier"
  +color: "primary"
  +small: false
  +selected: false
}
ad:square:fluid App\Twig\Components\Ad\AdSquareFluid 84.5 MiB 0.11 ms
Input props
[]
Attributes
[]
Component
App\Twig\Components\Ad\AdSquareFluid {#9927
  +includeScript: true
  +labelClass: null
  +containerClass: "max-h-[300px] max-w-[300px]"
  +adClass: null
  +showBgColor: true
  #kernel: App\Kernel {#14 …}
  #accountManager: App\BusinessLogic\User\Manager\AccountManager {#2927 …}
  #parameterBag: Symfony\Component\DependencyInjection\ParameterBag\ContainerBag {#686 …}
  #seoPage: App\BusinessLogic\App\Seo\SeoPage {#210 …}
}
training:difficulty-badge App\Twig\Components\Training\DifficultyBadge 84.5 MiB 0.62 ms
Input props
[
  "difficulty" => "advanced"
]
Attributes
[]
Component
App\Twig\Components\Training\DifficultyBadge {#10184
  +difficulty: "advanced"
  +small: false
  +link: true
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.11 ms
Input props
[
  "name" => "Kettlebells"
  "url" => "/fr/exercices/equipement/2-kettlebells"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10229
  +name: "Kettlebells"
  +url: "/fr/exercices/equipement/2-kettlebells"
  +color: "gray"
  +small: true
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.10 ms
Input props
[
  "name" => "Musculation"
  "url" => "/fr/exercices/sport/1-musculation"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10256
  +name: "Musculation"
  +url: "/fr/exercices/sport/1-musculation"
  +color: "gray"
  +small: true
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.09 ms
Input props
[
  "name" => "Callisthénie"
  "url" => "/fr/exercices/sport/3-callisthenie"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10280
  +name: "Callisthénie"
  +url: "/fr/exercices/sport/3-callisthenie"
  +color: "gray"
  +small: true
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.09 ms
Input props
[
  "name" => "Fitness"
  "url" => "/fr/exercices/sport/5-fitness"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10304
  +name: "Fitness"
  +url: "/fr/exercices/sport/5-fitness"
  +color: "gray"
  +small: true
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.09 ms
Input props
[
  "name" => "Crossfit"
  "url" => "/fr/exercices/sport/7-crossfit"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10328
  +name: "Crossfit"
  +url: "/fr/exercices/sport/7-crossfit"
  +color: "gray"
  +small: true
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.09 ms
Input props
[
  "name" => "Yoga"
  "url" => "/fr/exercices/sport/8-yoga"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10352
  +name: "Yoga"
  +url: "/fr/exercices/sport/8-yoga"
  +color: "gray"
  +small: true
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.10 ms
Input props
[
  "name" => "Mobilité"
  "url" => "/fr/exercices/categorie/59-mobilite"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10376
  +name: "Mobilité"
  +url: "/fr/exercices/categorie/59-mobilite"
  +color: "gray"
  +small: true
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.11 ms
Input props
[
  "name" => "Renforcement"
  "url" => "/fr/exercices/categorie/61-renforcement"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10400
  +name: "Renforcement"
  +url: "/fr/exercices/categorie/61-renforcement"
  +color: "gray"
  +small: true
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.08 ms
Input props
[
  "name" => "Tronc"
  "url" => "/fr/exercices/categorie/74-tronc"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10424
  +name: "Tronc"
  +url: "/fr/exercices/categorie/74-tronc"
  +color: "gray"
  +small: true
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.08 ms
Input props
[
  "name" => "Entraînement fonctionnel"
  "url" => "/fr/exercices/categorie/77-entrainement-fonctionnel"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10448
  +name: "Entraînement fonctionnel"
  +url: "/fr/exercices/categorie/77-entrainement-fonctionnel"
  +color: "gray"
  +small: true
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.08 ms
Input props
[
  "name" => "Équilibre et stabilité"
  "url" => "/fr/exercices/categorie/78-equilibre-et-stabilite"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10472
  +name: "Équilibre et stabilité"
  +url: "/fr/exercices/categorie/78-equilibre-et-stabilite"
  +color: "gray"
  +small: true
  +selected: false
}
ad:square:fluid App\Twig\Components\Ad\AdSquareFluid 84.5 MiB 0.12 ms
Input props
[
  "containerClass" => "hidden lg:flex items-center justify-center my-6"
]
Attributes
[]
Component
App\Twig\Components\Ad\AdSquareFluid {#10165
  +includeScript: true
  +labelClass: null
  +containerClass: "hidden lg:flex items-center justify-center my-6"
  +adClass: null
  +showBgColor: true
  #kernel: App\Kernel {#14 …}
  #accountManager: App\BusinessLogic\User\Manager\AccountManager {#2927 …}
  #parameterBag: Symfony\Component\DependencyInjection\ParameterBag\ContainerBag {#686 …}
  #seoPage: App\BusinessLogic\App\Seo\SeoPage {#210 …}
}
app:loading_spinner App\Twig\Components\App\LoadingSpinner 84.5 MiB 0.59 ms
Input props
[]
Attributes
[]
Component
App\Twig\Components\App\LoadingSpinner {#8266
  +color: "fill-primary"
  +size: 8
  +centered: true
  +inline: false
}
app:loading_spinner App\Twig\Components\App\LoadingSpinner 84.5 MiB 0.11 ms
Input props
[]
Attributes
[]
Component
App\Twig\Components\App\LoadingSpinner {#10517
  +color: "fill-primary"
  +size: 8
  +centered: true
  +inline: false
}
media:icon App\Twig\Components\Media\Icon 84.5 MiB 0.09 ms
Input props
[
  "name" => "program"
  "class" => "w-6 h-6 mr-3 !text-white"
]
Attributes
[
  "class" => "w-6 h-6 mr-3 !text-white"
]
Component
App\Twig\Components\Media\Icon {#10566
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "program"
  +title: null
  +symbolDefsName: null
}
ui:widget-embed App\Twig\Components\Ui\WidgetEmbed 86.5 MiB 1.69 ms
Input props
[
  "class" => "hidden md:block"
  "route" => "https://test.fitmetrics.ch/fr/widgets/exercise/preview-6733d73b94185?video=1"
  "parameters" => [
    [
      "name" => "orientation"
      "description" => "Change the layout: horizontal (side by side) or vertical (stacked)"
      "example" => "?orientation=vertical"
      "values" => [
        "horizontal"
        "vertical"
      ]
    ]
    [
      "name" => "video"
      "description" => "Show the exercise video (if available): yes"
      "example" => "?video=1"
      "values" => [
        "0"
        "1"
        "true"
        "false"
      ]
    ]
  ]
  "defaultWidth" => 350
  "defaultHeight" => 700
]
Attributes
[
  "class" => "hidden md:block"
]
Component
App\Twig\Components\Ui\WidgetEmbed {#10602
  +route: "https://test.fitmetrics.ch/fr/widgets/exercise/preview-6733d73b94185?video=1"
  +parameters: [
    [
      "name" => "orientation"
      "description" => "Change the layout: horizontal (side by side) or vertical (stacked)"
      "example" => "?orientation=vertical"
      "values" => [
        "horizontal"
        "vertical"
      ]
    ]
    [
      "name" => "video"
      "description" => "Show the exercise video (if available): yes"
      "example" => "?video=1"
      "values" => [
        "0"
        "1"
        "true"
        "false"
      ]
    ]
  ]
  +defaultWidth: 350
  +defaultHeight: 700
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.10 ms
Input props
[
  "name" => "check"
  "class" => "me-1"
  "style" => "width: 20px; height: 20px;"
]
Attributes
[
  "class" => "me-1"
  "style" => "width: 20px; height: 20px;"
]
Component
App\Twig\Components\Media\Icon {#10640
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "check"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.09 ms
Input props
[
  "name" => "close"
  "class" => "w-[26px] h-[26px] cursor-pointer text-black dark:text-white"
]
Attributes
[
  "class" => "w-[26px] h-[26px] cursor-pointer text-black dark:text-white"
]
Component
App\Twig\Components\Media\Icon {#10673
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "close"
  +title: null
  +symbolDefsName: null
}
app:page-sharer App\Twig\Components\App\PageSharer 86.5 MiB 2.20 ms
Input props
[
  "class" => "content-container"
  "title" => "Moulinet avec kettlebell"
  "description" => "Le moulinet avec kettlebell est un exercice avancé de renforcement fonctionnel conçu pour développer le contrôle corporel global, la stabilité articulaire et la coordination motrice. Il sollicite une flexion latérale contrôlée combinée à une rotation du tronc, ce qui en fait un mouvement complet et technique. Réalisé avec une kettlebell maintenue au-dessus de la tête, ce mouvement met l’accent sur l’alignement postural, la stabilité de l’épaule et le contrôle unilatéral. Le moulinet permet d’améliorer la souplesse de la colonne vertébrale, de renforcer la sangle abdominale profonde et de travailler la chaîne postérieure en synergie. Il est particulièrement recommandé dans les routines de mobilité, de préparation physique et dans les disciplines telles que le CrossFit. Ce mouvement favorise également la proprioception et l'endurance musculaire dans les plans de rotation en apportant un bénéfice direct à la performance athlétique et à la prévention des blessures. Son exécution maîtrisée exige une technique rigoureuse et une conscience corporelle avancée."
]
Attributes
[
  "class" => "content-container"
]
Component
App\Twig\Components\App\PageSharer {#10713
  +shareUrl: "https://test.fitmetrics.ch/fr/exercice/6733d73b94185-moulinet-avec-kettlebell?alias=4916"
  +title: "Moulinet avec kettlebell"
  +description: "Le moulinet avec kettlebell est un exercice avancé de renforcement fonctionnel conçu pour développer le contrôle corporel global, la stabilité articulaire et la coordination motrice. Il sollicite une flexion latérale contrôlée combinée à une rotation du tronc, ce qui en fait un mouvement complet et technique. Réalisé avec une kettlebell maintenue au-dessus de la tête, ce mouvement met l’accent sur l’alignement postural, la stabilité de l’épaule et le contrôle unilatéral. Le moulinet permet d’améliorer la souplesse de la colonne vertébrale, de renforcer la sangle abdominale profonde et de travailler la chaîne postérieure en synergie. Il est particulièrement recommandé dans les routines de mobilité, de préparation physique et dans les disciplines telles que le CrossFit. Ce mouvement favorise également la proprioception et l'endurance musculaire dans les plans de rotation en apportant un bénéfice direct à la performance athlétique et à la prévention des blessures. Son exécution maîtrisée exige une technique rigoureuse et une conscience corporelle avancée."
  +quote: null
  +hashtags: [
    "fitmetrics"
  ]
  +alignMobileLeft: false
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#865 …}
  -seoPage: App\BusinessLogic\App\Seo\SeoPage {#210 …}
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.08 ms
Input props
[
  "name" => "check"
  "class" => "w-5 h-5 text-white fill-white"
]
Attributes
[
  "class" => "w-5 h-5 text-white fill-white"
]
Component
App\Twig\Components\Media\Icon {#10721
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "check"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.08 ms
Input props
[
  "name" => "reddit"
  "class" => "w-6 h-6 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-6 h-6 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
]
Component
App\Twig\Components\Media\Icon {#10743
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "reddit"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.08 ms
Input props
[
  "name" => "twitter"
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
]
Component
App\Twig\Components\Media\Icon {#10767
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "twitter"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.07 ms
Input props
[
  "name" => "threads"
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
]
Component
App\Twig\Components\Media\Icon {#10790
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "threads"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.08 ms
Input props
[
  "name" => "facebook"
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
]
Component
App\Twig\Components\Media\Icon {#10813
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "facebook"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.07 ms
Input props
[
  "name" => "linkedin"
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
]
Component
App\Twig\Components\Media\Icon {#10836
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "linkedin"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.07 ms
Input props
[
  "name" => "whatsapp"
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
]
Component
App\Twig\Components\Media\Icon {#10859
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "whatsapp"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.07 ms
Input props
[
  "name" => "email"
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
]
Component
App\Twig\Components\Media\Icon {#10882
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "email"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
ad:wide-skyscraper App\Twig\Components\Ad\AdWideSkyscraper 86.5 MiB 0.69 ms
Input props
[]
Attributes
[]
Component
App\Twig\Components\Ad\AdWideSkyscraper {#719
  +includeScript: true
  +labelClass: null
  +containerClass: ""
  +adClass: null
  +showBgColor: false
  #kernel: App\Kernel {#14 …}
  #accountManager: App\BusinessLogic\User\Manager\AccountManager {#2927 …}
  #parameterBag: Symfony\Component\DependencyInjection\ParameterBag\ContainerBag {#686 …}
  #seoPage: App\BusinessLogic\App\Seo\SeoPage {#210 …}
  +right: true
  +left: true
}
ad:horizontal:fluid App\Twig\Components\Ad\AdHorizontalFluid 86.5 MiB 0.58 ms
Input props
[
  "containerClass" => "content-container my-4"
]
Attributes
[]
Component
App\Twig\Components\Ad\AdHorizontalFluid {#10929
  +includeScript: true
  +labelClass: null
  +containerClass: "content-container my-4"
  +adClass: null
  +showBgColor: true
  #kernel: App\Kernel {#14 …}
  #accountManager: App\BusinessLogic\User\Manager\AccountManager {#2927 …}
  #parameterBag: Symfony\Component\DependencyInjection\ParameterBag\ContainerBag {#686 …}
  #seoPage: App\BusinessLogic\App\Seo\SeoPage {#210 …}
}
app:lang-selector App\Twig\Components\App\LangSelector 86.5 MiB 0.09 ms
Input props
[
  "defaultOpenLeft" => false
]
Attributes
[]
Component
App\Twig\Components\App\LangSelector {#10984
  +routeName: null
  +params: null
  +withQuery: true
  +defaultOpenLeft: false
  -seoPage: App\BusinessLogic\App\Seo\SeoPage {#210 …}
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#865 …}
  -router: Symfony\Bundle\FrameworkBundle\Routing\Router {#681 …}
}
utils:theme-switcher
[Anonymous]
86.5 MiB 0.26 ms
Input props
[
  "class" => "max-w-fit"
]
Attributes
[
  "class" => "max-w-fit"
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#10976
  -props: [
    "class" => "max-w-fit"
  ]
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.09 ms
Input props
[
  "name" => "fitmetrics-biceps"
  "class" => "h-12 sm:h-16 max-w-[116px] mr-3 dark:hidden"
]
Attributes
[
  "class" => "h-12 sm:h-16 max-w-[116px] mr-3 dark:hidden"
]
Component
App\Twig\Components\Media\Icon {#11018
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "fitmetrics-biceps"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.08 ms
Input props
[
  "name" => "fitmetrics-white-biceps"
  "class" => "h-12 sm:h-16 max-w-[116px] mr-3 hidden dark:block"
]
Attributes
[
  "class" => "h-12 sm:h-16 max-w-[116px] mr-3 hidden dark:block"
]
Component
App\Twig\Components\Media\Icon {#11050
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "fitmetrics-white-biceps"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.07 ms
Input props
[
  "name" => "heart"
  "class" => "heart h-5 w-5 text-[#eb2a2a]"
]
Attributes
[
  "class" => "heart h-5 w-5 text-[#eb2a2a]"
]
Component
App\Twig\Components\Media\Icon {#11073
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "heart"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.08 ms
Input props
[
  "name" => "whatsapp"
  "class" => "w-[28px] h-[28px]"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-[28px] h-[28px]"
]
Component
App\Twig\Components\Media\Icon {#11096
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "whatsapp"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.07 ms
Input props
[
  "name" => "instagram"
  "class" => "w-[28px] h-[28px]"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-[28px] h-[28px]"
]
Component
App\Twig\Components\Media\Icon {#11119
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "instagram"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.08 ms
Input props
[
  "name" => "threads"
  "class" => "w-[28px] h-[28px]"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-[28px] h-[28px]"
]
Component
App\Twig\Components\Media\Icon {#11142
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "threads"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.08 ms
Input props
[
  "name" => "tiktok"
  "class" => "w-[29px] h-[29px]"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-[29px] h-[29px]"
]
Component
App\Twig\Components\Media\Icon {#11165
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "tiktok"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.07 ms
Input props
[
  "name" => "facebook"
  "class" => "w-[19px] h-[28px]"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-[19px] h-[28px]"
]
Component
App\Twig\Components\Media\Icon {#11188
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "facebook"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.06 ms
Input props
[
  "name" => "youtube"
  "class" => "w-[28px] h-[24px]"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-[28px] h-[24px]"
]
Component
App\Twig\Components\Media\Icon {#11211
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6157 …}
  +name: "youtube"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}