[{"data":1,"prerenderedAt":901},["ShallowReactive",2],{"navigation":3,"\u002Fapi-reference\u002Fconfiguration":193,"\u002Fapi-reference\u002Fconfiguration-surround":896},[4,27,49,99,149,169,183],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":26},"Getting Started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,14,18,22],{"title":11,"path":12,"stem":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction",{"title":15,"path":16,"stem":17},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation",{"title":19,"path":20,"stem":21},"Quick Start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start",{"title":23,"path":24,"stem":25},"Existing Application","\u002Fgetting-started\u002Fexisting-application","1.getting-started\u002F4.existing-application",false,{"title":28,"icon":29,"path":30,"stem":31,"children":32,"page":26},"Concepts","i-lucide-layers","\u002Fconcepts","2.concepts",[33,37,41,45],{"title":34,"path":35,"stem":36},"Layers","\u002Fconcepts\u002Flayers","2.concepts\u002F1.layers",{"title":38,"path":39,"stem":40},"Buckets","\u002Fconcepts\u002Fbuckets","2.concepts\u002F2.buckets",{"title":42,"path":43,"stem":44},"Boundaries","\u002Fconcepts\u002Fboundaries","2.concepts\u002F3.boundaries",{"title":46,"path":47,"stem":48},"Service Providers","\u002Fconcepts\u002Fservice-providers","2.concepts\u002F4.service-providers",{"title":50,"icon":51,"path":52,"stem":53,"children":54,"page":26},"Guides","i-lucide-book-marked","\u002Fguides","3.guides",[55,59,63,67,71,75,79,83,87,91,95],{"title":56,"path":57,"stem":58},"Add a Domain","\u002Fguides\u002Fadd-a-domain","3.guides\u002F01.add-a-domain",{"title":60,"path":61,"stem":62},"Share Code Between Layers","\u002Fguides\u002Fshare-code-between-layers","3.guides\u002F02.share-code-between-layers",{"title":64,"path":65,"stem":66},"Routes","\u002Fguides\u002Froutes","3.guides\u002F03.routes",{"title":68,"path":69,"stem":70},"Views and Components","\u002Fguides\u002Fviews-and-components","3.guides\u002F04.views-and-components",{"title":72,"path":73,"stem":74},"Seeders","\u002Fguides\u002Fseeders","3.guides\u002F05.seeders",{"title":76,"path":77,"stem":78},"Configuration","\u002Fguides\u002Fconfiguration","3.guides\u002F06.configuration",{"title":80,"path":81,"stem":82},"Events","\u002Fguides\u002Fevents","3.guides\u002F07.events",{"title":84,"path":85,"stem":86},"Tests and CI","\u002Fguides\u002Ftesting-and-ci","3.guides\u002F08.testing-and-ci",{"title":88,"path":89,"stem":90},"Production","\u002Fguides\u002Fproduction","3.guides\u002F09.production",{"title":92,"path":93,"stem":94},"Remove a Layer","\u002Fguides\u002Fremoving-a-layer","3.guides\u002F10.removing-a-layer",{"title":96,"path":97,"stem":98},"Multi-tenancy","\u002Fguides\u002Fmulti-tenancy","3.guides\u002F11.multi-tenancy",{"title":100,"icon":101,"path":102,"stem":103,"children":104,"page":26},"Commands","i-lucide-terminal","\u002Fcommands","4.commands",[105,109,113,117,121,125,129,133,137,141,145],{"title":106,"path":107,"stem":108},"Overview","\u002Fcommands\u002Foverview","4.commands\u002F01.overview",{"title":110,"path":111,"stem":112},"osdd:start","\u002Fcommands\u002Fosdd-start","4.commands\u002F02.osdd-start",{"title":114,"path":115,"stem":116},"osdd:layer","\u002Fcommands\u002Fosdd-layer","4.commands\u002F03.osdd-layer",{"title":118,"path":119,"stem":120},"osdd:list","\u002Fcommands\u002Fosdd-list","4.commands\u002F04.osdd-list",{"title":122,"path":123,"stem":124},"osdd:check","\u002Fcommands\u002Fosdd-check","4.commands\u002F05.osdd-check",{"title":126,"path":127,"stem":128},"osdd:graph","\u002Fcommands\u002Fosdd-graph","4.commands\u002F06.osdd-graph",{"title":130,"path":131,"stem":132},"osdd:seed","\u002Fcommands\u002Fosdd-seed","4.commands\u002F07.osdd-seed",{"title":134,"path":135,"stem":136},"osdd:phpunit","\u002Fcommands\u002Fosdd-phpunit","4.commands\u002F08.osdd-phpunit",{"title":138,"path":139,"stem":140},"osdd:remove","\u002Fcommands\u002Fosdd-remove","4.commands\u002F09.osdd-remove",{"title":142,"path":143,"stem":144},"osdd:cache","\u002Fcommands\u002Fosdd-cache","4.commands\u002F10.osdd-cache",{"title":146,"path":147,"stem":148},"Generators","\u002Fcommands\u002Fmake-commands","4.commands\u002F11.make-commands",{"title":150,"icon":151,"path":152,"stem":153,"children":154,"page":26},"API Reference","i-lucide-book-open","\u002Fapi-reference","5.api-reference",[155,159,162,166],{"title":156,"path":157,"stem":158},"LayerServiceProvider","\u002Fapi-reference\u002Flayer-service-provider","5.api-reference\u002F1.layer-service-provider",{"title":34,"path":160,"stem":161},"\u002Fapi-reference\u002Flayers","5.api-reference\u002F2.layers",{"title":163,"path":164,"stem":165},"SeederRegistry","\u002Fapi-reference\u002Fseeder-registry","5.api-reference\u002F3.seeder-registry",{"title":76,"path":167,"stem":168},"\u002Fapi-reference\u002Fconfiguration","5.api-reference\u002F4.configuration",{"title":170,"icon":171,"path":172,"stem":173,"children":174,"page":26},"Integrations","i-lucide-puzzle","\u002Fintegrations","6.integrations",[175,179],{"title":176,"path":177,"stem":178},"Laravel Boost","\u002Fintegrations\u002Flaravel-boost","6.integrations\u002F1.laravel-boost",{"title":180,"path":181,"stem":182},"Tinker and IDE Helper","\u002Fintegrations\u002Ftinker-and-ide-helper","6.integrations\u002F2.tinker-and-ide-helper",{"title":184,"icon":185,"path":186,"stem":187,"children":188,"page":26},"Upgrade","i-lucide-arrow-up-circle","\u002Fupgrade","7.upgrade",[189],{"title":190,"path":191,"stem":192},"Upgrade from 2.x","\u002Fupgrade\u002Ffrom-2x","7.upgrade\u002F1.from-2x",{"id":194,"title":76,"body":195,"description":889,"extension":890,"links":891,"meta":892,"navigation":334,"path":167,"seo":893,"sitemap":894,"stem":168,"__hash__":895},"docs\u002F5.api-reference\u002F4.configuration.md",{"type":196,"value":197,"toc":886},"minimark",[198,207,415,514,527,532,545,838,850,862,882],[199,200,201,202,206],"p",{},"The package reads the ",[203,204,205],"code",{},"osdd"," config key:",[208,209,215],"pre",{"className":210,"code":211,"filename":212,"language":213,"meta":214,"style":214},"language-php shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","return [\n    'layers' => [\n        'paths' => [\n            'functional' => base_path('functional'),\n            'technical'  => base_path('technical'),\n        ],\n    ],\n\n    'boundaries' => [\n        'ignore' => [],\n    ],\n\n    'events' => [\n        'discover' => false,\n    ],\n];\n","technical\u002Fosdd\u002Fconfig\u002Fosdd.php","php","",[203,216,217,230,248,263,292,317,323,329,336,350,365,370,375,389,404,409],{"__ignoreMap":214},[218,219,222,226],"span",{"class":220,"line":221},"line",1,[218,223,225],{"class":224},"s7zQu","return",[218,227,229],{"class":228},"sMK4o"," [\n",[218,231,233,236,240,243,246],{"class":220,"line":232},2,[218,234,235],{"class":228},"    '",[218,237,239],{"class":238},"sfazB","layers",[218,241,242],{"class":228},"'",[218,244,245],{"class":228}," =>",[218,247,229],{"class":228},[218,249,251,254,257,259,261],{"class":220,"line":250},3,[218,252,253],{"class":228},"        '",[218,255,256],{"class":238},"paths",[218,258,242],{"class":228},[218,260,245],{"class":228},[218,262,229],{"class":228},[218,264,266,269,272,274,276,280,283,285,287,289],{"class":220,"line":265},4,[218,267,268],{"class":228},"            '",[218,270,271],{"class":238},"functional",[218,273,242],{"class":228},[218,275,245],{"class":228},[218,277,279],{"class":278},"s2Zo4"," base_path",[218,281,282],{"class":228},"(",[218,284,242],{"class":228},[218,286,271],{"class":238},[218,288,242],{"class":228},[218,290,291],{"class":228},"),\n",[218,293,295,297,300,302,305,307,309,311,313,315],{"class":220,"line":294},5,[218,296,268],{"class":228},[218,298,299],{"class":238},"technical",[218,301,242],{"class":228},[218,303,304],{"class":228},"  =>",[218,306,279],{"class":278},[218,308,282],{"class":228},[218,310,242],{"class":228},[218,312,299],{"class":238},[218,314,242],{"class":228},[218,316,291],{"class":228},[218,318,320],{"class":220,"line":319},6,[218,321,322],{"class":228},"        ],\n",[218,324,326],{"class":220,"line":325},7,[218,327,328],{"class":228},"    ],\n",[218,330,332],{"class":220,"line":331},8,[218,333,335],{"emptyLinePlaceholder":334},true,"\n",[218,337,339,341,344,346,348],{"class":220,"line":338},9,[218,340,235],{"class":228},[218,342,343],{"class":238},"boundaries",[218,345,242],{"class":228},[218,347,245],{"class":228},[218,349,229],{"class":228},[218,351,353,355,358,360,362],{"class":220,"line":352},10,[218,354,253],{"class":228},[218,356,357],{"class":238},"ignore",[218,359,242],{"class":228},[218,361,245],{"class":228},[218,363,364],{"class":228}," [],\n",[218,366,368],{"class":220,"line":367},11,[218,369,328],{"class":228},[218,371,373],{"class":220,"line":372},12,[218,374,335],{"emptyLinePlaceholder":334},[218,376,378,380,383,385,387],{"class":220,"line":377},13,[218,379,235],{"class":228},[218,381,382],{"class":238},"events",[218,384,242],{"class":228},[218,386,245],{"class":228},[218,388,229],{"class":228},[218,390,392,394,397,399,401],{"class":220,"line":391},14,[218,393,253],{"class":228},[218,395,396],{"class":238},"discover",[218,398,242],{"class":228},[218,400,245],{"class":228},[218,402,403],{"class":228}," false,\n",[218,405,407],{"class":220,"line":406},15,[218,408,328],{"class":228},[218,410,412],{"class":220,"line":411},16,[218,413,414],{"class":228},"];\n",[416,417,418,434],"table",{},[419,420,421],"thead",{},[422,423,424,428,431],"tr",{},[425,426,427],"th",{},"Key",[425,429,430],{},"Default",[425,432,433],{},"Description",[435,436,437,457,472,496],"tbody",{},[422,438,439,445,450],{},[440,441,442],"td",{},[203,443,444],{},"layers.paths.functional",[440,446,447],{},[203,448,449],{},"base_path('functional')",[440,451,452,456],{},[453,454,455],"a",{"href":39},"Bucket"," of the business layers",[422,458,459,464,469],{},[440,460,461],{},[203,462,463],{},"layers.paths.technical",[440,465,466],{},[203,467,468],{},"base_path('technical')",[440,470,471],{},"Bucket of the infrastructure layers. Add more keys to add buckets.",[422,473,474,479,484],{},[440,475,476],{},[203,477,478],{},"boundaries.ignore",[440,480,481],{},[203,482,483],{},"[]",[440,485,486,487,491,492],{},"Class prefixes and layer pairs that ",[453,488,489],{"href":123},[203,490,122],{}," does not report, see ",[453,493,495],{"href":494},"\u002Fconcepts\u002Fboundaries#ignoring-a-dependency","Ignoring a dependency",[422,497,498,503,508],{},[440,499,500],{},[203,501,502],{},"events.discover",[440,504,505],{},[203,506,507],{},"false",[440,509,510,511,513],{},"Discover the listeners of every layer, see ",[453,512,80],{"href":81},". Must be a boolean.",[199,515,516,517,520,521,523,524,526],{},"The key of each path is also the vendor of the layers created in it: ",[203,518,519],{},"osdd:layer functional\u002Forders"," creates the layer in the ",[203,522,271],{}," path. See ",[453,525,38],{"href":39},".",[528,529,531],"h2",{"id":530},"where-to-set-it","Where to set it",[199,533,534,536,537,540,541,544],{},[203,535,110],{}," deletes the root ",[203,538,539],{},"config\u002F"," folder and creates the ",[203,542,543],{},"technical\u002Fosdd"," layer instead. Its provider overrides the package defaults with the layer's file:",[208,546,549],{"className":210,"code":547,"filename":548,"language":213,"meta":214,"style":214},"\u003C?php\n\nnamespace Technical\\Osdd\\Providers;\n\nuse Lomkit\\Osdd\\LayerServiceProvider;\nuse Lomkit\\Osdd\\Seeders\\LayersSeeder;\n\nclass OsddServiceProvider extends LayerServiceProvider\n{\n    public function boot(): void\n    {\n        if ($this->app->runningInConsole()) {\n            $this->loadMigrationsFrom(__DIR__ . '\u002F..\u002F..\u002Fdatabase\u002Fmigrations');\n        }\n    }\n\n    public function register(): void\n    {\n        $this->overrideConfigFrom(__DIR__ . '\u002F..\u002F..\u002Fconfig\u002Fosdd.php', 'osdd');\n\n        $this->app->bind('DatabaseSeeder', LayersSeeder::class);\n    }\n}\n","technical\u002Fosdd\u002Fsrc\u002FProviders\u002FOsddServiceProvider.php",[203,550,551,560,564,588,592,610,631,635,650,655,672,677,700,725,730,735,739,753,758,789,794,827,832],{"__ignoreMap":214},[218,552,553,556],{"class":220,"line":221},[218,554,555],{"class":228},"\u003C?",[218,557,559],{"class":558},"sTEyZ","php\n",[218,561,562],{"class":220,"line":232},[218,563,335],{"emptyLinePlaceholder":334},[218,565,566,570,574,577,580,582,585],{"class":220,"line":250},[218,567,569],{"class":568},"sbssI","namespace",[218,571,573],{"class":572},"sBMFI"," Technical",[218,575,576],{"class":228},"\\",[218,578,579],{"class":572},"Osdd",[218,581,576],{"class":228},[218,583,584],{"class":572},"Providers",[218,586,587],{"class":228},";\n",[218,589,590],{"class":220,"line":265},[218,591,335],{"emptyLinePlaceholder":334},[218,593,594,597,600,602,604,606,608],{"class":220,"line":294},[218,595,596],{"class":568},"use",[218,598,599],{"class":558}," Lomkit",[218,601,576],{"class":228},[218,603,579],{"class":558},[218,605,576],{"class":228},[218,607,156],{"class":558},[218,609,587],{"class":228},[218,611,612,614,616,618,620,622,624,626,629],{"class":220,"line":319},[218,613,596],{"class":568},[218,615,599],{"class":558},[218,617,576],{"class":228},[218,619,579],{"class":558},[218,621,576],{"class":228},[218,623,72],{"class":558},[218,625,576],{"class":228},[218,627,628],{"class":558},"LayersSeeder",[218,630,587],{"class":228},[218,632,633],{"class":220,"line":325},[218,634,335],{"emptyLinePlaceholder":334},[218,636,637,641,644,647],{"class":220,"line":331},[218,638,640],{"class":639},"spNyl","class",[218,642,643],{"class":572}," OsddServiceProvider",[218,645,646],{"class":639}," extends",[218,648,649],{"class":572}," LayerServiceProvider\n",[218,651,652],{"class":220,"line":338},[218,653,654],{"class":228},"{\n",[218,656,657,660,663,666,669],{"class":220,"line":352},[218,658,659],{"class":639},"    public",[218,661,662],{"class":639}," function",[218,664,665],{"class":278}," boot",[218,667,668],{"class":228},"():",[218,670,671],{"class":568}," void\n",[218,673,674],{"class":220,"line":367},[218,675,676],{"class":228},"    {\n",[218,678,679,682,685,688,691,694,697],{"class":220,"line":372},[218,680,681],{"class":224},"        if",[218,683,684],{"class":228}," ($this->",[218,686,687],{"class":558},"app",[218,689,690],{"class":228},"->",[218,692,693],{"class":278},"runningInConsole",[218,695,696],{"class":228},"())",[218,698,699],{"class":228}," {\n",[218,701,702,705,708,711,714,717,720,722],{"class":220,"line":377},[218,703,704],{"class":228},"            $this->",[218,706,707],{"class":278},"loadMigrationsFrom",[218,709,710],{"class":228},"(__DIR__",[218,712,713],{"class":228}," .",[218,715,716],{"class":228}," '",[218,718,719],{"class":238},"\u002F..\u002F..\u002Fdatabase\u002Fmigrations",[218,721,242],{"class":228},[218,723,724],{"class":228},");\n",[218,726,727],{"class":220,"line":391},[218,728,729],{"class":228},"        }\n",[218,731,732],{"class":220,"line":406},[218,733,734],{"class":228},"    }\n",[218,736,737],{"class":220,"line":411},[218,738,335],{"emptyLinePlaceholder":334},[218,740,742,744,746,749,751],{"class":220,"line":741},17,[218,743,659],{"class":639},[218,745,662],{"class":639},[218,747,748],{"class":278}," register",[218,750,668],{"class":228},[218,752,671],{"class":568},[218,754,756],{"class":220,"line":755},18,[218,757,676],{"class":228},[218,759,761,764,767,769,771,773,776,778,781,783,785,787],{"class":220,"line":760},19,[218,762,763],{"class":228},"        $this->",[218,765,766],{"class":278},"overrideConfigFrom",[218,768,710],{"class":228},[218,770,713],{"class":228},[218,772,716],{"class":228},[218,774,775],{"class":238},"\u002F..\u002F..\u002Fconfig\u002Fosdd.php",[218,777,242],{"class":228},[218,779,780],{"class":228},",",[218,782,716],{"class":228},[218,784,205],{"class":238},[218,786,242],{"class":228},[218,788,724],{"class":228},[218,790,792],{"class":220,"line":791},20,[218,793,335],{"emptyLinePlaceholder":334},[218,795,797,799,801,803,806,808,810,813,815,817,820,823,825],{"class":220,"line":796},21,[218,798,763],{"class":228},[218,800,687],{"class":558},[218,802,690],{"class":228},[218,804,805],{"class":278},"bind",[218,807,282],{"class":228},[218,809,242],{"class":228},[218,811,812],{"class":238},"DatabaseSeeder",[218,814,242],{"class":228},[218,816,780],{"class":228},[218,818,819],{"class":572}," LayersSeeder",[218,821,822],{"class":228},"::",[218,824,640],{"class":568},[218,826,724],{"class":228},[218,828,830],{"class":220,"line":829},22,[218,831,734],{"class":228},[218,833,835],{"class":220,"line":834},23,[218,836,837],{"class":228},"}\n",[199,839,840,841,846,847,526],{},"The provider also loads the cache and jobs migrations of the skeleton, and binds ",[453,842,844],{"href":843},"\u002Fapi-reference\u002Fseeder-registry#layersseeder",[203,845,628],{}," as the default seeder of ",[203,848,849],{},"db:seed",[851,852,853],"note",{},[199,854,855,858,859,526],{},[203,856,857],{},"Technical\\Osdd\\Providers\\OsddServiceProvider"," belongs to your application. The package's own provider is ",[203,860,861],{},"Lomkit\\Osdd\\OsddServiceProvider",[199,863,864,865,868,869,871,872,874,875,877,878,881],{},"The package does not publish its config file: ",[203,866,867],{},"vendor:publish"," has nothing to copy for ",[203,870,861],{},". Change the settings in ",[203,873,212],{},". A project that keeps its root ",[203,876,539],{}," folder can also create ",[203,879,880],{},"config\u002Fosdd.php"," by hand.",[883,884,885],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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);}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}",{"title":214,"searchDepth":221,"depth":232,"links":887},[888],{"id":530,"depth":232,"text":531},"Every key of the osdd config, its default, and where to set it.","md",null,{},{"title":76,"description":889},{"loc":167},"6wObfJgOfry8baaf67aI1enUFrfGHcQ2m06gy2bgTac",[897,899],{"title":163,"path":164,"stem":165,"description":898,"children":-1},"The registry that collects the seeders of every layer, and the seeder that runs them.",{"title":176,"path":177,"stem":178,"description":900,"children":-1},"The skill that teaches your coding agent to write inside layers.",1794437212621]