【发布时间】:2020-01-25 15:15:09
【问题描述】:
我正在模块化 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);
但我认为手动更改供应商文件夹下的任何内容是非常愚蠢的假设是安全的。显然我需要在某个地方覆盖这个函数。我不清楚在哪里以及如何做到这一点
【问题讨论】:
标签: laravel overriding laravel-6 modularization