php nWidart/laravel-modules,如何将模块文件夹放在laravel文件夹之外

ozxc1zmp  于 2023-02-03  发布在  PHP
关注(0)|答案(1)|浏览(167)

'我是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()
jrcvhitl

jrcvhitl1#

如果我理解正确的话,您似乎希望在多个项目中使用一个模块,这样就不需要在每个模块中重复代码。
为了实现这一点,你可以创建自己的git仓库,例如名为my-module,并通过composer在每个项目中安装。
Laravel模块文档中有一篇文章强调了如何做到这一点:https://docs.laravelmodules.com/v9/publishing-modules
本文还解释了在不希望源代码公开的情况下如何安装私有包。

相关问题