Redirect 301 redirect from GET @training_exercise_detail (4b6fde)

GET https://test.fitmetrics.ch/en/exercise/6733d70f76309-medball-thoracic-opener

Components

20 Twig Components
118 Render Count
656 ms Render Time
84.5 MiB Memory Usage

Components

Name Metadata Render Count Render Time
media:icon
"App\Twig\Components\Media\Icon"
components/media/icon.html.twig
67 4.33ms
ui:badge
"App\Twig\Components\Ui\Badge"
components/ui/badge.html.twig
17 2.14ms
faq
"App\Twig\Components\Ui\FaqComponent"
components/ui/faq.html.twig
5 1.30ms
raw-faq
"App\Twig\Components\Ui\RawFaqComponent"
components/ui/raw-faq.html.twig
5 0.42ms
utils:theme-switcher
[Anonymous]
components/utils/theme-switcher.html.twig
3 1.48ms
ad:square:fluid
"App\Twig\Components\Ad\AdSquareFluid"
components/ad/square-fluid.html.twig
3 0.47ms
app:lang-selector
"App\Twig\Components\App\LangSelector"
components/app/lang-selector.html.twig
2 1.06ms
app:page-sharer
"App\Twig\Components\App\PageSharer"
components/app/page-sharer.html.twig
2 3.65ms
ui:editor-render
"App\Twig\Components\Ui\Editor\EditorRender"
components/ui/editor/render.html.twig
2 0.98ms
app:loading_spinner
"App\Twig\Components\App\LoadingSpinner"
components/app/loading-spinner.html.twig
2 0.64ms
menu:main
"App\Twig\Components\Menu\MainMenu"
components/menu/main.html.twig
1 42.09ms
menu:connexion-menu
"App\Twig\Components\Menu\ConnexionMenu"
components/menu/user-menu.html.twig
1 8.87ms
menu:breadcrumb
"App\Twig\Components\Menu\Breadcrumb"
components/menu/breadcrumb.html.twig
1 1.07ms
ad:banner
"App\Twig\Components\Ad\AdBanner"
components/ad/banner.html.twig
1 0.43ms
media:video
"App\Twig\Components\Media\Video"
components/media/video.html.twig
1 0.40ms
anatomy:avatar
"App\Twig\Components\Anatomy\Avatar"
components/anatomy/avatar.html.twig
1 597.88ms
training:difficulty-badge
"App\Twig\Components\Training\DifficultyBadge"
components/training/difficulity-badge.html.twig
1 0.64ms
ui:widget-embed
"App\Twig\Components\Ui\WidgetEmbed"
components/ui/widget_embed.html.twig
1 1.74ms
ad:wide-skyscraper
"App\Twig\Components\Ad\AdWideSkyscraper"
components/ad/wide-skyscraper.html.twig
1 0.82ms
ad:horizontal:fluid
"App\Twig\Components\Ad\AdHorizontalFluid"
components/ad/horizontal-fluid.html.twig
1 0.64ms

Render calls

