[{"data":1,"prerenderedAt":1463},["ShallowReactive",2],{"navigation":3,"\u002Fapi-reference\u002Flayer-service-provider":193,"\u002Fapi-reference\u002Flayer-service-provider-surround":1458},[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":156,"body":195,"description":1451,"extension":1452,"links":1453,"meta":1454,"navigation":251,"path":157,"seo":1455,"sitemap":1456,"stem":158,"__hash__":1457},"docs\u002F5.api-reference\u002F1.layer-service-provider.md",{"type":196,"value":197,"toc":1441},"minimark",[198,210,289,294,346,367,424,427,500,504,542,553,575,618,680,690,694,833,853,970,1092,1097,1101,1142,1156,1203,1207,1245,1266,1270,1310,1329,1333,1340,1360,1366,1370,1377,1437],[199,200,201,205,206,209],"p",{},[202,203,204],"code",{},"Lomkit\\Osdd\\LayerServiceProvider"," is an abstract class that extends ",[202,207,208],{},"Illuminate\\Support\\ServiceProvider",". Every layer's provider extends it.",[211,212,217],"pre",{"className":213,"code":214,"language":215,"meta":216,"style":216},"language-php shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","use Lomkit\\Osdd\\LayerServiceProvider;\n\nclass OrdersServiceProvider extends LayerServiceProvider\n{\n    \u002F\u002F\n}\n","php","",[202,218,219,246,253,270,276,283],{"__ignoreMap":216},[220,221,224,228,232,236,239,241,243],"span",{"class":222,"line":223},"line",1,[220,225,227],{"class":226},"sbssI","use",[220,229,231],{"class":230},"sTEyZ"," Lomkit",[220,233,235],{"class":234},"sMK4o","\\",[220,237,238],{"class":230},"Osdd",[220,240,235],{"class":234},[220,242,156],{"class":230},[220,244,245],{"class":234},";\n",[220,247,249],{"class":222,"line":248},2,[220,250,252],{"emptyLinePlaceholder":251},true,"\n",[220,254,256,260,264,267],{"class":222,"line":255},3,[220,257,259],{"class":258},"spNyl","class",[220,261,263],{"class":262},"sBMFI"," OrdersServiceProvider",[220,265,266],{"class":258}," extends",[220,268,269],{"class":262}," LayerServiceProvider\n",[220,271,273],{"class":222,"line":272},4,[220,274,275],{"class":234},"{\n",[220,277,279],{"class":222,"line":278},5,[220,280,282],{"class":281},"sHwdD","    \u002F\u002F\n",[220,284,286],{"class":222,"line":285},6,[220,287,288],{"class":234},"}\n",[290,291,293],"h2",{"id":292},"loadseeders","loadSeeders()",[211,295,297],{"className":213,"code":296,"language":215,"meta":216,"style":216},"protected function loadSeeders(array $seeders, int $priority = 0): void\n",[202,298,299],{"__ignoreMap":216},[220,300,301,304,307,311,314,317,320,323,326,329,331,334,337,340,343],{"class":222,"line":223},[220,302,303],{"class":258},"protected",[220,305,306],{"class":258}," function",[220,308,310],{"class":309},"s2Zo4"," loadSeeders",[220,312,313],{"class":234},"(",[220,315,316],{"class":226},"array",[220,318,319],{"class":234}," $",[220,321,322],{"class":230},"seeders",[220,324,325],{"class":234},",",[220,327,328],{"class":226}," int",[220,330,319],{"class":234},[220,332,333],{"class":230},"priority ",[220,335,336],{"class":234},"=",[220,338,339],{"class":226}," 0",[220,341,342],{"class":234},"):",[220,344,345],{"class":226}," void\n",[199,347,348,349,354,355,359,360,366],{},"Registers seeder classes in the ",[350,351,352],"a",{"href":164},[202,353,163],{},". ",[350,356,357],{"href":131},[202,358,130],{}," and ",[350,361,363],{"href":362},"\u002Fapi-reference\u002Fseeder-registry#layersseeder",[202,364,365],{},"LayersSeeder"," run them.",[368,369,370,386],"table",{},[371,372,373],"thead",{},[374,375,376,380,383],"tr",{},[377,378,379],"th",{},"Parameter",[377,381,382],{},"Type",[377,384,385],{},"Description",[387,388,389,405],"tbody",{},[374,390,391,397,402],{},[392,393,394],"td",{},[202,395,396],{},"$seeders",[392,398,399],{},[202,400,401],{},"class-string\u003CSeeder>[]",[392,403,404],{},"Seeder classes",[374,406,407,412,417],{},[392,408,409],{},[202,410,411],{},"$priority",[392,413,414],{},[202,415,416],{},"int",[392,418,419,420,423],{},"Lower values run first. Defaults to ",[202,421,422],{},"0",". Ties keep the registration order.",[199,425,426],{},"A seeder registered twice runs once: the first registration and its priority win.",[211,428,430],{"className":213,"code":429,"language":215,"meta":216,"style":216},"$this->loadSeeders([OrdersSeeder::class, OrderStatusesSeeder::class]);\n\n$this->loadSeeders([RolesSeeder::class], priority: -10);\n",[202,431,432,463,467],{"__ignoreMap":216},[220,433,434,437,440,443,446,449,451,453,456,458,460],{"class":222,"line":223},[220,435,436],{"class":234},"$this->",[220,438,439],{"class":309},"loadSeeders",[220,441,442],{"class":234},"([",[220,444,445],{"class":262},"OrdersSeeder",[220,447,448],{"class":234},"::",[220,450,259],{"class":226},[220,452,325],{"class":234},[220,454,455],{"class":262}," OrderStatusesSeeder",[220,457,448],{"class":234},[220,459,259],{"class":226},[220,461,462],{"class":234},"]);\n",[220,464,465],{"class":222,"line":248},[220,466,252],{"emptyLinePlaceholder":251},[220,468,469,471,473,475,478,480,482,485,488,491,494,497],{"class":222,"line":255},[220,470,436],{"class":234},[220,472,439],{"class":309},[220,474,442],{"class":234},[220,476,477],{"class":262},"RolesSeeder",[220,479,448],{"class":234},[220,481,259],{"class":226},[220,483,484],{"class":234},"],",[220,486,487],{"class":262}," priority",[220,489,490],{"class":234},":",[220,492,493],{"class":234}," -",[220,495,496],{"class":226},"10",[220,498,499],{"class":234},");\n",[290,501,503],{"id":502},"overrideconfigfrom","overrideConfigFrom()",[211,505,507],{"className":213,"code":506,"language":215,"meta":216,"style":216},"protected function overrideConfigFrom(string $path, string $key): void\n",[202,508,509],{"__ignoreMap":216},[220,510,511,513,515,518,520,523,525,528,530,533,535,538,540],{"class":222,"line":223},[220,512,303],{"class":258},[220,514,306],{"class":258},[220,516,517],{"class":309}," overrideConfigFrom",[220,519,313],{"class":234},[220,521,522],{"class":226},"string",[220,524,319],{"class":234},[220,526,527],{"class":230},"path",[220,529,325],{"class":234},[220,531,532],{"class":226}," string",[220,534,319],{"class":234},[220,536,537],{"class":230},"key",[220,539,342],{"class":234},[220,541,345],{"class":226},[199,543,544,545,548,549,552],{},"Loads the PHP config file at ",[202,546,547],{},"$path"," and merges it over the config key ",[202,550,551],{},"$key",". The file's values win over the values already loaded. Does nothing when the configuration is cached.",[554,555,556,560],"ul",{},[557,558,559],"li",{},"Maps are merged key by key, at every depth.",[557,561,562,563,566,567,570,571,574],{},"A list replaces the loaded value as a whole, and an empty array clears it: ",[202,564,565],{},"['queues' => ['high']]"," over ",[202,568,569],{},"['queues' => ['default', 'low']]"," gives ",[202,572,573],{},"['high']",".",[368,576,577,587],{},[371,578,579],{},[374,580,581,583,585],{},[377,582,379],{},[377,584,382],{},[377,586,385],{},[387,588,589,602],{},[374,590,591,595,599],{},[392,592,593],{},[202,594,547],{},[392,596,597],{},[202,598,522],{},[392,600,601],{},"Absolute path to a PHP file that returns an array",[374,603,604,608,612],{},[392,605,606],{},[202,607,551],{},[392,609,610],{},[202,611,522],{},[392,613,614,615],{},"Config key to override, such as ",[202,616,617],{},"horizon",[211,619,621],{"className":213,"code":620,"language":215,"meta":216,"style":216},"public function register(): void\n{\n    $this->overrideConfigFrom(__DIR__ . '\u002F..\u002F..\u002Fconfig\u002Fhorizon.php', 'horizon');\n}\n",[202,622,623,638,642,676],{"__ignoreMap":216},[220,624,625,628,630,633,636],{"class":222,"line":223},[220,626,627],{"class":258},"public",[220,629,306],{"class":258},[220,631,632],{"class":309}," register",[220,634,635],{"class":234},"():",[220,637,345],{"class":226},[220,639,640],{"class":222,"line":248},[220,641,275],{"class":234},[220,643,644,647,650,653,656,659,663,666,668,670,672,674],{"class":222,"line":255},[220,645,646],{"class":234},"    $this->",[220,648,649],{"class":309},"overrideConfigFrom",[220,651,652],{"class":234},"(__DIR__",[220,654,655],{"class":234}," .",[220,657,658],{"class":234}," '",[220,660,662],{"class":661},"sfazB","\u002F..\u002F..\u002Fconfig\u002Fhorizon.php",[220,664,665],{"class":234},"'",[220,667,325],{"class":234},[220,669,658],{"class":234},[220,671,617],{"class":661},[220,673,665],{"class":234},[220,675,499],{"class":234},[220,677,678],{"class":222,"line":272},[220,679,288],{"class":234},[681,682,683],"warning",{},[199,684,685,686,689],{},"Call it from ",[202,687,688],{},"register()",", so the override is in place before other packages boot and read their config.",[290,691,693],{"id":692},"withrouting","withRouting()",[211,695,697],{"className":213,"code":696,"language":215,"meta":216,"style":216},"protected function withRouting(\n    array|string|null $web = null,\n    array|string|null $api = null,\n    ?string $commands = null,\n    ?string $channels = null,\n    ?string $health = null,\n    string $apiPrefix = 'api',\n): void\n",[202,698,699,711,736,757,773,788,803,826],{"__ignoreMap":216},[220,700,701,703,705,708],{"class":222,"line":223},[220,702,303],{"class":258},[220,704,306],{"class":258},[220,706,707],{"class":309}," withRouting",[220,709,710],{"class":234},"(\n",[220,712,713,716,719,721,723,726,728,731,733],{"class":222,"line":248},[220,714,715],{"class":226},"    array",[220,717,718],{"class":234},"|",[220,720,522],{"class":226},[220,722,718],{"class":234},[220,724,725],{"class":226},"null",[220,727,319],{"class":234},[220,729,730],{"class":230},"web ",[220,732,336],{"class":234},[220,734,735],{"class":234}," null,\n",[220,737,738,740,742,744,746,748,750,753,755],{"class":222,"line":255},[220,739,715],{"class":226},[220,741,718],{"class":234},[220,743,522],{"class":226},[220,745,718],{"class":234},[220,747,725],{"class":226},[220,749,319],{"class":234},[220,751,752],{"class":230},"api ",[220,754,336],{"class":234},[220,756,735],{"class":234},[220,758,759,762,764,766,769,771],{"class":222,"line":272},[220,760,761],{"class":234},"    ?",[220,763,522],{"class":226},[220,765,319],{"class":234},[220,767,768],{"class":230},"commands ",[220,770,336],{"class":234},[220,772,735],{"class":234},[220,774,775,777,779,781,784,786],{"class":222,"line":278},[220,776,761],{"class":234},[220,778,522],{"class":226},[220,780,319],{"class":234},[220,782,783],{"class":230},"channels ",[220,785,336],{"class":234},[220,787,735],{"class":234},[220,789,790,792,794,796,799,801],{"class":222,"line":285},[220,791,761],{"class":234},[220,793,522],{"class":226},[220,795,319],{"class":234},[220,797,798],{"class":230},"health ",[220,800,336],{"class":234},[220,802,735],{"class":234},[220,804,806,809,811,814,816,818,821,823],{"class":222,"line":805},7,[220,807,808],{"class":226},"    string",[220,810,319],{"class":234},[220,812,813],{"class":230},"apiPrefix ",[220,815,336],{"class":234},[220,817,658],{"class":234},[220,819,820],{"class":661},"api",[220,822,665],{"class":234},[220,824,825],{"class":234},",\n",[220,827,829,831],{"class":222,"line":828},8,[220,830,342],{"class":234},[220,832,345],{"class":226},[199,834,835,836,839,840,359,842,845,846,359,849,852],{},"Mounts the layer's route files with Laravel's conventions. Missing files are skipped. When routes are cached, the ",[202,837,838],{},"web",", ",[202,841,820],{},[202,843,844],{},"health"," routes come from the cache; the ",[202,847,848],{},"commands",[202,850,851],{},"channels"," files are still loaded.",[368,854,855,865],{},[371,856,857],{},[374,858,859,861,863],{},[377,860,379],{},[377,862,382],{},[377,864,385],{},[387,866,867,885,904,919,933,954],{},[374,868,869,874,879],{},[392,870,871],{},[202,872,873],{},"$web",[392,875,876],{},[202,877,878],{},"string[]|string|null",[392,880,881,882,884],{},"Route files loaded in the ",[202,883,838],{}," middleware group",[374,886,887,892,896],{},[392,888,889],{},[202,890,891],{},"$api",[392,893,894],{},[202,895,878],{},[392,897,881,898,900,901],{},[202,899,820],{}," middleware group, under ",[202,902,903],{},"$apiPrefix",[374,905,906,911,916],{},[392,907,908],{},[202,909,910],{},"$commands",[392,912,913],{},[202,914,915],{},"?string",[392,917,918],{},"Console routes file, required when running in the console",[374,920,921,926,930],{},[392,922,923],{},[202,924,925],{},"$channels",[392,927,928],{},[202,929,915],{},[392,931,932],{},"Broadcast channels file",[374,934,935,940,944],{},[392,936,937],{},[202,938,939],{},"$health",[392,941,942],{},[202,943,915],{},[392,945,946,947,950,951],{},"URI of a ",[202,948,949],{},"GET"," route that returns ",[202,952,953],{},"{\"status\":\"ok\"}",[374,955,956,960,964],{},[392,957,958],{},[202,959,903],{},[392,961,962],{},[202,963,522],{},[392,965,966,967,969],{},"Prefix of the ",[202,968,820],{}," routes",[211,971,973],{"className":213,"code":972,"language":215,"meta":216,"style":216},"public function boot(): void\n{\n    $this->withRouting(\n        web: __DIR__ . '\u002F..\u002F..\u002Froutes\u002Fweb.php',\n        api: __DIR__ . '\u002F..\u002F..\u002Froutes\u002Fapi.php',\n        commands: __DIR__ . '\u002F..\u002F..\u002Froutes\u002Fconsole.php',\n        channels: __DIR__ . '\u002F..\u002F..\u002Froutes\u002Fchannels.php',\n    );\n}\n",[202,974,975,988,992,1001,1022,1042,1062,1082,1087],{"__ignoreMap":216},[220,976,977,979,981,984,986],{"class":222,"line":223},[220,978,627],{"class":258},[220,980,306],{"class":258},[220,982,983],{"class":309}," boot",[220,985,635],{"class":234},[220,987,345],{"class":226},[220,989,990],{"class":222,"line":248},[220,991,275],{"class":234},[220,993,994,996,999],{"class":222,"line":255},[220,995,646],{"class":234},[220,997,998],{"class":309},"withRouting",[220,1000,710],{"class":234},[220,1002,1003,1006,1008,1011,1013,1015,1018,1020],{"class":222,"line":272},[220,1004,1005],{"class":262},"        web",[220,1007,490],{"class":234},[220,1009,1010],{"class":234}," __DIR__",[220,1012,655],{"class":234},[220,1014,658],{"class":234},[220,1016,1017],{"class":661},"\u002F..\u002F..\u002Froutes\u002Fweb.php",[220,1019,665],{"class":234},[220,1021,825],{"class":234},[220,1023,1024,1027,1029,1031,1033,1035,1038,1040],{"class":222,"line":278},[220,1025,1026],{"class":262},"        api",[220,1028,490],{"class":234},[220,1030,1010],{"class":234},[220,1032,655],{"class":234},[220,1034,658],{"class":234},[220,1036,1037],{"class":661},"\u002F..\u002F..\u002Froutes\u002Fapi.php",[220,1039,665],{"class":234},[220,1041,825],{"class":234},[220,1043,1044,1047,1049,1051,1053,1055,1058,1060],{"class":222,"line":285},[220,1045,1046],{"class":262},"        commands",[220,1048,490],{"class":234},[220,1050,1010],{"class":234},[220,1052,655],{"class":234},[220,1054,658],{"class":234},[220,1056,1057],{"class":661},"\u002F..\u002F..\u002Froutes\u002Fconsole.php",[220,1059,665],{"class":234},[220,1061,825],{"class":234},[220,1063,1064,1067,1069,1071,1073,1075,1078,1080],{"class":222,"line":805},[220,1065,1066],{"class":262},"        channels",[220,1068,490],{"class":234},[220,1070,1010],{"class":234},[220,1072,655],{"class":234},[220,1074,658],{"class":234},[220,1076,1077],{"class":661},"\u002F..\u002F..\u002Froutes\u002Fchannels.php",[220,1079,665],{"class":234},[220,1081,825],{"class":234},[220,1083,1084],{"class":222,"line":828},[220,1085,1086],{"class":234},"    );\n",[220,1088,1090],{"class":222,"line":1089},9,[220,1091,288],{"class":234},[199,1093,1094,1095,574],{},"See ",[350,1096,64],{"href":65},[290,1098,1100],{"id":1099},"withviews","withViews()",[211,1102,1104],{"className":213,"code":1103,"language":215,"meta":216,"style":216},"protected function withViews(string $path, ?string $namespace = null): void\n",[202,1105,1106],{"__ignoreMap":216},[220,1107,1108,1110,1112,1115,1117,1119,1121,1123,1125,1128,1130,1132,1135,1137,1140],{"class":222,"line":223},[220,1109,303],{"class":258},[220,1111,306],{"class":258},[220,1113,1114],{"class":309}," withViews",[220,1116,313],{"class":234},[220,1118,522],{"class":226},[220,1120,319],{"class":234},[220,1122,527],{"class":230},[220,1124,325],{"class":234},[220,1126,1127],{"class":234}," ?",[220,1129,522],{"class":226},[220,1131,319],{"class":234},[220,1133,1134],{"class":230},"namespace ",[220,1136,336],{"class":234},[220,1138,1139],{"class":234}," null):",[220,1141,345],{"class":226},[199,1143,1144,1145,1147,1148,1151,1152,1155],{},"Loads the Blade views of ",[202,1146,547],{}," under ",[202,1149,1150],{},"$namespace",": ",[202,1153,1154],{},"view('orders::index')",". Does nothing when the folder does not exist.",[368,1157,1158,1168],{},[371,1159,1160],{},[374,1161,1162,1164,1166],{},[377,1163,379],{},[377,1165,382],{},[377,1167,385],{},[387,1169,1170,1183],{},[374,1171,1172,1176,1180],{},[392,1173,1174],{},[202,1175,547],{},[392,1177,1178],{},[202,1179,522],{},[392,1181,1182],{},"The layer's views folder",[374,1184,1185,1189,1193],{},[392,1186,1187],{},[202,1188,1150],{},[392,1190,1191],{},[202,1192,915],{},[392,1194,1195,1196,1199,1200],{},"Defaults to the package name of the layer that owns the provider: ",[202,1197,1198],{},"orders"," for ",[202,1201,1202],{},"functional\u002Forders",[290,1204,1206],{"id":1205},"withtranslations","withTranslations()",[211,1208,1210],{"className":213,"code":1209,"language":215,"meta":216,"style":216},"protected function withTranslations(string $path, ?string $namespace = null): void\n",[202,1211,1212],{"__ignoreMap":216},[220,1213,1214,1216,1218,1221,1223,1225,1227,1229,1231,1233,1235,1237,1239,1241,1243],{"class":222,"line":223},[220,1215,303],{"class":258},[220,1217,306],{"class":258},[220,1219,1220],{"class":309}," withTranslations",[220,1222,313],{"class":234},[220,1224,522],{"class":226},[220,1226,319],{"class":234},[220,1228,527],{"class":230},[220,1230,325],{"class":234},[220,1232,1127],{"class":234},[220,1234,522],{"class":226},[220,1236,319],{"class":234},[220,1238,1134],{"class":230},[220,1240,336],{"class":234},[220,1242,1139],{"class":234},[220,1244,345],{"class":226},[199,1246,1247,1248,1147,1250,1252,1253,1256,1257,1260,1261,1263,1264,574],{},"Loads the translation files of ",[202,1249,547],{},[202,1251,1150],{}," (",[202,1254,1255],{},"__('orders::messages.welcome')","), and its ",[202,1258,1259],{},"*.json"," files without a namespace. Does nothing when the folder does not exist. ",[202,1262,1150],{}," defaults like ",[202,1265,1100],{},[290,1267,1269],{"id":1268},"withcomponents","withComponents()",[211,1271,1273],{"className":213,"code":1272,"language":215,"meta":216,"style":216},"protected function withComponents(string $namespace, ?string $prefix = null): void\n",[202,1274,1275],{"__ignoreMap":216},[220,1276,1277,1279,1281,1284,1286,1288,1290,1293,1295,1297,1299,1301,1304,1306,1308],{"class":222,"line":223},[220,1278,303],{"class":258},[220,1280,306],{"class":258},[220,1282,1283],{"class":309}," withComponents",[220,1285,313],{"class":234},[220,1287,522],{"class":226},[220,1289,319],{"class":234},[220,1291,1292],{"class":230},"namespace",[220,1294,325],{"class":234},[220,1296,1127],{"class":234},[220,1298,522],{"class":226},[220,1300,319],{"class":234},[220,1302,1303],{"class":230},"prefix ",[220,1305,336],{"class":234},[220,1307,1139],{"class":234},[220,1309,345],{"class":226},[199,1311,1312,1313,1316,1317,1320,1321,354,1324,1263,1327,574],{},"Registers the Blade components of a PHP namespace under a prefix: ",[202,1314,1315],{},"withComponents('Functional\\\\Orders\\\\View\\\\Components')"," makes ",[202,1318,1319],{},"\u003Cx-orders::alert \u002F>"," render ",[202,1322,1323],{},"Functional\\Orders\\View\\Components\\Alert",[202,1325,1326],{},"$prefix",[202,1328,1100],{},[290,1330,1332],{"id":1331},"namespaces-and-collisions","Namespaces and collisions",[199,1334,1335,1336,1339],{},"The three ",[202,1337,1338],{},"with*()"," resource methods share these rules:",[554,1341,1342,1353],{},[557,1343,1344,1345,1348,1349,1352],{},"Without a namespace, they use the package name of the discovered layer whose ",[202,1346,1347],{},"autoload.psr-4"," prefix covers the provider class. A provider that belongs to no discovered layer throws ",[202,1350,1351],{},"Lomkit\\Osdd\\Layers\\ProviderLayerNotFoundException",": pass the namespace.",[557,1354,1355,1356,1359],{},"Two providers claiming the same views namespace, translations namespace or component prefix throw ",[202,1357,1358],{},"Lomkit\\Osdd\\Resources\\ResourceNamespaceCollisionException"," at boot, naming both providers. Pass the second argument in one of them.",[199,1361,1094,1362,574],{},[350,1363,1365],{"href":1364},"\u002Fguides\u002Fviews-and-components#the-namespace","Views and components",[290,1367,1369],{"id":1368},"inherited-methods","Inherited methods",[199,1371,1372,1373,1376],{},"Every method of Laravel's ",[202,1374,1375],{},"ServiceProvider"," works as usual. The ones a layer uses most:",[368,1378,1379,1389],{},[371,1380,1381],{},[374,1382,1383,1386],{},[377,1384,1385],{},"Method",[377,1387,1388],{},"Use",[387,1390,1391,1404,1414,1424],{},[374,1392,1393,1398],{},[392,1394,1395],{},[202,1396,1397],{},"loadMigrationsFrom($path)",[392,1399,1400,1401],{},"Add the layer's migrations to ",[202,1402,1403],{},"migrate",[374,1405,1406,1411],{},[392,1407,1408],{},[202,1409,1410],{},"commands([...])",[392,1412,1413],{},"Register the layer's Artisan commands",[374,1415,1416,1421],{},[392,1417,1418],{},[202,1419,1420],{},"mergeConfigFrom($path, $key)",[392,1422,1423],{},"Fill in defaults without overriding loaded values",[374,1425,1426,1434],{},[392,1427,1428,839,1431],{},[202,1429,1430],{},"loadViewsFrom($path, $namespace)",[202,1432,1433],{},"loadTranslationsFrom($path, $namespace)",[392,1435,1436],{},"Load views or translations under a namespace you manage yourself",[1438,1439,1440],"style",{},"html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}",{"title":216,"searchDepth":223,"depth":248,"links":1442},[1443,1444,1445,1446,1447,1448,1449,1450],{"id":292,"depth":248,"text":293},{"id":502,"depth":248,"text":503},{"id":692,"depth":248,"text":693},{"id":1099,"depth":248,"text":1100},{"id":1205,"depth":248,"text":1206},{"id":1268,"depth":248,"text":1269},{"id":1331,"depth":248,"text":1332},{"id":1368,"depth":248,"text":1369},"The base class of every layer's service provider.","md",null,{},{"title":156,"description":1451},{"loc":157},"yUaOnwDykMDtKTOmJHhsFB2BABCXOd-71fBcCpgji9k",[1459,1461],{"title":146,"path":147,"stem":148,"description":1460,"children":-1},"The osdd:* twins of Laravel's make:* commands write inside a layer.",{"title":34,"path":160,"stem":161,"description":1462,"children":-1},"Discover and inspect the layers of the project from your own code.",1794437212448]