[{"data":1,"prerenderedAt":451},["ShallowReactive",2],{"navigation":3,"\u002Fcommands\u002Fosdd-cache":193,"\u002Fcommands\u002Fosdd-cache-surround":446},[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":142,"body":195,"description":438,"extension":439,"links":440,"meta":441,"navigation":442,"path":143,"seo":443,"sitemap":444,"stem":144,"__hash__":445},"docs\u002F4.commands\u002F10.osdd-cache.md",{"type":196,"value":197,"toc":432},"minimark",[198,207,249,253,262,270,277,284,290,294,301,307,311,334,351,355,358,397,400,418,428],[199,200,201,202,206],"p",{},"OSDD discovers the layers by scanning the folders of ",[203,204,205],"code",{},"osdd.layers.paths",", once per process. In production, cache the result so a request never scans the folders.",[208,209,214],"pre",{"className":210,"code":211,"language":212,"meta":213,"style":213},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","php artisan osdd:cache   # also run by php artisan optimize\nphp artisan osdd:clear   # also run by php artisan optimize:clear\n","bash","",[203,215,216,236],{"__ignoreMap":213},[217,218,221,225,229,232],"span",{"class":219,"line":220},"line",1,[217,222,224],{"class":223},"sBMFI","php",[217,226,228],{"class":227},"sfazB"," artisan",[217,230,231],{"class":227}," osdd:cache",[217,233,235],{"class":234},"sHwdD","   # also run by php artisan optimize\n",[217,237,239,241,243,246],{"class":219,"line":238},2,[217,240,224],{"class":223},[217,242,228],{"class":227},[217,244,245],{"class":227}," osdd:clear",[217,247,248],{"class":234},"   # also run by php artisan optimize:clear\n",[250,251,142],"h2",{"id":252},"osddcache",[199,254,255,257,258,261],{},[203,256,142],{}," discovers the layers and writes them to ",[203,259,260],{},"bootstrap\u002Fcache\u002Fosdd.php",":",[208,263,268],{"className":264,"code":266,"language":267},[265],"language-text","  INFO  3 layers cached successfully.\n","text",[203,269,266],{"__ignoreMap":213},[199,271,272,273,276],{},"While the file exists, every process reads the layers from it: commands, Tinker, ",[203,274,275],{},"about",", the generators and the view, translation and component namespaces of the layer providers.",[199,278,279,280,283],{},"It fails with exit code 1, and writes no cache, while a layer ",[203,281,282],{},"composer.json"," is invalid:",[208,285,288],{"className":286,"code":287,"language":267},[265],"Invalid layer manifest [functional\u002Forders\u002Fcomposer.json]: it has no \"name\".\n",[203,289,287],{"__ignoreMap":213},[250,291,293],{"id":292},"osddclear","osdd:clear",[199,295,296,298,299,261],{},[203,297,293],{}," deletes ",[203,300,260],{},[208,302,305],{"className":303,"code":304,"language":267},[265],"  INFO  Layer cache cleared successfully.\n",[203,306,304],{"__ignoreMap":213},[250,308,310],{"id":309},"with-optimize","With optimize",[199,312,313,316,317,319,320,323,324,316,327,329,330,333],{},[203,314,315],{},"php artisan optimize"," runs ",[203,318,142],{}," as its ",[203,321,322],{},"osdd"," task, and ",[203,325,326],{},"php artisan optimize:clear",[203,328,293],{},". A deployment that already runs ",[203,331,332],{},"optimize"," has nothing to add. Skip the task with:",[208,335,337],{"className":210,"code":336,"language":212,"meta":213,"style":213},"php artisan optimize --except=osdd\n",[203,338,339],{"__ignoreMap":213},[217,340,341,343,345,348],{"class":219,"line":220},[217,342,224],{"class":223},[217,344,228],{"class":227},[217,346,347],{"class":227}," optimize",[217,349,350],{"class":227}," --except=osdd\n",[250,352,354],{"id":353},"when-the-cache-is-refreshed","When the cache is refreshed",[199,356,357],{},"You rarely need to run the commands by hand:",[359,360,361,376,391],"ul",{},[362,363,364,366,367,366,369,372,373,375],"li",{},[203,365,114],{},", ",[203,368,110],{},[203,370,371],{},"osdd:provider"," and ",[203,374,138],{}," rewrite an existing cache;",[362,377,378,379,382,383,386,387,390],{},"Composer does too, through ",[203,380,381],{},"php artisan package:discover",", which runs after every ",[203,384,385],{},"composer install"," or ",[203,388,389],{},"composer update",";",[362,392,393,394,396],{},"a cache built for other ",[203,395,205],{}," is ignored.",[199,398,399],{},"None of them creates a cache that does not exist.",[401,402,403],"warning",{},[199,404,405,406,409,410,413,414,417],{},"A layer copied into the project by hand, without running Composer, stays invisible while a cache exists. Run ",[203,407,408],{},"php artisan osdd:cache"," again, or ",[203,411,412],{},"php artisan osdd:clear",", as with ",[203,415,416],{},"event:cache",".",[199,419,420,421,424,425,427],{},"See ",[422,423,88],"a",{"href":89}," for every cache ",[203,426,332],{}," builds for the layers.",[429,430,431],"style",{},"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 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);}",{"title":213,"searchDepth":220,"depth":238,"links":433},[434,435,436,437],{"id":252,"depth":238,"text":142},{"id":292,"depth":238,"text":293},{"id":309,"depth":238,"text":310},{"id":353,"depth":238,"text":354},"Cache the discovered layers for production, or remove that cache.","md",null,{},true,{"title":142,"description":438},{"loc":143},"uc9K9tzKWeLbeQbz8_YVEG5I7W2Xivt32EfSDD48NzA",[447,449],{"title":138,"path":139,"stem":140,"description":448,"children":-1},"Remove a layer that no other layer requires.",{"title":146,"path":147,"stem":148,"description":450,"children":-1},"The osdd:* twins of Laravel's make:* commands write inside a layer.",1794437212379]