[{"data":1,"prerenderedAt":110},["ShallowReactive",2],{"page-\u002Fv1\u002Fadapters\u002Fcakephp\u002Fcross-module":3},{"id":4,"title":5,"body":6,"description":102,"extension":103,"meta":104,"navigation":105,"path":106,"seo":107,"stem":108,"__hash__":109},"content\u002Fv1\u002Fadapters\u002Fcakephp\u002Fcross-module.md","CakePHP cross-module bridges",{"type":7,"value":8,"toc":95},"minimark",[9,13,48,53,56,60,67,70,74],[10,11,5],"h1",{"id":12},"cakephp-cross-module-bridges",[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],{},[49,50,52],"h2",{"id":51},"sync-acl","Sync ACL",[17,54,55],{},"DI-injected local port → ACL adapter → peer plugin façade service.",[49,57,59],{"id":58},"async","Async",[17,61,62,63,66],{},"Shared dispatcher adapter over Cake events or a queue. Consumer plugin Infra subscriber → inbound Use Case with idempotent ",[40,64,65],{},"eventId",".",[17,68,69],{},"Plugins are the natural BC packaging unit.",[49,71,73],{"id":72},"related","Related",[75,76,77,84],"ul",{},[78,79,80],"li",{},[36,81,83],{"href":82},"\u002Fv1\u002Fadapters\u002Fcakephp","CakePHP 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,100,101],{"id":51,"depth":97,"text":52},{"id":58,"depth":97,"text":59},{"id":72,"depth":97,"text":73},"ACL and async events on CakePHP.","md",{},true,"\u002Fv1\u002Fadapters\u002Fcakephp\u002Fcross-module",{"title":5,"description":102},"v1\u002Fadapters\u002Fcakephp\u002Fcross-module","Xc9qTcotS_fqvoBFOLjpiOfenNnb0GzspqJnQ6FuJ7Q",1786241415503]