menu:main App\Twig\Components\Menu\MainMenu 74.5 MiB 42.09 ms
Input props
[]
Attributes
[]
Component
App\Twig\Components\Menu\MainMenu {#5978
  -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 {#6025
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +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 {#6036
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "fitmetrics-white-biceps"
  +title: null
  +symbolDefsName: null
}
utils:theme-switcher
[Anonymous]
68.5 MiB 1.07 ms
Input props
[
  "class" => "max-w-fit"
]
Attributes
[
  "class" => "max-w-fit"
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#6087
  -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 {#6102
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "fitmetrics-biceps"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 68.5 MiB 0.03 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 {#6152
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +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 {#6180
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +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 {#6196
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "flexed-biceps"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 68.5 MiB 0.04 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 {#6220
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +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 {#6244
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "category"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 68.5 MiB 0.04 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 {#6268
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +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 {#6292
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +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 {#6316
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +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 {#6340
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +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 {#6364
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "random"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 68.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 {#6703
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "chevron-down"
  +title: null
  +symbolDefsName: null
}
utils:theme-switcher
[Anonymous]
68.5 MiB 0.11 ms
Input props
[
  "class" => "max-w-fit"
]
Attributes
[
  "class" => "max-w-fit"
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#6658
  -props: [
    "class" => "max-w-fit"
  ]
}
menu:connexion-menu App\Twig\Components\Menu\ConnexionMenu 74.5 MiB 8.87 ms
Input props
[]
Attributes
[]
Component
App\Twig\Components\Menu\ConnexionMenu {#6788
  -authenticationUtils: Symfony\Component\Security\Http\Authentication\AuthenticationUtils {#6789 …}
  -formFactory: Symfony\Component\Form\FormFactory {#6787 …}
}
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 {#6940
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +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 {#6975
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +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 {#7005
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "fitmetrics-biceps"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 72.5 MiB 0.05 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 {#7037
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +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 {#7056
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +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 {#7166
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +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 {#7200
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "chevron-down"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.16 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 {#7216
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "flexed-biceps"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.08 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 {#7240
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "fire"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.08 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 {#7264
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "category"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.07 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 {#7288
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "barbell"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.08 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 {#7312
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "discipline"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.07 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 {#7336
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "stats-chart"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.07 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 {#7360
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "latest"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.07 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 {#7384
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "random"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.08 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 {#7408
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "favorites"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.07 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 {#7432
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "more"
  +title: null
  +symbolDefsName: null
}
app:lang-selector App\Twig\Components\App\LangSelector 74.5 MiB 0.97 ms
Input props
[
  "defaultOpenLeft" => true
]
Attributes
[]
Component
App\Twig\Components\App\LangSelector {#7477
  +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.09 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 {#7467
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "close"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.06 ms
Input props
[
  "name" => "fitmetrics-biceps"
  "class" => "h-16 w-full"
]
Attributes
[
  "class" => "h-16 w-full"
]
Component
App\Twig\Components\Media\Icon {#7108
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "fitmetrics-biceps"
  +title: null
  +symbolDefsName: null
}
menu:breadcrumb App\Twig\Components\Menu\Breadcrumb 74.5 MiB 1.07 ms
Input props
[
  "builder" => App\BusinessLogic\App\Menu\BreadcrumbBuilder {#4600
    -items: [
      [
        "label" => "menu.home"
        "url" => "/en/"
      ]
      [
        "label" => "menu.exercises"
        "url" => "/en/exercises"
      ]
      [
        "label" => "Thoracic Opener"
        "url" => "/en/exercises/group/311-thoracic-opener"
      ]
      [
        "label" => "Medball Thoracic Opener"
        "url" => null
      ]
    ]
  }
]
Attributes
[]
Component
App\Twig\Components\Menu\Breadcrumb {#7560
  +items: [
    [
      "label" => "menu.home"
      "url" => "/en/"
    ]
    [
      "label" => "menu.exercises"
      "url" => "/en/exercises"
    ]
    [
      "label" => "Thoracic Opener"
      "url" => "/en/exercises/group/311-thoracic-opener"
    ]
    [
      "label" => "Medball Thoracic Opener"
      "url" => null
    ]
  ]
  +builder: App\BusinessLogic\App\Menu\BreadcrumbBuilder {#4600
    -items: [
      [
        "label" => "menu.home"
        "url" => "/en/"
      ]
      [
        "label" => "menu.exercises"
        "url" => "/en/exercises"
      ]
      [
        "label" => "Thoracic Opener"
        "url" => "/en/exercises/group/311-thoracic-opener"
      ]
      [
        "label" => "Medball Thoracic Opener"
        "url" => null
      ]
    ]
  }
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.07 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 {#7590
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "chevron-right"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.06 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 {#7612
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "chevron-right"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.06 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 {#7635
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "chevron-right"
  +title: null
  +symbolDefsName: null
}
ad:banner App\Twig\Components\Ad\AdBanner 74.5 MiB 0.43 ms
Input props
[
  "containerClass" => "my-4"
]
Attributes
[]
Component
App\Twig\Components\Ad\AdBanner {#7678
  +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.40 ms
Input props
[
  "media" => App\Entity\Media\MediaVideo {#4554
    #uploadedFile: null
    #file: Vich\UploaderBundle\Entity\File {#4556 …}
    #credits: Doctrine\ORM\PersistentCollection {#4558 …}
    -source: null
    -zone: null
    -urlExternal: "https://www.youtube.com/watch?v=mOEpmTo8uuE"
    #id: 851
    -notes: null
    #translations: Doctrine\ORM\PersistentCollection {#4530 …}
    #newTranslations: null
    #currentLocale: "en"
    #defaultLocale: "en"
    -tiersId: null
    -tiersName: "azeoo"
    #createdAt: DateTimeImmutable @1731450639 {#4592
      date: 2024-11-12 23:30:39.0 Europe/Zurich (+01:00)
    }
    #updatedAt: DateTimeImmutable @1731450639 {#4544
      date: 2024-11-12 23:30:39.0 Europe/Zurich (+01:00)
    }
    #createdBy: null
    #updatedBy: null
    -duration: null
    -format: null
    -startTime: null
    -endTime: null
    -youtubeId: "mOEpmTo8uuE"
  }
  "title" => "Medball Thoracic Opener"
  "showCredits" => false
]
Attributes
[]
Component
App\Twig\Components\Media\Video {#7765
  +media: App\Entity\Media\MediaVideo {#4554
    #uploadedFile: null
    #file: Vich\UploaderBundle\Entity\File {#4556 …}
    #credits: Doctrine\ORM\PersistentCollection {#4558 …}
    -source: null
    -zone: null
    -urlExternal: "https://www.youtube.com/watch?v=mOEpmTo8uuE"
    #id: 851
    -notes: null
    #translations: Doctrine\ORM\PersistentCollection {#4530 …}
    #newTranslations: null
    #currentLocale: "en"
    #defaultLocale: "en"
    -tiersId: null
    -tiersName: "azeoo"
    #createdAt: DateTimeImmutable @1731450639 {#4592
      date: 2024-11-12 23:30:39.0 Europe/Zurich (+01:00)
    }
    #updatedAt: DateTimeImmutable @1731450639 {#4544
      date: 2024-11-12 23:30:39.0 Europe/Zurich (+01:00)
    }
    #createdBy: null
    #updatedBy: null
    -duration: null
    -format: null
    -startTime: null
    -endTime: null
    -youtubeId: "mOEpmTo8uuE"
  }
  +title: "Medball Thoracic Opener"
  +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 {#7781
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +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 {#7814
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "program"
  +title: null
  +symbolDefsName: null
}
app:page-sharer App\Twig\Components\App\PageSharer 74.5 MiB 1.39 ms
Input props
[
  "class" => "mt-2 md:m-0"
]
Attributes
[
  "class" => "mt-2 md:m-0"
]
Component
App\Twig\Components\App\PageSharer {#7838
  +shareUrl: "https://test.fitmetrics.ch/en/exercise/6733d70f76309-medball-thoracic-opener"
  +title: "Medball Thoracic Opener - Exercise - FitMetrics"
  +description: "The Medball Thoracic Opener is a mobility exercise designed to improve thoracic spine extension and upper body posture. By using a medicine ball as support, this stretch gently opens the chest and encourages better spinal alignment, which is particularly beneficial for individuals who spend long hours sitting or performing overhead movements. The exercise helps counteract the forward-rounded posture commonly caused by desk work, driving, or mobile device use. Incorporating the Medball Thoracic Opener into a warm-up or recovery routine enhances mobility for exercises such as overhead presses, snatches, and squats. Additionally, it supports improved breathing mechanics by expanding the rib cage and facilitating greater lung capacity. This exercise is widely used in functional training, CrossFit, yoga, and general fitness routines to promote flexibility, posture correction, and injury prevention. Since it requires only a medicine ball and minimal space, it is accessible for both home and gym training. Practiced consistently, the Medball Thoracic Opener contributes to a stronger, more mobile upper body foundation, making it an excellent addition to mobility-focused programs and rehabilitation strategies."
  +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.05 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 {#7868
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +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 {#7896
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +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 {#7921
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +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 {#7944
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +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 {#7967
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +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 {#7990
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "linkedin"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 74.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 {#8013
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "whatsapp"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 74.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 {#8036
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "email"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 74.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 {#8067
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "program"
  +title: null
  +symbolDefsName: null
}
ui:editor-render App\Twig\Components\Ui\Editor\EditorRender 74.5 MiB 0.89 ms
Input props
[
  "data" => [
    "time" => 1756298637
    "version" => "2.31.0-rc.7"
    "blocks" => [
      [
        "type" => "header"
        "data" => [
          "level" => 2
          "text" => "Instructions"
        ]
      ]
      [
        "type" => "list"
        "data" => [
          "style" => "ordered"
          "items" => [
            [
              "content" => "Sit on the floor with your knees bent and feet flat."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Place a medicine ball under your mid-back, just below the shoulder blades."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Hold a stick or extend your arms overhead with elbows slightly bent."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Slowly lean back over the ball, allowing your chest to open."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Relax and hold the stretch for the desired time."
              "items" => []
              "meta" => []
            ]
          ]
          "meta" => []
        ]
      ]
      [
        "type" => "header"
        "data" => [
          "level" => 2
          "text" => "Technical tips"
        ]
      ]
      [
        "type" => "list"
        "data" => [
          "style" => "unordered"
          "items" => [
            [
              "content" => "Keep your core lightly engaged to avoid excessive lower back arch."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Move into the stretch gradually, avoiding sudden motions."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Allow your head and neck to stay relaxed."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Adjust the ball position to target different thoracic segments."
              "items" => []
              "meta" => []
            ]
          ]
          "meta" => []
        ]
      ]
      [
        "type" => "header"
        "data" => [
          "level" => 2
          "text" => "Breathing tips"
        ]
      ]
      [
        "type" => "list"
        "data" => [
          "style" => "unordered"
          "items" => [
            [
              "content" => "Inhale deeply as you open your chest."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Exhale slowly to relax deeper into the stretch."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Maintain steady, controlled breathing throughout."
              "items" => []
              "meta" => []
            ]
          ]
          "meta" => []
        ]
      ]
    ]
  ]
]
Attributes
[]
Component
App\Twig\Components\Ui\Editor\EditorRender {#8116
  +title: null
  +data: [
    "time" => 1756298637
    "version" => "2.31.0-rc.7"
    "blocks" => [
      [
        "type" => "header"
        "data" => [
          "level" => 2
          "text" => "Instructions"
        ]
      ]
      [
        "type" => "list"
        "data" => [
          "style" => "ordered"
          "items" => [
            [
              "content" => "Sit on the floor with your knees bent and feet flat."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Place a medicine ball under your mid-back, just below the shoulder blades."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Hold a stick or extend your arms overhead with elbows slightly bent."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Slowly lean back over the ball, allowing your chest to open."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Relax and hold the stretch for the desired time."
              "items" => []
              "meta" => []
            ]
          ]
          "meta" => []
        ]
      ]
      [
        "type" => "header"
        "data" => [
          "level" => 2
          "text" => "Technical tips"
        ]
      ]
      [
        "type" => "list"
        "data" => [
          "style" => "unordered"
          "items" => [
            [
              "content" => "Keep your core lightly engaged to avoid excessive lower back arch."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Move into the stretch gradually, avoiding sudden motions."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Allow your head and neck to stay relaxed."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Adjust the ball position to target different thoracic segments."
              "items" => []
              "meta" => []
            ]
          ]
          "meta" => []
        ]
      ]
      [
        "type" => "header"
        "data" => [
          "level" => 2
          "text" => "Breathing tips"
        ]
      ]
      [
        "type" => "list"
        "data" => [
          "style" => "unordered"
          "items" => [
            [
              "content" => "Inhale deeply as you open your chest."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Exhale slowly to relax deeper into the stretch."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Maintain steady, controlled breathing throughout."
              "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 74.5 MiB 0.10 ms
Input props
[
  "data" => [
    "time" => 1756298637
    "version" => "2.31.0-rc.7"
    "blocks" => [
      [
        "type" => "list"
        "data" => [
          "style" => "unordered"
          "items" => [
            [
              "content" => "Avoid if you have acute spinal injuries."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Not recommended for individuals with severe osteoporosis."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Use caution if experiencing chronic shoulder instability."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Consult a physician if you have herniated discs or spinal stenosis."
              "items" => []
              "meta" => []
            ]
          ]
          "meta" => []
        ]
      ]
    ]
  ]
]
Attributes
[]
Component
App\Twig\Components\Ui\Editor\EditorRender {#8177
  +title: null
  +data: [
    "time" => 1756298637
    "version" => "2.31.0-rc.7"
    "blocks" => [
      [
        "type" => "list"
        "data" => [
          "style" => "unordered"
          "items" => [
            [
              "content" => "Avoid if you have acute spinal injuries."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Not recommended for individuals with severe osteoporosis."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Use caution if experiencing chronic shoulder instability."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Consult a physician if you have herniated discs or spinal stenosis."
              "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 74.5 MiB 0.25 ms
Input props
[
  "containerClass" => "mt-6"
]
Attributes
[]
Component
App\Twig\Components\Ad\AdSquareFluid {#8164
  +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 74.5 MiB 0.65 ms
Input props
[
  "faq" => App\Entity\Faq {#5390
    -news: Doctrine\ORM\PersistentCollection {#5373 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5375 …}
    #id: 5582
    #createdAt: DateTimeImmutable @1756298637 {#5385
      date: 2025-08-27 14:43:57.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1756298637 {#5360
      date: 2025-08-27 14:43:57.0 Europe/Zurich (+02:00)
    }
    #createdBy: App\Entity\User {#3695 …}
    #updatedBy: App\Entity\User {#3695 …}
    #translations: Doctrine\ORM\PersistentCollection {#5419 …}
    #newTranslations: null
    #currentLocale: "en"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
]
Attributes
[]
Component
App\Twig\Components\Ui\FaqComponent {#8221
  +faq: App\Entity\Faq {#5390
    -news: Doctrine\ORM\PersistentCollection {#5373 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5375 …}
    #id: 5582
    #createdAt: DateTimeImmutable @1756298637 {#5385
      date: 2025-08-27 14:43:57.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1756298637 {#5360
      date: 2025-08-27 14:43:57.0 Europe/Zurich (+02:00)
    }
    #createdBy: App\Entity\User {#3695 …}
    #updatedBy: App\Entity\User {#3695 …}
    #translations: Doctrine\ORM\PersistentCollection {#5419 …}
    #newTranslations: null
    #currentLocale: "en"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
}
raw-faq App\Twig\Components\Ui\RawFaqComponent 74.5 MiB 0.24 ms
Input props
[
  "question" => "What is the Medball Thoracic Opener good for?"
  "answer" => "The Medball Thoracic Opener is effective for improving thoracic spine mobility, opening the chest, and correcting poor posture caused by prolonged sitting or forward-rounded shoulders."
]
Attributes
[]
Component
App\Twig\Components\Ui\RawFaqComponent {#8249
  +question: "What is the Medball Thoracic Opener good for?"
  +answer: "The Medball Thoracic Opener is effective for improving thoracic spine mobility, opening the chest, and correcting poor posture caused by prolonged sitting or forward-rounded shoulders."
}
faq App\Twig\Components\Ui\FaqComponent 74.5 MiB 0.18 ms
Input props
[
  "faq" => App\Entity\Faq {#5421
    -news: Doctrine\ORM\PersistentCollection {#5428 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5425 …}
    #id: 5583
    #createdAt: DateTimeImmutable @1756298637 {#5416
      date: 2025-08-27 14:43:57.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1756298637 {#5423
      date: 2025-08-27 14:43:57.0 Europe/Zurich (+02:00)
    }
    #createdBy: App\Entity\User {#3695 …}
    #updatedBy: App\Entity\User {#3695 …}
    #translations: Doctrine\ORM\PersistentCollection {#5435 …}
    #newTranslations: null
    #currentLocale: "en"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
]
Attributes
[]
Component
App\Twig\Components\Ui\FaqComponent {#8280
  +faq: App\Entity\Faq {#5421
    -news: Doctrine\ORM\PersistentCollection {#5428 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5425 …}
    #id: 5583
    #createdAt: DateTimeImmutable @1756298637 {#5416
      date: 2025-08-27 14:43:57.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1756298637 {#5423
      date: 2025-08-27 14:43:57.0 Europe/Zurich (+02:00)
    }
    #createdBy: App\Entity\User {#3695 …}
    #updatedBy: App\Entity\User {#3695 …}
    #translations: Doctrine\ORM\PersistentCollection {#5435 …}
    #newTranslations: null
    #currentLocale: "en"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
}
raw-faq App\Twig\Components\Ui\RawFaqComponent 74.5 MiB 0.05 ms
Input props
[
  "question" => "How long should I hold the Medball Thoracic Opener?"
  "answer" => "It is recommended to hold the Medball Thoracic Opener for 20 to 60 seconds, focusing on slow breathing to relax into the stretch."
]
Attributes
[]
Component
App\Twig\Components\Ui\RawFaqComponent {#8325
  +question: "How long should I hold the Medball Thoracic Opener?"
  +answer: "It is recommended to hold the Medball Thoracic Opener for 20 to 60 seconds, focusing on slow breathing to relax into the stretch."
}
faq App\Twig\Components\Ui\FaqComponent 74.5 MiB 0.16 ms
Input props
[
  "faq" => App\Entity\Faq {#5434
    -news: Doctrine\ORM\PersistentCollection {#5606 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5491 …}
    #id: 5584
    #createdAt: DateTimeImmutable @1756298637 {#5432
      date: 2025-08-27 14:43:57.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1756298637 {#5431
      date: 2025-08-27 14:43:57.0 Europe/Zurich (+02:00)
    }
    #createdBy: App\Entity\User {#3695 …}
    #updatedBy: App\Entity\User {#3695 …}
    #translations: Doctrine\ORM\PersistentCollection {#5407 …}
    #newTranslations: null
    #currentLocale: "en"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
]
Attributes
[]
Component
App\Twig\Components\Ui\FaqComponent {#8328
  +faq: App\Entity\Faq {#5434
    -news: Doctrine\ORM\PersistentCollection {#5606 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5491 …}
    #id: 5584
    #createdAt: DateTimeImmutable @1756298637 {#5432
      date: 2025-08-27 14:43:57.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1756298637 {#5431
      date: 2025-08-27 14:43:57.0 Europe/Zurich (+02:00)
    }
    #createdBy: App\Entity\User {#3695 …}
    #updatedBy: App\Entity\User {#3695 …}
    #translations: Doctrine\ORM\PersistentCollection {#5407 …}
    #newTranslations: null
    #currentLocale: "en"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
}
raw-faq App\Twig\Components\Ui\RawFaqComponent 74.5 MiB 0.04 ms
Input props
[
  "question" => "Can beginners do the Medball Thoracic Opener?"
  "answer" => "Yes, the Medball Thoracic Opener is beginner-friendly, as it requires minimal equipment and can be performed with gradual depth adjustments."
]
Attributes
[]
Component
App\Twig\Components\Ui\RawFaqComponent {#8372
  +question: "Can beginners do the Medball Thoracic Opener?"
  +answer: "Yes, the Medball Thoracic Opener is beginner-friendly, as it requires minimal equipment and can be performed with gradual depth adjustments."
}
faq App\Twig\Components\Ui\FaqComponent 76.5 MiB 0.16 ms
Input props
[
  "faq" => App\Entity\Faq {#5403
    -news: Doctrine\ORM\PersistentCollection {#5402 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5400 …}
    #id: 5585
    #createdAt: DateTimeImmutable @1756298637 {#5405
      date: 2025-08-27 14:43:57.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1756298637 {#5404
      date: 2025-08-27 14:43:57.0 Europe/Zurich (+02:00)
    }
    #createdBy: App\Entity\User {#3695 …}
    #updatedBy: App\Entity\User {#3695 …}
    #translations: Doctrine\ORM\PersistentCollection {#5398 …}
    #newTranslations: null
    #currentLocale: "en"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
]
Attributes
[]
Component
App\Twig\Components\Ui\FaqComponent {#8375
  +faq: App\Entity\Faq {#5403
    -news: Doctrine\ORM\PersistentCollection {#5402 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5400 …}
    #id: 5585
    #createdAt: DateTimeImmutable @1756298637 {#5405
      date: 2025-08-27 14:43:57.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1756298637 {#5404
      date: 2025-08-27 14:43:57.0 Europe/Zurich (+02:00)
    }
    #createdBy: App\Entity\User {#3695 …}
    #updatedBy: App\Entity\User {#3695 …}
    #translations: Doctrine\ORM\PersistentCollection {#5398 …}
    #newTranslations: null
    #currentLocale: "en"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
}
raw-faq App\Twig\Components\Ui\RawFaqComponent 76.5 MiB 0.05 ms
Input props
[
  "question" => "When should I use the Medball Thoracic Opener?"
  "answer" => "The Medball Thoracic Opener can be used as part of a warm-up to prepare for overhead exercises or as a recovery stretch to improve posture and relieve back tension."
]
Attributes
[]
Component
App\Twig\Components\Ui\RawFaqComponent {#8419
  +question: "When should I use the Medball Thoracic Opener?"
  +answer: "The Medball Thoracic Opener can be used as part of a warm-up to prepare for overhead exercises or as a recovery stretch to improve posture and relieve back tension."
}
faq App\Twig\Components\Ui\FaqComponent 76.5 MiB 0.15 ms
Input props
[
  "faq" => App\Entity\Faq {#5350
    -news: Doctrine\ORM\PersistentCollection {#5349 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5347 …}
    #id: 5586
    #createdAt: DateTimeImmutable @1756298637 {#5352
      date: 2025-08-27 14:43:57.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1756298637 {#5351
      date: 2025-08-27 14:43:57.0 Europe/Zurich (+02:00)
    }
    #createdBy: App\Entity\User {#3695 …}
    #updatedBy: App\Entity\User {#3695 …}
    #translations: Doctrine\ORM\PersistentCollection {#5345 …}
    #newTranslations: null
    #currentLocale: "en"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
]
Attributes
[]
Component
App\Twig\Components\Ui\FaqComponent {#8422
  +faq: App\Entity\Faq {#5350
    -news: Doctrine\ORM\PersistentCollection {#5349 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5347 …}
    #id: 5586
    #createdAt: DateTimeImmutable @1756298637 {#5352
      date: 2025-08-27 14:43:57.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1756298637 {#5351
      date: 2025-08-27 14:43:57.0 Europe/Zurich (+02:00)
    }
    #createdBy: App\Entity\User {#3695 …}
    #updatedBy: App\Entity\User {#3695 …}
    #translations: Doctrine\ORM\PersistentCollection {#5345 …}
    #newTranslations: null
    #currentLocale: "en"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
}
raw-faq App\Twig\Components\Ui\RawFaqComponent 76.5 MiB 0.04 ms
Input props
[
  "question" => "Does the Medball Thoracic Opener help with shoulder mobility?"
  "answer" => "Yes, by extending the thoracic spine and opening the chest, the Medball Thoracic Opener indirectly improves shoulder mobility and overhead range of motion."
]
Attributes
[]
Component
App\Twig\Components\Ui\RawFaqComponent {#8466
  +question: "Does the Medball Thoracic Opener help with shoulder mobility?"
  +answer: "Yes, by extending the thoracic spine and opening the chest, the Medball Thoracic Opener indirectly improves shoulder mobility and overhead range of motion."
}
anatomy:avatar App\Twig\Components\Anatomy\Avatar 84.5 MiB 597.88 ms
Input props
[
  "class" => "relative"
  "primaryMuscles" => [
    12
  ]
  "secondaryMuscles" => [
    11
    25
    26
    28
    30
  ]
  "displayFront" => false
]
Attributes
[
  "class" => "relative"
]
Component
App\Twig\Components\Anatomy\Avatar {#8394
  #container: Symfony\Component\DependencyInjection\Argument\ServiceLocator {#8477 …}
  +primaryMuscles: [
    12
  ]
  +secondaryMuscles: [
    11
    25
    26
    28
    30
  ]
  +type: "url"
  +urlReferenceType: 2
  +displayFront: false
  +selectedMuscles: []
  +displayTagMuscles: false
  +hoverMuscleDefaultText: "-"
  #entityManager: Doctrine\ORM\EntityManager {#550 …}
  #localeSwitcher: Symfony\Component\Translation\LocaleSwitcher {#1600 …}
  #avatarData: App\BusinessLogic\Anatomy\AvatarData {#8475 …}
  -liveResponder: Symfony\UX\LiveComponent\LiveResponder {#8476 …}
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.66 ms
Input props
[
  "name" => "Back"
  "url" => "/en/exercises/muscle/12-back"
  "color" => "primary"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#9616
  +name: "Back"
  +url: "/en/exercises/muscle/12-back"
  +color: "primary"
  +small: false
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.13 ms
Input props
[
  "name" => "Chest"
  "url" => "/en/exercises/muscle/11-chest"
  "color" => "primary"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#9668
  +name: "Chest"
  +url: "/en/exercises/muscle/11-chest"
  +color: "primary"
  +small: false
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.10 ms
Input props
[
  "name" => "Lats"
  "url" => "/en/exercises/muscle/25-lats"
  "color" => "primary"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#9692
  +name: "Lats"
  +url: "/en/exercises/muscle/25-lats"
  +color: "primary"
  +small: false
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.09 ms
Input props
[
  "name" => "Rhomboid"
  "url" => "/en/exercises/muscle/26-rhomboid"
  "color" => "primary"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#9716
  +name: "Rhomboid"
  +url: "/en/exercises/muscle/26-rhomboid"
  +color: "primary"
  +small: false
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.09 ms
Input props
[
  "name" => "Shoulders"
  "url" => "/en/exercises/muscle/28-shoulders"
  "color" => "primary"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#9740
  +name: "Shoulders"
  +url: "/en/exercises/muscle/28-shoulders"
  +color: "primary"
  +small: false
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.09 ms
Input props
[
  "name" => "Serratus anterior"
  "url" => "/en/exercises/muscle/30-serratus-anterior"
  "color" => "primary"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#9764
  +name: "Serratus anterior"
  +url: "/en/exercises/muscle/30-serratus-anterior"
  +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 {#9604
  +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.64 ms
Input props
[
  "difficulty" => "beginner"
]
Attributes
[]
Component
App\Twig\Components\Training\DifficultyBadge {#9797
  +difficulty: "beginner"
  +small: false
  +link: true
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.11 ms
Input props
[
  "name" => "Isolation"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#9828
  +name: "Isolation"
  +url: null
  +color: "gray"
  +small: true
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.11 ms
Input props
[
  "name" => "Medicine ball"
  "url" => "/en/exercises/equipment/81-medicine-ball"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#9868
  +name: "Medicine ball"
  +url: "/en/exercises/equipment/81-medicine-ball"
  +color: "gray"
  +small: true
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.09 ms
Input props
[
  "name" => "Pvc pipe"
  "url" => "/en/exercises/equipment/98-pvc-pipe"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#9892
  +name: "Pvc pipe"
  +url: "/en/exercises/equipment/98-pvc-pipe"
  +color: "gray"
  +small: true
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.09 ms
Input props
[
  "name" => "Fitness"
  "url" => "/en/exercises/sport/5-fitness"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#9916
  +name: "Fitness"
  +url: "/en/exercises/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" => "/en/exercises/sport/7-crossfit"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#9940
  +name: "Crossfit"
  +url: "/en/exercises/sport/7-crossfit"
  +color: "gray"
  +small: true
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.08 ms
Input props
[
  "name" => "Yoga"
  "url" => "/en/exercises/sport/8-yoga"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#9964
  +name: "Yoga"
  +url: "/en/exercises/sport/8-yoga"
  +color: "gray"
  +small: true
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.08 ms
Input props
[
  "name" => "Pilates"
  "url" => "/en/exercises/sport/9-pilates"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#9988
  +name: "Pilates"
  +url: "/en/exercises/sport/9-pilates"
  +color: "gray"
  +small: true
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.08 ms
Input props
[
  "name" => "Stretching"
  "url" => "/en/exercises/category/56-stretching"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10012
  +name: "Stretching"
  +url: "/en/exercises/category/56-stretching"
  +color: "gray"
  +small: true
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.08 ms
Input props
[
  "name" => "Mobility"
  "url" => "/en/exercises/category/59-mobility"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10036
  +name: "Mobility"
  +url: "/en/exercises/category/59-mobility"
  +color: "gray"
  +small: true
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.08 ms
Input props
[
  "name" => "Warm-up"
  "url" => "/en/exercises/category/62-warm-up"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10060
  +name: "Warm-up"
  +url: "/en/exercises/category/62-warm-up"
  +color: "gray"
  +small: true
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.08 ms
Input props
[
  "name" => "Recovery and relaxation"
  "url" => "/en/exercises/category/75-recovery-and-relaxation"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#10084
  +name: "Recovery and relaxation"
  +url: "/en/exercises/category/75-recovery-and-relaxation"
  +color: "gray"
  +small: true
  +selected: false
}
ad:square:fluid App\Twig\Components\Ad\AdSquareFluid 84.5 MiB 0.11 ms
Input props
[
  "containerClass" => "hidden lg:flex items-center justify-center my-6"
]
Attributes
[]
Component
App\Twig\Components\Ad\AdSquareFluid {#9778
  +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.54 ms
Input props
[]
Attributes
[]
Component
App\Twig\Components\App\LoadingSpinner {#8103
  +color: "fill-primary"
  +size: 8
  +centered: true
  +inline: false
}
app:loading_spinner App\Twig\Components\App\LoadingSpinner 84.5 MiB 0.10 ms
Input props
[]
Attributes
[]
Component
App\Twig\Components\App\LoadingSpinner {#10136
  +color: "fill-primary"
  +size: 8
  +centered: true
  +inline: false
}
media:icon App\Twig\Components\Media\Icon 84.5 MiB 0.12 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 {#10176
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "program"
  +title: null
  +symbolDefsName: null
}
ui:widget-embed App\Twig\Components\Ui\WidgetEmbed 84.5 MiB 1.74 ms
Input props
[
  "class" => "hidden md:block"
  "route" => "https://test.fitmetrics.ch/en/widgets/exercise/preview-6733d70f76309?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 {#10212
  +route: "https://test.fitmetrics.ch/en/widgets/exercise/preview-6733d70f76309?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 84.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 {#10250
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "check"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 84.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 {#10283
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "close"
  +title: null
  +symbolDefsName: null
}
app:page-sharer App\Twig\Components\App\PageSharer 84.5 MiB 2.25 ms
Input props
[
  "class" => "content-container"
  "title" => "Medball Thoracic Opener"
  "description" => "The Medball Thoracic Opener is a mobility exercise designed to improve thoracic spine extension and upper body posture. By using a medicine ball as support, this stretch gently opens the chest and encourages better spinal alignment, which is particularly beneficial for individuals who spend long hours sitting or performing overhead movements. The exercise helps counteract the forward-rounded posture commonly caused by desk work, driving, or mobile device use. Incorporating the Medball Thoracic Opener into a warm-up or recovery routine enhances mobility for exercises such as overhead presses, snatches, and squats. Additionally, it supports improved breathing mechanics by expanding the rib cage and facilitating greater lung capacity. This exercise is widely used in functional training, CrossFit, yoga, and general fitness routines to promote flexibility, posture correction, and injury prevention. Since it requires only a medicine ball and minimal space, it is accessible for both home and gym training. Practiced consistently, the Medball Thoracic Opener contributes to a stronger, more mobile upper body foundation, making it an excellent addition to mobility-focused programs and rehabilitation strategies."
]
Attributes
[
  "class" => "content-container"
]
Component
App\Twig\Components\App\PageSharer {#10323
  +shareUrl: "https://test.fitmetrics.ch/en/exercise/6733d70f76309-medball-thoracic-opener"
  +title: "Medball Thoracic Opener"
  +description: "The Medball Thoracic Opener is a mobility exercise designed to improve thoracic spine extension and upper body posture. By using a medicine ball as support, this stretch gently opens the chest and encourages better spinal alignment, which is particularly beneficial for individuals who spend long hours sitting or performing overhead movements. The exercise helps counteract the forward-rounded posture commonly caused by desk work, driving, or mobile device use. Incorporating the Medball Thoracic Opener into a warm-up or recovery routine enhances mobility for exercises such as overhead presses, snatches, and squats. Additionally, it supports improved breathing mechanics by expanding the rib cage and facilitating greater lung capacity. This exercise is widely used in functional training, CrossFit, yoga, and general fitness routines to promote flexibility, posture correction, and injury prevention. Since it requires only a medicine ball and minimal space, it is accessible for both home and gym training. Practiced consistently, the Medball Thoracic Opener contributes to a stronger, more mobile upper body foundation, making it an excellent addition to mobility-focused programs and rehabilitation strategies."
  +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 84.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 {#10331
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "check"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 84.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 {#10353
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "reddit"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 84.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 {#10377
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "twitter"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 84.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 {#10400
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "threads"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 84.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 {#10423
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "facebook"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 84.5 MiB 0.08 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 {#10446
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "linkedin"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 84.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 {#10469
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "whatsapp"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 84.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 {#10492
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "email"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
ad:wide-skyscraper App\Twig\Components\Ad\AdWideSkyscraper 84.5 MiB 0.82 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 84.5 MiB 0.64 ms
Input props
[
  "containerClass" => "content-container my-4"
]
Attributes
[]
Component
App\Twig\Components\Ad\AdHorizontalFluid {#10539
  +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 84.5 MiB 0.09 ms
Input props
[
  "defaultOpenLeft" => false
]
Attributes
[]
Component
App\Twig\Components\App\LangSelector {#10594
  +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]
84.5 MiB 0.31 ms
Input props
[
  "class" => "max-w-fit"
]
Attributes
[
  "class" => "max-w-fit"
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#10586
  -props: [
    "class" => "max-w-fit"
  ]
}
media:icon App\Twig\Components\Media\Icon 84.5 MiB 0.10 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 {#10628
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "fitmetrics-biceps"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 84.5 MiB 0.10 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 {#10660
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "fitmetrics-white-biceps"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 84.5 MiB 0.10 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 {#10683
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "heart"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 84.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 {#10706
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "whatsapp"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 84.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 {#10729
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "instagram"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 84.5 MiB 0.07 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 {#10752
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "threads"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 84.5 MiB 0.07 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 {#10775
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "tiktok"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 84.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 {#10798
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "facebook"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 84.5 MiB 0.07 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 {#10821
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#6028 …}
  +name: "youtube"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}