[{"data":1,"prerenderedAt":165},["ShallowReactive",2],{"page-\u002Fv1\u002Fadapters\u002Fyii\u002Fcomposition-root":3},{"id":4,"title":5,"body":6,"description":157,"extension":158,"meta":159,"navigation":160,"path":161,"seo":162,"stem":163,"__hash__":164},"content\u002Fv1\u002Fadapters\u002Fyii\u002Fcomposition-root.md","Yii composition root",{"type":7,"value":8,"toc":152},"minimark",[9,13,48,53,72,101,105,116,123,127,148],[10,11,5],"h1",{"id":12},"yii-composition-root",[14,15,16],"blockquote",{},[17,18,19,23,24,27,28,31,34,35,42,43],"p",{},[20,21,22],"strong",{},"Host:"," Yii ",[20,25,26],{},"Yii3 (yiisoft\u002F*); Yii2 brownfield"," (PHP ≥ 8.2 (Yii3)) · Researched 2026-08",[29,30],"br",{},[20,32,33],{},"One-shot:"," ",[36,37,39],"a",{"href":38},"\u002Fapply\u002Fyii.full.md",[40,41,38],"code",{}," · Short: ",[36,44,46],{"href":45},"\u002Fyii",[40,47,45],{},[49,50,52],"h2",{"id":51},"yii3","Yii3",[17,54,55,56,59,60,63,64,67,68,71],{},"Bindings in ",[40,57,58],{},"config\u002Fcommon\u002Fdi\u002F{module}.php"," (loaded into shared ",[40,61,62],{},"di"," group). Web\u002Fconsole-specific bindings in ",[40,65,66],{},"web\u002Fdi"," \u002F ",[40,69,70],{},"console"," as needed.",[73,74,79],"pre",{"className":75,"code":76,"language":77,"meta":78,"style":78},"language-php shiki shiki-themes github-light github-dark","return [\n    PortInterface::class => Adapter::class,\n];\n","php","",[40,80,81,89,95],{"__ignoreMap":78},[82,83,86],"span",{"class":84,"line":85},"line",1,[82,87,88],{},"return [\n",[82,90,92],{"class":84,"line":91},2,[82,93,94],{},"    PortInterface::class => Adapter::class,\n",[82,96,98],{"class":84,"line":97},3,[82,99,100],{},"];\n",[49,102,104],{"id":103},"yii2","Yii2",[17,106,107,108,111,112,115],{},"Use ",[40,109,110],{},"Yii::$container"," in Module bootstrap\u002F",[40,113,114],{},"init"," for binds — still wiring only.",[17,117,118,119,122],{},"When a module becomes a Composer package, declare ",[40,120,121],{},"extra.config-plugin"," for di\u002Froutes.",[49,124,126],{"id":125},"related","Related",[128,129,130,137],"ul",{},[131,132,133],"li",{},[36,134,136],{"href":135},"\u002Fv1\u002Fadapters\u002Fyii","Yii adapter overview",[131,138,139,143,144],{},[36,140,142],{"href":141},"\u002Fv1\u002Fcore","Core"," · ",[36,145,147],{"href":146},"\u002Fv1\u002Fadopt\u002Fapply","Apply index",[149,150,151],"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":78,"searchDepth":91,"depth":91,"links":153},[154,155,156],{"id":51,"depth":91,"text":52},{"id":103,"depth":91,"text":104},{"id":125,"depth":91,"text":126},"DI \u002F wiring only — config\u002Fcommon\u002Fdi\u002F*.php.","md",{},true,"\u002Fv1\u002Fadapters\u002Fyii\u002Fcomposition-root",{"title":5,"description":157},"v1\u002Fadapters\u002Fyii\u002Fcomposition-root","MMA8d-0cEuhe9xoN0Kc4l0BO7Z1Tnb2Of9k9ii02PKs",1786241414613]