[{"data":1,"prerenderedAt":1284},["ShallowReactive",2],{"navigation":3,"\u002Fguides\u002Froutes":193,"\u002Fguides\u002Froutes-surround":1279},[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":64,"body":195,"description":1272,"extension":1273,"links":1274,"meta":1275,"navigation":619,"path":65,"seo":1276,"sitemap":1277,"stem":66,"__hash__":1278},"docs\u002F3.guides\u002F03.routes.md",{"type":196,"value":197,"toc":1265},"minimark",[198,218,391,492,501,506,519,542,552,655,758,771,775,782,915,921,925,1056,1060,1091,1103,1107,1115,1254,1261],[199,200,201,205,206,209,210,213,214,217],"p",{},[202,203,204],"code",{},"withRouting()"," mounts a layer's route files the way ",[202,207,208],{},"Application::configure()->withRouting()"," does in ",[202,211,212],{},"bootstrap\u002Fapp.php",". Call it from the layer provider's ",[202,215,216],{},"boot()"," method:",[219,220,226],"pre",{"className":221,"code":222,"filename":223,"language":224,"meta":225,"style":225},"language-php shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","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        health: '\u002Forders\u002Fup',\n    );\n}\n","functional\u002Forders\u002Fsrc\u002FProviders\u002FOrdersServiceProvider.php","php","",[202,227,228,252,258,270,299,320,341,362,379,385],{"__ignoreMap":225},[229,230,233,237,240,244,248],"span",{"class":231,"line":232},"line",1,[229,234,236],{"class":235},"spNyl","public",[229,238,239],{"class":235}," function",[229,241,243],{"class":242},"s2Zo4"," boot",[229,245,247],{"class":246},"sMK4o","():",[229,249,251],{"class":250},"sbssI"," void\n",[229,253,255],{"class":231,"line":254},2,[229,256,257],{"class":246},"{\n",[229,259,261,264,267],{"class":231,"line":260},3,[229,262,263],{"class":246},"    $this->",[229,265,266],{"class":242},"withRouting",[229,268,269],{"class":246},"(\n",[229,271,273,277,280,283,286,289,293,296],{"class":231,"line":272},4,[229,274,276],{"class":275},"sBMFI","        web",[229,278,279],{"class":246},":",[229,281,282],{"class":246}," __DIR__",[229,284,285],{"class":246}," .",[229,287,288],{"class":246}," '",[229,290,292],{"class":291},"sfazB","\u002F..\u002F..\u002Froutes\u002Fweb.php",[229,294,295],{"class":246},"'",[229,297,298],{"class":246},",\n",[229,300,302,305,307,309,311,313,316,318],{"class":231,"line":301},5,[229,303,304],{"class":275},"        api",[229,306,279],{"class":246},[229,308,282],{"class":246},[229,310,285],{"class":246},[229,312,288],{"class":246},[229,314,315],{"class":291},"\u002F..\u002F..\u002Froutes\u002Fapi.php",[229,317,295],{"class":246},[229,319,298],{"class":246},[229,321,323,326,328,330,332,334,337,339],{"class":231,"line":322},6,[229,324,325],{"class":275},"        commands",[229,327,279],{"class":246},[229,329,282],{"class":246},[229,331,285],{"class":246},[229,333,288],{"class":246},[229,335,336],{"class":291},"\u002F..\u002F..\u002Froutes\u002Fconsole.php",[229,338,295],{"class":246},[229,340,298],{"class":246},[229,342,344,347,349,351,353,355,358,360],{"class":231,"line":343},7,[229,345,346],{"class":275},"        channels",[229,348,279],{"class":246},[229,350,282],{"class":246},[229,352,285],{"class":246},[229,354,288],{"class":246},[229,356,357],{"class":291},"\u002F..\u002F..\u002Froutes\u002Fchannels.php",[229,359,295],{"class":246},[229,361,298],{"class":246},[229,363,365,368,370,372,375,377],{"class":231,"line":364},8,[229,366,367],{"class":275},"        health",[229,369,279],{"class":246},[229,371,288],{"class":246},[229,373,374],{"class":291},"\u002Forders\u002Fup",[229,376,295],{"class":246},[229,378,298],{"class":246},[229,380,382],{"class":231,"line":381},9,[229,383,384],{"class":246},"    );\n",[229,386,388],{"class":231,"line":387},10,[229,389,390],{"class":246},"}\n",[392,393,394,407],"table",{},[395,396,397],"thead",{},[398,399,400,404],"tr",{},[401,402,403],"th",{},"Argument",[401,405,406],{},"Behaviour",[408,409,410,424,440,450,460,478],"tbody",{},[398,411,412,418],{},[413,414,415],"td",{},[202,416,417],{},"web",[413,419,420,421,423],{},"Loaded in the ",[202,422,417],{}," middleware group. A path or an array of paths.",[398,425,426,431],{},[413,427,428],{},[202,429,430],{},"api",[413,432,420,433,435,436,439],{},[202,434,430],{}," middleware group, under the ",[202,437,438],{},"apiPrefix"," prefix. A path or an array of paths.",[398,441,442,447],{},[413,443,444],{},[202,445,446],{},"commands",[413,448,449],{},"Required when the application runs in the console.",[398,451,452,457],{},[413,453,454],{},[202,455,456],{},"channels",[413,458,459],{},"Required on every request.",[398,461,462,467],{},[413,463,464],{},[202,465,466],{},"health",[413,468,469,470,473,474,477],{},"Registers a ",[202,471,472],{},"GET"," route at this URI that returns ",[202,475,476],{},"{\"status\":\"ok\"}",".",[398,479,480,484],{},[413,481,482],{},[202,483,438],{},[413,485,486,487,489,490,477],{},"Prefix of the ",[202,488,430],{}," routes. Defaults to ",[202,491,430],{},[199,493,494,495,497,498,500],{},"Every argument is optional, and missing files are skipped. The provider generated by ",[202,496,114],{}," calls ",[202,499,204],{}," with the four standard files, so a layer gets its routes as soon as you create them.",[502,503,505],"h2",{"id":504},"route-files","Route files",[199,507,508,509,512,513,518],{},"The ",[202,510,511],{},"routes"," generator of ",[514,515,516],"a",{"href":115},[202,517,114],{}," creates the four files when you create the layer:",[219,520,524],{"className":521,"code":522,"language":523,"meta":225,"style":225},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","php artisan osdd:layer functional\u002Forders --generators=provider,routes\n","bash",[202,525,526],{"__ignoreMap":225},[229,527,528,530,533,536,539],{"class":231,"line":232},[229,529,224],{"class":275},[229,531,532],{"class":291}," artisan",[229,534,535],{"class":291}," osdd:layer",[229,537,538],{"class":291}," functional\u002Forders",[229,540,541],{"class":291}," --generators=provider,routes\n",[199,543,544,545,547,548,551],{},"For an existing layer, create the files by hand. ",[202,546,114],{}," refuses a layer that already exists, and with ",[202,549,550],{},"--force"," it rewrites the provider and the route files you already have.",[219,553,556],{"className":221,"code":554,"filename":555,"language":224,"meta":225,"style":225},"use Functional\\Orders\\Http\\Controllers\\OrderController;\nuse Illuminate\\Support\\Facades\\Route;\n\nRoute::resource('orders', OrderController::class);\n","functional\u002Forders\u002Froutes\u002Fweb.php",[202,557,558,591,615,621],{"__ignoreMap":225},[229,559,560,563,567,570,573,575,578,580,583,585,588],{"class":231,"line":232},[229,561,562],{"class":250},"use",[229,564,566],{"class":565},"sTEyZ"," Functional",[229,568,569],{"class":246},"\\",[229,571,572],{"class":565},"Orders",[229,574,569],{"class":246},[229,576,577],{"class":565},"Http",[229,579,569],{"class":246},[229,581,582],{"class":565},"Controllers",[229,584,569],{"class":246},[229,586,587],{"class":565},"OrderController",[229,589,590],{"class":246},";\n",[229,592,593,595,598,600,603,605,608,610,613],{"class":231,"line":254},[229,594,562],{"class":250},[229,596,597],{"class":565}," Illuminate",[229,599,569],{"class":246},[229,601,602],{"class":565},"Support",[229,604,569],{"class":246},[229,606,607],{"class":565},"Facades",[229,609,569],{"class":246},[229,611,612],{"class":565},"Route",[229,614,590],{"class":246},[229,616,617],{"class":231,"line":260},[229,618,620],{"emptyLinePlaceholder":619},true,"\n",[229,622,623,625,628,631,634,636,639,641,644,647,649,652],{"class":231,"line":272},[229,624,612],{"class":275},[229,626,627],{"class":246},"::",[229,629,630],{"class":242},"resource",[229,632,633],{"class":246},"(",[229,635,295],{"class":246},[229,637,638],{"class":291},"orders",[229,640,295],{"class":246},[229,642,643],{"class":246},",",[229,645,646],{"class":275}," OrderController",[229,648,627],{"class":246},[229,650,651],{"class":250},"class",[229,653,654],{"class":246},");\n",[219,656,659],{"className":221,"code":657,"filename":658,"language":224,"meta":225,"style":225},"use Functional\\Orders\\Http\\Controllers\\Api\\OrderController;\nuse Illuminate\\Support\\Facades\\Route;\n\nRoute::get('orders', [OrderController::class, 'index']); \u002F\u002F GET \u002Fapi\u002Forders\n","functional\u002Forders\u002Froutes\u002Fapi.php",[202,660,661,690,710,714],{"__ignoreMap":225},[229,662,663,665,667,669,671,673,675,677,679,681,684,686,688],{"class":231,"line":232},[229,664,562],{"class":250},[229,666,566],{"class":565},[229,668,569],{"class":246},[229,670,572],{"class":565},[229,672,569],{"class":246},[229,674,577],{"class":565},[229,676,569],{"class":246},[229,678,582],{"class":565},[229,680,569],{"class":246},[229,682,683],{"class":565},"Api",[229,685,569],{"class":246},[229,687,587],{"class":565},[229,689,590],{"class":246},[229,691,692,694,696,698,700,702,704,706,708],{"class":231,"line":254},[229,693,562],{"class":250},[229,695,597],{"class":565},[229,697,569],{"class":246},[229,699,602],{"class":565},[229,701,569],{"class":246},[229,703,607],{"class":565},[229,705,569],{"class":246},[229,707,612],{"class":565},[229,709,590],{"class":246},[229,711,712],{"class":231,"line":260},[229,713,620],{"emptyLinePlaceholder":619},[229,715,716,718,720,723,725,727,729,731,733,736,738,740,742,744,746,749,751,754],{"class":231,"line":272},[229,717,612],{"class":275},[229,719,627],{"class":246},[229,721,722],{"class":242},"get",[229,724,633],{"class":246},[229,726,295],{"class":246},[229,728,638],{"class":291},[229,730,295],{"class":246},[229,732,643],{"class":246},[229,734,735],{"class":246}," [",[229,737,587],{"class":275},[229,739,627],{"class":246},[229,741,651],{"class":250},[229,743,643],{"class":246},[229,745,288],{"class":246},[229,747,748],{"class":291},"index",[229,750,295],{"class":246},[229,752,753],{"class":246},"]);",[229,755,757],{"class":756},"sHwdD"," \u002F\u002F GET \u002Fapi\u002Forders\n",[199,759,760,761,763,764,767,768,770],{},"Do not add an ",[202,762,430],{}," prefix inside ",[202,765,766],{},"routes\u002Fapi.php",": ",[202,769,204],{}," already adds it.",[502,772,774],{"id":773},"console-routes-and-schedules","Console routes and schedules",[199,776,777,778,781],{},"A layer's ",[202,779,780],{},"routes\u002Fconsole.php"," works like the application's one. Define closure commands and schedules in it:",[219,783,786],{"className":221,"code":784,"filename":785,"language":224,"meta":225,"style":225},"use Illuminate\\Support\\Facades\\Artisan;\nuse Illuminate\\Support\\Facades\\Schedule;\n\nArtisan::command('orders:report', function () {\n    $this->info('Orders report sent.');\n});\n\nSchedule::command('orders:prune-abandoned')->daily();\n","functional\u002Forders\u002Froutes\u002Fconsole.php",[202,787,788,809,830,834,862,880,885,889],{"__ignoreMap":225},[229,789,790,792,794,796,798,800,802,804,807],{"class":231,"line":232},[229,791,562],{"class":250},[229,793,597],{"class":565},[229,795,569],{"class":246},[229,797,602],{"class":565},[229,799,569],{"class":246},[229,801,607],{"class":565},[229,803,569],{"class":246},[229,805,806],{"class":565},"Artisan",[229,808,590],{"class":246},[229,810,811,813,815,817,819,821,823,825,828],{"class":231,"line":254},[229,812,562],{"class":250},[229,814,597],{"class":565},[229,816,569],{"class":246},[229,818,602],{"class":565},[229,820,569],{"class":246},[229,822,607],{"class":565},[229,824,569],{"class":246},[229,826,827],{"class":565},"Schedule",[229,829,590],{"class":246},[229,831,832],{"class":231,"line":260},[229,833,620],{"emptyLinePlaceholder":619},[229,835,836,838,840,843,845,847,850,852,854,856,859],{"class":231,"line":272},[229,837,806],{"class":275},[229,839,627],{"class":246},[229,841,842],{"class":242},"command",[229,844,633],{"class":246},[229,846,295],{"class":246},[229,848,849],{"class":291},"orders:report",[229,851,295],{"class":246},[229,853,643],{"class":246},[229,855,239],{"class":235},[229,857,858],{"class":246}," ()",[229,860,861],{"class":246}," {\n",[229,863,864,866,869,871,873,876,878],{"class":231,"line":301},[229,865,263],{"class":246},[229,867,868],{"class":242},"info",[229,870,633],{"class":246},[229,872,295],{"class":246},[229,874,875],{"class":291},"Orders report sent.",[229,877,295],{"class":246},[229,879,654],{"class":246},[229,881,882],{"class":231,"line":322},[229,883,884],{"class":246},"});\n",[229,886,887],{"class":231,"line":343},[229,888,620],{"emptyLinePlaceholder":619},[229,890,891,893,895,897,899,901,904,906,909,912],{"class":231,"line":364},[229,892,827],{"class":275},[229,894,627],{"class":246},[229,896,842],{"class":242},[229,898,633],{"class":246},[229,900,295],{"class":246},[229,902,903],{"class":291},"orders:prune-abandoned",[229,905,295],{"class":246},[229,907,908],{"class":246},")->",[229,910,911],{"class":242},"daily",[229,913,914],{"class":246},"();\n",[199,916,917,920],{},[202,918,919],{},"php artisan schedule:list"," shows the schedules of every layer.",[502,922,924],{"id":923},"broadcast-channels","Broadcast channels",[219,926,929],{"className":221,"code":927,"filename":928,"language":224,"meta":225,"style":225},"use Functional\\Orders\\Models\\Order;\nuse Illuminate\\Support\\Facades\\Broadcast;\n\nBroadcast::channel('orders.{order}', function ($user, Order $order) {\n    return $user->id === $order->user_id;\n});\n","functional\u002Forders\u002Froutes\u002Fchannels.php",[202,930,931,953,974,978,1022,1052],{"__ignoreMap":225},[229,932,933,935,937,939,941,943,946,948,951],{"class":231,"line":232},[229,934,562],{"class":250},[229,936,566],{"class":565},[229,938,569],{"class":246},[229,940,572],{"class":565},[229,942,569],{"class":246},[229,944,945],{"class":565},"Models",[229,947,569],{"class":246},[229,949,950],{"class":565},"Order",[229,952,590],{"class":246},[229,954,955,957,959,961,963,965,967,969,972],{"class":231,"line":254},[229,956,562],{"class":250},[229,958,597],{"class":565},[229,960,569],{"class":246},[229,962,602],{"class":565},[229,964,569],{"class":246},[229,966,607],{"class":565},[229,968,569],{"class":246},[229,970,971],{"class":565},"Broadcast",[229,973,590],{"class":246},[229,975,976],{"class":231,"line":260},[229,977,620],{"emptyLinePlaceholder":619},[229,979,980,982,984,987,989,991,994,996,998,1000,1003,1006,1008,1011,1014,1017,1020],{"class":231,"line":272},[229,981,971],{"class":275},[229,983,627],{"class":246},[229,985,986],{"class":242},"channel",[229,988,633],{"class":246},[229,990,295],{"class":246},[229,992,993],{"class":291},"orders.{order}",[229,995,295],{"class":246},[229,997,643],{"class":246},[229,999,239],{"class":235},[229,1001,1002],{"class":246}," ($",[229,1004,1005],{"class":565},"user",[229,1007,643],{"class":246},[229,1009,1010],{"class":275}," Order",[229,1012,1013],{"class":246}," $",[229,1015,1016],{"class":565},"order",[229,1018,1019],{"class":246},")",[229,1021,861],{"class":246},[229,1023,1024,1028,1030,1032,1035,1038,1041,1043,1045,1047,1050],{"class":231,"line":301},[229,1025,1027],{"class":1026},"s7zQu","    return",[229,1029,1013],{"class":246},[229,1031,1005],{"class":565},[229,1033,1034],{"class":246},"->",[229,1036,1037],{"class":565},"id ",[229,1039,1040],{"class":246},"===",[229,1042,1013],{"class":246},[229,1044,1016],{"class":565},[229,1046,1034],{"class":246},[229,1048,1049],{"class":565},"user_id",[229,1051,590],{"class":246},[229,1053,1054],{"class":231,"line":322},[229,1055,884],{"class":246},[502,1057,1059],{"id":1058},"route-caching","Route caching",[199,1061,1062,1063,1066,1067,1070,1071,1073,1074,1076,1077,1079,1080,1082,1083,1076,1085,1087,1088,1090],{},"When routes are cached (",[202,1064,1065],{},"php artisan route:cache"," or ",[202,1068,1069],{},"php artisan optimize","), the ",[202,1072,417],{},", ",[202,1075,430],{}," and ",[202,1078,466],{}," routes of every layer come from the route cache: ",[202,1081,204],{}," does not load them again. The ",[202,1084,446],{},[202,1086,456],{}," files are still loaded, as Laravel's own ",[202,1089,204],{}," does, so the closure commands, schedules and broadcast channels of each layer keep working.",[199,1092,1093,1094,1096,1097,1066,1100,477],{},"Run ",[202,1095,1065],{}," again after changing a layer's ",[202,1098,1099],{},"web.php",[202,1101,1102],{},"api.php",[502,1104,1106],{"id":1105},"custom-routes","Custom routes",[199,1108,1109,1110,1112,1113,279],{},"For anything beyond these conventions, such as a domain, a name prefix or a custom middleware group, use the ",[202,1111,612],{}," facade in ",[202,1114,216],{},[219,1116,1118],{"className":221,"code":1117,"language":224,"meta":225,"style":225},"use Illuminate\\Support\\Facades\\Route;\n\npublic function boot(): void\n{\n    Route::middleware(['web', 'auth'])\n        ->prefix('admin\u002Forders')\n        ->name('admin.orders.')\n        ->group(__DIR__ . '\u002F..\u002F..\u002Froutes\u002Fadmin.php');\n}\n",[202,1119,1120,1140,1144,1156,1160,1191,1211,1229,1250],{"__ignoreMap":225},[229,1121,1122,1124,1126,1128,1130,1132,1134,1136,1138],{"class":231,"line":232},[229,1123,562],{"class":250},[229,1125,597],{"class":565},[229,1127,569],{"class":246},[229,1129,602],{"class":565},[229,1131,569],{"class":246},[229,1133,607],{"class":565},[229,1135,569],{"class":246},[229,1137,612],{"class":565},[229,1139,590],{"class":246},[229,1141,1142],{"class":231,"line":254},[229,1143,620],{"emptyLinePlaceholder":619},[229,1145,1146,1148,1150,1152,1154],{"class":231,"line":260},[229,1147,236],{"class":235},[229,1149,239],{"class":235},[229,1151,243],{"class":242},[229,1153,247],{"class":246},[229,1155,251],{"class":250},[229,1157,1158],{"class":231,"line":272},[229,1159,257],{"class":246},[229,1161,1162,1165,1167,1170,1173,1175,1177,1179,1181,1183,1186,1188],{"class":231,"line":301},[229,1163,1164],{"class":275},"    Route",[229,1166,627],{"class":246},[229,1168,1169],{"class":242},"middleware",[229,1171,1172],{"class":246},"([",[229,1174,295],{"class":246},[229,1176,417],{"class":291},[229,1178,295],{"class":246},[229,1180,643],{"class":246},[229,1182,288],{"class":246},[229,1184,1185],{"class":291},"auth",[229,1187,295],{"class":246},[229,1189,1190],{"class":246},"])\n",[229,1192,1193,1196,1199,1201,1203,1206,1208],{"class":231,"line":322},[229,1194,1195],{"class":246},"        ->",[229,1197,1198],{"class":242},"prefix",[229,1200,633],{"class":246},[229,1202,295],{"class":246},[229,1204,1205],{"class":291},"admin\u002Forders",[229,1207,295],{"class":246},[229,1209,1210],{"class":246},")\n",[229,1212,1213,1215,1218,1220,1222,1225,1227],{"class":231,"line":343},[229,1214,1195],{"class":246},[229,1216,1217],{"class":242},"name",[229,1219,633],{"class":246},[229,1221,295],{"class":246},[229,1223,1224],{"class":291},"admin.orders.",[229,1226,295],{"class":246},[229,1228,1210],{"class":246},[229,1230,1231,1233,1236,1239,1241,1243,1246,1248],{"class":231,"line":364},[229,1232,1195],{"class":246},[229,1234,1235],{"class":242},"group",[229,1237,1238],{"class":246},"(__DIR__",[229,1240,285],{"class":246},[229,1242,288],{"class":246},[229,1244,1245],{"class":291},"\u002F..\u002F..\u002Froutes\u002Fadmin.php",[229,1247,295],{"class":246},[229,1249,654],{"class":246},[229,1251,1252],{"class":231,"line":381},[229,1253,390],{"class":246},[199,1255,1256,1257,1260],{},"Wrap these calls in ",[202,1258,1259],{},"if (! $this->app->routesAreCached())"," to skip them once routes are cached.",[1262,1263,1264],"style",{},"html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}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 .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .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 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}",{"title":225,"searchDepth":232,"depth":254,"links":1266},[1267,1268,1269,1270,1271],{"id":504,"depth":254,"text":505},{"id":773,"depth":254,"text":774},{"id":923,"depth":254,"text":924},{"id":1058,"depth":254,"text":1059},{"id":1105,"depth":254,"text":1106},"Give a layer its own web, API, console and broadcast routes.","md",null,{},{"title":64,"description":1272},{"loc":65},"GxuDBaWU9f1tUFpz6cIltnwtSzmbNJ7oy78Q-da5yVQ",[1280,1282],{"title":60,"path":61,"stem":62,"description":1281,"children":-1},"Let one layer use another, move shared code to its own layer, and break cycles, while osdd:check stays green.",{"title":68,"path":69,"stem":70,"description":1283,"children":-1},"Render Blade views, translations and components from a layer, under the layer name.",1794437210936]