[{"data":1,"prerenderedAt":130},["ShallowReactive",2],{"page-\u002Fv1\u002Fadapters\u002Fcakephp\u002Fcomposition-root":3},{"id":4,"title":5,"body":6,"description":122,"extension":123,"meta":124,"navigation":125,"path":126,"seo":127,"stem":128,"__hash__":129},"content\u002Fv1\u002Fadapters\u002Fcakephp\u002Fcomposition-root.md","CakePHP composition root",{"type":7,"value":8,"toc":119},"minimark",[9,13,48,59,82,89,94,115],[10,11,5],"h1",{"id":12},"cakephp-composition-root",[14,15,16],"blockquote",{},[17,18,19,23,24,27,28,31,34,35,42,43],"p",{},[20,21,22],"strong",{},"Host:"," CakePHP ",[20,25,26],{},"5.4.x"," (PHP 8.2–8.5) · Researched 2026-08",[29,30],"br",{},[20,32,33],{},"One-shot:"," ",[36,37,39],"a",{"href":38},"\u002Fapply\u002Fcakephp.full.md",[40,41,38],"code",{}," · Short: ",[36,44,46],{"href":45},"\u002Fcakephp",[40,47,45],{},[17,49,50,51,54,55,58],{},"Register bindings in plugin ",[40,52,53],{},"services(ContainerInterface $container)"," and application ",[40,56,57],{},"Application::services()",".",[60,61,66],"pre",{"className":62,"code":63,"language":64,"meta":65,"style":65},"language-php shiki shiki-themes github-light github-dark","$container->add(WarehouseAvailabilityPortInterface::class)\n    ->setConcrete(WarehouseAvailabilityAclAdapter::class);\n","php","",[40,67,68,76],{"__ignoreMap":65},[69,70,73],"span",{"class":71,"line":72},"line",1,[69,74,75],{},"$container->add(WarehouseAvailabilityPortInterface::class)\n",[69,77,79],{"class":71,"line":78},2,[69,80,81],{},"    ->setConcrete(WarehouseAvailabilityAclAdapter::class);\n",[17,83,84,85,88],{},"Enable plugins in ",[40,86,87],{},"Application::bootstrap()",". Wiring only — no business rules.",[90,91,93],"h2",{"id":92},"related","Related",[95,96,97,104],"ul",{},[98,99,100],"li",{},[36,101,103],{"href":102},"\u002Fv1\u002Fadapters\u002Fcakephp","CakePHP adapter overview",[98,105,106,110,111],{},[36,107,109],{"href":108},"\u002Fv1\u002Fcore","Core"," · ",[36,112,114],{"href":113},"\u002Fv1\u002Fadopt\u002Fapply","Apply index",[116,117,118],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":65,"searchDepth":78,"depth":78,"links":120},[121],{"id":92,"depth":78,"text":93},"DI \u002F wiring only — Application::services() \u002F Plugin::services().","md",{},true,"\u002Fv1\u002Fadapters\u002Fcakephp\u002Fcomposition-root",{"title":5,"description":122},"v1\u002Fadapters\u002Fcakephp\u002Fcomposition-root","IuwmD96vvBPltYRqEAPFu457e_sxycJz-h1kWtJC6B0",1786241415430]