[{"data":1,"prerenderedAt":108},["ShallowReactive",2],{"page-\u002Fv1\u002Fadapters\u002Fcodeigniter\u002Fcomposition-root":3},{"id":4,"title":5,"body":6,"description":100,"extension":101,"meta":102,"navigation":103,"path":104,"seo":105,"stem":106,"__hash__":107},"content\u002Fv1\u002Fadapters\u002Fcodeigniter\u002Fcomposition-root.md","CodeIgniter composition root",{"type":7,"value":8,"toc":95},"minimark",[9,13,48,59,62,69,74],[10,11,5],"h1",{"id":12},"codeigniter-composition-root",[14,15,16],"blockquote",{},[17,18,19,23,24,27,28,31,34,35,42,43],"p",{},[20,21,22],"strong",{},"Host:"," CodeIgniter ",[20,25,26],{},"4.7.x"," (PHP 8.1+) · Researched 2026-08",[29,30],"br",{},[20,32,33],{},"One-shot:"," ",[36,37,39],"a",{"href":38},"\u002Fapply\u002Fcodeigniter.full.md",[40,41,38],"code",{}," · Short: ",[36,44,46],{"href":45},"\u002Fcodeigniter",[40,47,45],{},[17,49,50,51,54,55,58],{},"Each module may ship ",[40,52,53],{},"Config\u002FServices.php"," extending ",[40,56,57],{},"BaseService"," (auto-discovered).",[17,60,61],{},"Factories create ACL adapters and bind conceptual ports. Prefer injecting into controllers over service-locator calls deep in Domain.",[17,63,64,65,68],{},"Register PSR-4 module roots in ",[40,66,67],{},"app\u002FConfig\u002FAutoload.php"," and Composer.",[70,71,73],"h2",{"id":72},"related","Related",[75,76,77,84],"ul",{},[78,79,80],"li",{},[36,81,83],{"href":82},"\u002Fv1\u002Fadapters\u002Fcodeigniter","CodeIgniter adapter overview",[78,85,86,90,91],{},[36,87,89],{"href":88},"\u002Fv1\u002Fcore","Core"," · ",[36,92,94],{"href":93},"\u002Fv1\u002Fadopt\u002Fapply","Apply index",{"title":96,"searchDepth":97,"depth":97,"links":98},"",2,[99],{"id":72,"depth":97,"text":73},"DI \u002F wiring only — Module Config\u002FServices.php.","md",{},true,"\u002Fv1\u002Fadapters\u002Fcodeigniter\u002Fcomposition-root",{"title":5,"description":100},"v1\u002Fadapters\u002Fcodeigniter\u002Fcomposition-root","hOJ-GMYCOFrQxxc_KBLHVguq2mlXUzw8l7UJSUNRmyI",1786241415016]