Redirect 301 redirect from GET @training_exercise_detail (c806c3)

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

Components

20 Twig Components
120 Render Count
427 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 2.95ms
ui:badge
"App\Twig\Components\Ui\Badge"
components/ui/badge.html.twig
19 1.39ms
faq
"App\Twig\Components\Ui\FaqComponent"
components/ui/faq.html.twig
5 1.56ms
raw-faq
"App\Twig\Components\Ui\RawFaqComponent"
components/ui/raw-faq.html.twig
5 0.53ms
utils:theme-switcher
[Anonymous]
components/utils/theme-switcher.html.twig
3 1.28ms
ad:square:fluid
"App\Twig\Components\Ad\AdSquareFluid"
components/ad/square-fluid.html.twig
3 0.45ms
app:lang-selector
"App\Twig\Components\App\LangSelector"
components/app/lang-selector.html.twig
2 0.57ms
app:page-sharer
"App\Twig\Components\App\PageSharer"
components/app/page-sharer.html.twig
2 2.75ms
ui:editor-render
"App\Twig\Components\Ui\Editor\EditorRender"
components/ui/editor/render.html.twig
2 1.12ms
app:loading_spinner
"App\Twig\Components\App\LoadingSpinner"
components/app/loading-spinner.html.twig
2 0.46ms
menu:main
"App\Twig\Components\Menu\MainMenu"
components/menu/main.html.twig
1 38.74ms
menu:connexion-menu
"App\Twig\Components\Menu\ConnexionMenu"
components/menu/user-menu.html.twig
1 8.89ms
menu:breadcrumb
"App\Twig\Components\Menu\Breadcrumb"
components/menu/breadcrumb.html.twig
1 0.61ms
ad:banner
"App\Twig\Components\Ad\AdBanner"
components/ad/banner.html.twig
1 0.40ms
media:video
"App\Twig\Components\Media\Video"
components/media/video.html.twig
1 0.33ms
anatomy:avatar
"App\Twig\Components\Anatomy\Avatar"
components/anatomy/avatar.html.twig
1 376.18ms
training:difficulty-badge
"App\Twig\Components\Training\DifficultyBadge"
components/training/difficulity-badge.html.twig
1 0.36ms
ui:widget-embed
"App\Twig\Components\Ui\WidgetEmbed"
components/ui/widget_embed.html.twig
1 1.01ms
ad:wide-skyscraper
"App\Twig\Components\Ad\AdWideSkyscraper"
components/ad/wide-skyscraper.html.twig
1 0.42ms
ad:horizontal:fluid
"App\Twig\Components\Ad\AdHorizontalFluid"
components/ad/horizontal-fluid.html.twig
1 0.34ms

Render calls

