我正在模块化 laravel。我决定将所有默认路由、控制器、资源等移动到 /app/Modules/Pub。在大多数情况下,这运作良好。但是我想更改应用程序的默认资源路径。不幸的是,这似乎不是(容易)可配置的。
所以......使用 grep 我能够追踪到resource_path()
函数/var/www/sigma/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php
我认为可以在某个地方覆盖这个函数,但这似乎是一个低于标准的黑客,因为这个函数只包括:
app()->resourcePath($path)
再次使用 grep 我发现这个函数可以在/var/www/sigma/vendor/laravel/framework/src/Illuminate/Foundation/Application.php
这似乎是要改变的事情,因为它没有引用任何配置值,而是该值是硬编码的:
return $this->basePath.DIRECTORY_SEPARATOR.'resources'.($path ? DIRECTORY_SEPARATOR.$path : $path);
但我认为可以安全地假设手动更改供应商文件夹下的任何内容是非常愚蠢的。显然我需要在某个地方覆盖这个函数。我不清楚在哪里以及如何做到这一点