【问题标题】:nWidart/laravel-modules, how to put the modules under different foldersnWidart/laravel-modules,如何将模块放在不同的文件夹下
【发布时间】:2020-10-29 06:24:40
【问题描述】:

我是 Laravel 的新手。我想在不同的文件夹中编写模块,而不是所有模块都在同一个文件夹“模块”中。例如:

myProyect
 |___ Clients
 |       |__ Module1
 |       |__ Module2
 |
 |___ Factory
         |__ Part1
         |_____Module1
         |____ Module2
         |__ Part2
         |____ Module1

有可能吗?我正在尝试,但我只会得到错误。 (我从客户开始,因为没有像工厂这样的不同子文件夹) 我正在这样做: 使用 nWidart 步骤创建模块化结构。它在“模块”中创建了所有内容。 我确实创建了新的 dir Clients 并将第二个模块移动到新文件夹,添加了 composer.json: “自动加载”:{ “psr-4”:{ "应用\": "应用/", "模块\": "模块/", “客户\”:“客户/” }, 在 config/app.php 上,我写道: Clients\Module1\Providers\Module1ServiceProvider::class,

当我写: composer dump-autoload 时,出现此错误: 找不到类“Clients\Module1\Providers\Module1ServiceProvider”

感谢您的帮助。

【问题讨论】:

    标签: laravel module subdirectory


    【解决方案1】:

    您可以在 Modules 目录的子文件夹中设置不同的模块。您必须在 module.php 中设置配置:

        'scan' => [
        'enabled' => false,
        'paths' => [
            base_path('vendor/*/*'),
        ],
    ],
    

    像这样改变路径:

        'scan' => [
        'enabled' => false,
        'paths' => [
            base_path('Modules/Clients/*'),
            base_path('Modules/Factory/*'),
        ],
    ],
    

    然后更改其他路径配置:

    'modules' => base_path('Modules/Clients'),
    'assets' => public_path('modules/Clients'),
    

    和命名空间:

    'namespace' => 'Modules\Clients',
    

    现在,如果您运行 php artisan module:make Test 在 Clients 目录中设置的测试模块。

    您可以在控制器中设置模块、资产、命名空间配置路径:

        \Config::set('modules.paths.modules',base_path('Modules/Clients'));
        \Config::set('modules.paths.assets',base_path('modules/Clients'));
        \Config::set('modules.namespace','Modules\Clients');
    

    检查composer.json,添加自动加载:

      "autoload": {
    "psr-4": {
      "App\\": "app/",
      "Modules\\": "Modules/"
       }
    }
    

    然后运行composer dump-autoload

    【讨论】:

    • 太棒了!谢谢扎赫拉!我将尝试我的下一个项目。
    猜你喜欢
    • 2020-07-14
    • 2021-02-23
    • 2021-05-15
    • 1970-01-01
    • 2015-04-15
    • 2020-12-24
    • 2017-11-02
    • 2021-01-31
    • 2021-10-21
    相关资源
    最近更新 更多