'我是laravel的新手,我有一个使用nWidart/laravel模块的模块化项目。
我需要在多个项目中使用同一个模块。
在下面的示例中,“模块1”同时用于项目1、项目2和项目3。我的体量结构将接近于:
PROJECTS
|___ Project1
|___ Project2
|___ Project3
|___ Module1
我希望保持这种结构,因为它符合公司的标准。
我在modules.php中尝试了一些更改,但没有成功:
'namespace' => '',
'paths' => [
'modules' => base_path('../..')
]
我得到了以下回报:
PS C:\\1.PHP\\PROJECTS\\PROJECT\> php artisan module:list
Error
Class '\Teste\Providers\TesteServiceProvider' not found
at C:\1.PHP\GLOBAL\vendor\laravel\framework\src\Illuminate\Foundation\ProviderRepository.php:208
204▕ * @return \Illuminate\Support\ServiceProvider
205▕ */
206▕ public function createProvider($provider)
207▕ {
➜ 208▕ return new $provider($this->app);
209▕ }
210▕ }
211▕
1 C:\1.PHP\GLOBAL\vendor\laravel\framework\src\Illuminate\Foundation\ProviderRepository.php:144
Illuminate\Foundation\ProviderRepository::createProvider("\Teste\Providers\TesteServiceProvider")
2 C:\1.PHP\GLOBAL\vendor\laravel\framework\src\Illuminate\Foundation\ProviderRepository.php:61
Illuminate\Foundation\ProviderRepository::compileManifest()
1条答案
按热度按时间jrcvhitl1#
如果我理解正确的话,您似乎希望在多个项目中使用一个模块,这样就不需要在每个模块中重复代码。
为了实现这一点,你可以创建自己的git仓库,例如名为
my-module
,并通过composer在每个项目中安装。Laravel模块文档中有一篇文章强调了如何做到这一点:https://docs.laravelmodules.com/v9/publishing-modules
本文还解释了在不希望源代码公开的情况下如何安装私有包。