[{"data":1,"prerenderedAt":106},["ShallowReactive",2],{"page-\u002Fv1\u002Fadapters\u002Fslim\u002Fcomposition-root":3},{"id":4,"title":5,"body":6,"description":98,"extension":99,"meta":100,"navigation":101,"path":102,"seo":103,"stem":104,"__hash__":105},"content\u002Fv1\u002Fadapters\u002Fslim\u002Fcomposition-root.md","Slim composition root",{"type":7,"value":8,"toc":93},"minimark",[9,13,48,51,66,69,74],[10,11,5],"h1",{"id":12},"slim-composition-root",[14,15,16],"blockquote",{},[17,18,19,23,24,27,28,31,34,35,42,43],"p",{},[20,21,22],"strong",{},"Host:"," Slim ",[20,25,26],{},"4.15.x"," (PHP 7.4+ (use 8.2+ in practice)) · Researched 2026-08",[29,30],"br",{},[20,32,33],{},"One-shot:"," ",[36,37,39],"a",{"href":38},"\u002Fapply\u002Fslim.full.md",[40,41,38],"code",{}," · Short: ",[36,44,46],{"href":45},"\u002Fslim",[40,47,45],{},[17,49,50],{},"Use a PSR-11 container (PHP-DI is common with Slim Skeleton).",[52,53,54,58,63],"ul",{},[55,56,57],"li",{},"Definitions file(s) bind ports → adapters",[55,59,60],{},[40,61,62],{},"AppFactory::setContainer($container)",[55,64,65],{},"Routes point to UI Action classes that type-hint Use Cases",[17,67,68],{},"Composition root files must not contain business rules.",[70,71,73],"h2",{"id":72},"related","Related",[52,75,76,82],{},[55,77,78],{},[36,79,81],{"href":80},"\u002Fv1\u002Fadapters\u002Fslim","Slim adapter overview",[55,83,84,88,89],{},[36,85,87],{"href":86},"\u002Fv1\u002Fcore","Core"," · ",[36,90,92],{"href":91},"\u002Fv1\u002Fadopt\u002Fapply","Apply index",{"title":94,"searchDepth":95,"depth":95,"links":96},"",2,[97],{"id":72,"depth":95,"text":73},"DI \u002F wiring only — PHP-DI \u002F Container definitions + route definitions.","md",{},true,"\u002Fv1\u002Fadapters\u002Fslim\u002Fcomposition-root",{"title":5,"description":98},"v1\u002Fadapters\u002Fslim\u002Fcomposition-root","vZZ0qidkWEz-ZFJar4Cyg0FA5TNia40H68yHPtG_aIo",1786241416458]