menu:main App\Twig\Components\Menu\MainMenu 74.5 MiB 38.74 ms
Input props
[]
Attributes
[]
Component
App\Twig\Components\Menu\MainMenu {#6103
  -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.41 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 {#6150
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +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" => "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 {#6161
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "fitmetrics-white-biceps"
  +title: null
  +symbolDefsName: null
}
utils:theme-switcher
[Anonymous]
68.5 MiB 1.03 ms
Input props
[
  "class" => "max-w-fit"
]
Attributes
[
  "class" => "max-w-fit"
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#6212
  -props: [
    "class" => "max-w-fit"
  ]
}
media:icon App\Twig\Components\Media\Icon 68.5 MiB 0.04 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 {#6227
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +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 {#6277
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "fitmetrics-white-biceps"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 68.5 MiB 0.04 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 {#6305
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +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 {#6321
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +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 {#6345
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +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 {#6369
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +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 {#6393
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +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 {#6417
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +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 {#6441
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +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 {#6465
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +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 {#6489
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +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 {#6862
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "chevron-down"
  +title: null
  +symbolDefsName: null
}
utils:theme-switcher
[Anonymous]
70.5 MiB 0.10 ms
Input props
[
  "class" => "max-w-fit"
]
Attributes
[
  "class" => "max-w-fit"
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#6817
  -props: [
    "class" => "max-w-fit"
  ]
}
menu:connexion-menu App\Twig\Components\Menu\ConnexionMenu 74.5 MiB 8.89 ms
Input props
[]
Attributes
[]
Component
App\Twig\Components\Menu\ConnexionMenu {#6947
  -authenticationUtils: Symfony\Component\Security\Http\Authentication\AuthenticationUtils {#6948 …}
  -formFactory: Symfony\Component\Form\FormFactory {#6946 …}
}
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 {#7099
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "close"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 72.5 MiB 0.03 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 {#7134
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +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 {#7164
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +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 {#7196
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "google"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 72.5 MiB 0.04 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 {#7215
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "apple"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.04 ms
Input props
[
  "name" => "fitmetrics-white-biceps"
  "class" => "h-[80px] w-[300px]"
]
Attributes
[
  "class" => "h-[80px] w-[300px]"
]
Component
App\Twig\Components\Media\Icon {#7325
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +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 {#7359
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +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 {#7375
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +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 {#7399
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +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 {#7423
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "category"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 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 {#7447
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +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 {#7471
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +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 {#7495
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +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 {#7519
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +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 {#7543
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +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 {#7567
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +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 {#7591
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "more"
  +title: null
  +symbolDefsName: null
}
app:lang-selector App\Twig\Components\App\LangSelector 74.5 MiB 0.52 ms
Input props
[
  "defaultOpenLeft" => true
]
Attributes
[]
Component
App\Twig\Components\App\LangSelector {#7636
  +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 {#7626
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +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 {#7267
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "fitmetrics-biceps"
  +title: null
  +symbolDefsName: null
}
menu:breadcrumb App\Twig\Components\Menu\Breadcrumb 74.5 MiB 0.61 ms
Input props
[
  "builder" => App\BusinessLogic\App\Menu\BreadcrumbBuilder {#4666
    -items: [
      [
        "label" => "menu.home"
        "url" => "/fr/"
      ]
      [
        "label" => "menu.exercises"
        "url" => "/fr/exercices"
      ]
      [
        "label" => "Windmill"
        "url" => "/fr/exercices/groupe/159-windmill"
      ]
      [
        "label" => "Moulinet avec kettlebell"
        "url" => null
      ]
    ]
  }
]
Attributes
[]
Component
App\Twig\Components\Menu\Breadcrumb {#7719
  +items: [
    [
      "label" => "menu.home"
      "url" => "/fr/"
    ]
    [
      "label" => "menu.exercises"
      "url" => "/fr/exercices"
    ]
    [
      "label" => "Windmill"
      "url" => "/fr/exercices/groupe/159-windmill"
    ]
    [
      "label" => "Moulinet avec kettlebell"
      "url" => null
    ]
  ]
  +builder: App\BusinessLogic\App\Menu\BreadcrumbBuilder {#4666
    -items: [
      [
        "label" => "menu.home"
        "url" => "/fr/"
      ]
      [
        "label" => "menu.exercises"
        "url" => "/fr/exercices"
      ]
      [
        "label" => "Windmill"
        "url" => "/fr/exercices/groupe/159-windmill"
      ]
      [
        "label" => "Moulinet 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 {#7749
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +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 {#7771
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +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 {#7794
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "chevron-right"
  +title: null
  +symbolDefsName: null
}
ad:banner App\Twig\Components\Ad\AdBanner 74.5 MiB 0.40 ms
Input props
[
  "containerClass" => "my-4"
]
Attributes
[]
Component
App\Twig\Components\Ad\AdBanner {#7837
  +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.33 ms
Input props
[
  "media" => App\Entity\Media\MediaVideo {#4597
    #uploadedFile: null
    #file: Vich\UploaderBundle\Entity\File {#4599 …}
    #credits: Doctrine\ORM\PersistentCollection {#4601 …}
    -source: null
    -zone: null
    -urlExternal: "https://www.youtube.com/watch?v=BaKdPgHAk6c"
    #id: 2052
    -notes: null
    #translations: Doctrine\ORM\PersistentCollection {#4648 …}
    #newTranslations: null
    #currentLocale: "fr"
    #defaultLocale: "en"
    -tiersId: null
    -tiersName: "azeoo"
    #createdAt: DateTimeImmutable @1731450683 {#4635
      date: 2024-11-12 23:31:23.0 Europe/Zurich (+01:00)
    }
    #updatedAt: DateTimeImmutable @1731450683 {#4587
      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 {#7924
  +media: App\Entity\Media\MediaVideo {#4597
    #uploadedFile: null
    #file: Vich\UploaderBundle\Entity\File {#4599 …}
    #credits: Doctrine\ORM\PersistentCollection {#4601 …}
    -source: null
    -zone: null
    -urlExternal: "https://www.youtube.com/watch?v=BaKdPgHAk6c"
    #id: 2052
    -notes: null
    #translations: Doctrine\ORM\PersistentCollection {#4648 …}
    #newTranslations: null
    #currentLocale: "fr"
    #defaultLocale: "en"
    -tiersId: null
    -tiersName: "azeoo"
    #createdAt: DateTimeImmutable @1731450683 {#4635
      date: 2024-11-12 23:31:23.0 Europe/Zurich (+01:00)
    }
    #updatedAt: DateTimeImmutable @1731450683 {#4587
      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 {#7940
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +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 {#7973
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "program"
  +title: null
  +symbolDefsName: null
}
app:page-sharer App\Twig\Components\App\PageSharer 76.5 MiB 1.47 ms
Input props
[
  "class" => "mt-2 md:m-0"
]
Attributes
[
  "class" => "mt-2 md:m-0"
]
Component
App\Twig\Components\App\PageSharer {#7997
  +shareUrl: "https://test.fitmetrics.ch/fr/exercice/6733d73b94185-moulinet-avec-kettlebell"
  +title: "Moulinet 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 {#8027
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +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 {#8055
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +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 {#8080
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "twitter"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.04 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 {#8103
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "threads"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.04 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 {#8126
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +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 {#8149
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "linkedin"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 76.5 MiB 0.09 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 {#8172
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +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 {#8195
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +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 {#8226
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "program"
  +title: null
  +symbolDefsName: null
}
ui:editor-render App\Twig\Components\Ui\Editor\EditorRender 76.5 MiB 1.00 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 {#8275
  +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.13 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 {#8336
  +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 {#8323
  +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.76 ms
Input props
[
  "faq" => App\Entity\Faq {#5395
    -news: Doctrine\ORM\PersistentCollection {#5378 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5380 …}
    #id: 1840
    #createdAt: DateTimeImmutable @1749138310 {#5390
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1749138310 {#5365
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #createdBy: null
    #updatedBy: null
    #translations: Doctrine\ORM\PersistentCollection {#5428 …}
    #newTranslations: null
    #currentLocale: "fr"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
]
Attributes
[]
Component
App\Twig\Components\Ui\FaqComponent {#8380
  +faq: App\Entity\Faq {#5395
    -news: Doctrine\ORM\PersistentCollection {#5378 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5380 …}
    #id: 1840
    #createdAt: DateTimeImmutable @1749138310 {#5390
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1749138310 {#5365
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #createdBy: null
    #updatedBy: null
    #translations: Doctrine\ORM\PersistentCollection {#5428 …}
    #newTranslations: null
    #currentLocale: "fr"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
}
raw-faq App\Twig\Components\Ui\RawFaqComponent 76.5 MiB 0.28 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 {#8408
  +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 {#5426
    -news: Doctrine\ORM\PersistentCollection {#5425 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5423 …}
    #id: 1841
    #createdAt: DateTimeImmutable @1749138310 {#5430
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1749138310 {#5427
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #createdBy: null
    #updatedBy: null
    #translations: Doctrine\ORM\PersistentCollection {#5421 …}
    #newTranslations: null
    #currentLocale: "fr"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
]
Attributes
[]
Component
App\Twig\Components\Ui\FaqComponent {#8439
  +faq: App\Entity\Faq {#5426
    -news: Doctrine\ORM\PersistentCollection {#5425 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5423 …}
    #id: 1841
    #createdAt: DateTimeImmutable @1749138310 {#5430
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1749138310 {#5427
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #createdBy: null
    #updatedBy: null
    #translations: Doctrine\ORM\PersistentCollection {#5421 …}
    #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" => "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 {#8484
  +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.20 ms
Input props
[
  "faq" => App\Entity\Faq {#5417
    -news: Doctrine\ORM\PersistentCollection {#5416 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5414 …}
    #id: 1842
    #createdAt: DateTimeImmutable @1749138310 {#5419
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1749138310 {#5418
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #createdBy: null
    #updatedBy: null
    #translations: Doctrine\ORM\PersistentCollection {#5412 …}
    #newTranslations: null
    #currentLocale: "fr"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
]
Attributes
[]
Component
App\Twig\Components\Ui\FaqComponent {#8487
  +faq: App\Entity\Faq {#5417
    -news: Doctrine\ORM\PersistentCollection {#5416 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5414 …}
    #id: 1842
    #createdAt: DateTimeImmutable @1749138310 {#5419
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1749138310 {#5418
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #createdBy: null
    #updatedBy: null
    #translations: Doctrine\ORM\PersistentCollection {#5412 …}
    #newTranslations: null
    #currentLocale: "fr"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
}
raw-faq App\Twig\Components\Ui\RawFaqComponent 76.5 MiB 0.07 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 {#8531
  +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.20 ms
Input props
[
  "faq" => App\Entity\Faq {#5408
    -news: Doctrine\ORM\PersistentCollection {#5407 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5405 …}
    #id: 1843
    #createdAt: DateTimeImmutable @1749138310 {#5410
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1749138310 {#5409
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #createdBy: null
    #updatedBy: null
    #translations: Doctrine\ORM\PersistentCollection {#5403 …}
    #newTranslations: null
    #currentLocale: "fr"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
]
Attributes
[]
Component
App\Twig\Components\Ui\FaqComponent {#8534
  +faq: App\Entity\Faq {#5408
    -news: Doctrine\ORM\PersistentCollection {#5407 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5405 …}
    #id: 1843
    #createdAt: DateTimeImmutable @1749138310 {#5410
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1749138310 {#5409
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #createdBy: null
    #updatedBy: null
    #translations: Doctrine\ORM\PersistentCollection {#5403 …}
    #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" => "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 {#8578
  +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.20 ms
Input props
[
  "faq" => App\Entity\Faq {#5355
    -news: Doctrine\ORM\PersistentCollection {#5354 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5352 …}
    #id: 1844
    #createdAt: DateTimeImmutable @1749138310 {#5357
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1749138310 {#5356
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #createdBy: null
    #updatedBy: null
    #translations: Doctrine\ORM\PersistentCollection {#5350 …}
    #newTranslations: null
    #currentLocale: "fr"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
]
Attributes
[]
Component
App\Twig\Components\Ui\FaqComponent {#8581
  +faq: App\Entity\Faq {#5355
    -news: Doctrine\ORM\PersistentCollection {#5354 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5352 …}
    #id: 1844
    #createdAt: DateTimeImmutable @1749138310 {#5357
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1749138310 {#5356
      date: 2025-06-05 17:45:10.0 Europe/Zurich (+02:00)
    }
    #createdBy: null
    #updatedBy: null
    #translations: Doctrine\ORM\PersistentCollection {#5350 …}
    #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" => "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 {#8625
  +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 376.18 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 {#8553
  #container: Symfony\Component\DependencyInjection\Argument\ServiceLocator {#8636 …}
  +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 {#8634 …}
  -liveResponder: Symfony\UX\LiveComponent\LiveResponder {#8635 …}
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.42 ms
Input props
[
  "name" => "Abdominaux"
  "url" => "/fr/exercices/muscle/6-abdominaux"
  "color" => "primary"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#9951
  +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.05 ms
Input props
[
  "name" => "Fessiers"
  "url" => "/fr/exercices/muscle/3-fessiers"
  "color" => "primary"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10003
  +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.06 ms
Input props
[
  "name" => "Lombaires"
  "url" => "/fr/exercices/muscle/5-lombaires"
  "color" => "primary"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10027
  +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.05 ms
Input props
[
  "name" => "Obliques"
  "url" => "/fr/exercices/muscle/15-obliques"
  "color" => "primary"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10051
  +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.04 ms
Input props
[
  "name" => "Grand dorsal"
  "url" => "/fr/exercices/muscle/25-grand-dorsal"
  "color" => "primary"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10075
  +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.05 ms
Input props
[
  "name" => "Rhomboïde"
  "url" => "/fr/exercices/muscle/26-rhombo%C3%AFde"
  "color" => "primary"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10099
  +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.05 ms
Input props
[
  "name" => "Épaules"
  "url" => "/fr/exercices/muscle/28-epaules"
  "color" => "primary"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10123
  +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.06 ms
Input props
[
  "name" => "Moyen fessier"
  "url" => "/fr/exercices/muscle/33-moyen-fessier"
  "color" => "primary"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10147
  +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.08 ms
Input props
[]
Attributes
[]
Component
App\Twig\Components\Ad\AdSquareFluid {#9923
  +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.36 ms
Input props
[
  "difficulty" => "advanced"
]
Attributes
[]
Component
App\Twig\Components\Training\DifficultyBadge {#10180
  +difficulty: "advanced"
  +small: false
  +link: true
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.07 ms
Input props
[
  "name" => "Kettlebells"
  "url" => "/fr/exercices/equipement/2-kettlebells"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10225
  +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.06 ms
Input props
[
  "name" => "Musculation"
  "url" => "/fr/exercices/sport/1-musculation"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10252
  +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.05 ms
Input props
[
  "name" => "Callisthénie"
  "url" => "/fr/exercices/sport/3-callisthenie"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10276
  +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.05 ms
Input props
[
  "name" => "Fitness"
  "url" => "/fr/exercices/sport/5-fitness"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10300
  +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.05 ms
Input props
[
  "name" => "Crossfit"
  "url" => "/fr/exercices/sport/7-crossfit"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10324
  +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.05 ms
Input props
[
  "name" => "Yoga"
  "url" => "/fr/exercices/sport/8-yoga"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10348
  +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.06 ms
Input props
[
  "name" => "Mobilité"
  "url" => "/fr/exercices/categorie/59-mobilite"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10372
  +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.06 ms
Input props
[
  "name" => "Renforcement"
  "url" => "/fr/exercices/categorie/61-renforcement"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10396
  +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.05 ms
Input props
[
  "name" => "Tronc"
  "url" => "/fr/exercices/categorie/74-tronc"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10420
  +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.06 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 {#10444
  +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.06 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 {#10468
  +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.08 ms
Input props
[
  "containerClass" => "hidden lg:flex items-center justify-center my-6"
]
Attributes
[]
Component
App\Twig\Components\Ad\AdSquareFluid {#10161
  +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.40 ms
Input props
[]
Attributes
[]
Component
App\Twig\Components\App\LoadingSpinner {#8262
  +color: "fill-primary"
  +size: 8
  +centered: true
  +inline: false
}
app:loading_spinner App\Twig\Components\App\LoadingSpinner 84.5 MiB 0.06 ms
Input props
[]
Attributes
[]
Component
App\Twig\Components\App\LoadingSpinner {#10523
  +color: "fill-primary"
  +size: 8
  +centered: true
  +inline: false
}
media:icon App\Twig\Components\Media\Icon 84.5 MiB 0.06 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 {#10561
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "program"
  +title: null
  +symbolDefsName: null
}
ui:widget-embed App\Twig\Components\Ui\WidgetEmbed 86.5 MiB 1.01 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 {#10597
  +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.06 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 {#10635
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "check"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.06 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 {#10668
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "close"
  +title: null
  +symbolDefsName: null
}
app:page-sharer App\Twig\Components\App\PageSharer 86.5 MiB 1.28 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 {#10708
  +shareUrl: "https://test.fitmetrics.ch/fr/exercice/6733d73b94185-moulinet-avec-kettlebell"
  +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.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 {#10716
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "check"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.06 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 {#10738
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "reddit"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.05 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 {#10762
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "twitter"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.04 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 {#10785
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "threads"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.04 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 {#10808
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "facebook"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.04 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 {#10831
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "linkedin"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.04 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 {#10854
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "whatsapp"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.04 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 {#10877
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "email"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
ad:wide-skyscraper App\Twig\Components\Ad\AdWideSkyscraper 86.5 MiB 0.42 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.34 ms
Input props
[
  "containerClass" => "content-container my-4"
]
Attributes
[]
Component
App\Twig\Components\Ad\AdHorizontalFluid {#10924
  +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.05 ms
Input props
[
  "defaultOpenLeft" => false
]
Attributes
[]
Component
App\Twig\Components\App\LangSelector {#10979
  +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.14 ms
Input props
[
  "class" => "max-w-fit"
]
Attributes
[
  "class" => "max-w-fit"
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#10971
  -props: [
    "class" => "max-w-fit"
  ]
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.05 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 {#11013
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "fitmetrics-biceps"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.04 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 {#11045
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "fitmetrics-white-biceps"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.04 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 {#11068
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "heart"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.05 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 {#11091
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "whatsapp"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.05 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 {#11114
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "instagram"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.04 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 {#11137
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "threads"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.04 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 {#11160
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "tiktok"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.04 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 {#11183
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "facebook"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 86.5 MiB 0.05 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 {#11206
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6153 …}
  +name: "youtube"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}