Laravel 如何重写在illumb/Foundation/Application.php中定义的resourcePath()函数
我正在模块化laravel。我已决定移动所有默认路由、控制器、资源等。。至/app/Modules/Pub。在大多数情况下,这是行之有效的。但是,我想更改应用程序的默认资源路径。不幸的是,这似乎不容易配置 所以。。。使用grep,我能够跟踪Laravel 如何重写在illumb/Foundation/Application.php中定义的resourcePath()函数,laravel,overriding,laravel-6,modularization,Laravel,Overriding,Laravel 6,Modularization,我正在模块化laravel。我已决定移动所有默认路由、控制器、资源等。。至/app/Modules/Pub。在大多数情况下,这是行之有效的。但是,我想更改应用程序的默认资源路径。不幸的是,这似乎不容易配置 所以。。。使用grep,我能够跟踪资源路径()函数到/var/www/sigma/vendor/laravel/framework/src/illighte/Foundation/helpers.php 我认为有可能在某个地方重写此函数,但这似乎是一个低级的攻击,因为此函数仅包括: app()
资源路径()
函数到/var/www/sigma/vendor/laravel/framework/src/illighte/Foundation/helpers.php
我认为有可能在某个地方重写此函数,但这似乎是一个低级的攻击,因为此函数仅包括:
app()->resourcePath($path)
再次使用grep,我发现这个函数可以在/var/www/sigma/vendor/laravel/framework/src/illumb/Foundation/Application.php
这似乎是需要更改的,因为它没有引用任何配置值,而该值是硬编码的:
return $this->basePath.DIRECTORY_SEPARATOR.'resources'.($path ? DIRECTORY_SEPARATOR.$path : $path);
但我认为可以肯定的是,手动更改供应商文件夹下的任何内容都是非常愚蠢的。显然我需要在某个地方重写这个函数。我不清楚在何处以及如何执行此操作您可以在项目中的某个位置创建一个类,并扩展默认的
\illumb\Foundation\Application
类。然后重写所需的方法,并将在bootstrap/app.php
中实例化的类切换为自定义类。您可以在项目中的某个位置创建一个类,并扩展默认的\illumb\Foundation\Application
类。然后重写所需的方法,并将在bootstrap/app.php
中实例化的类与自定义类切换。创建一个新的应用程序
类,该类扩展\illighted\Foundation\Application
:
创建一个新的应用程序
类,该类扩展了\illumb\Foundation\Application
: