You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 11自定义命名空间问题:Artisan命令生成代码仍用默认命名空间

解决Laravel 11 Artisan生成代码仍使用默认命名空间的问题

方法一:通过服务提供者全局设置默认命名空间

在你的Aggp\Providers\AppServiceProvider.php的boot方法中添加以下代码,强制所有生成类的命令使用自定义命名空间:

use Illuminate\Console\GeneratorCommand;

public function boot()
{
    // 为所有Artisan生成命令设置默认命名空间
    $this->app->afterResolving(GeneratorCommand::class, function ($command) {
        $command->setNamespace('Aggp');
    });
}

添加后执行缓存清理命令:

php artisan config:clear
php artisan cache:clear

方法二:自定义Stubs模板(更彻底的方案)

如果需要完全控制生成代码的模板内容,可以自定义stubs文件:

  • 在项目根目录创建stubs文件夹
  • 从vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs目录中复制你需要修改的模板文件(比如model.stub、controller.stub等)到项目的stubs文件夹
  • 将复制后的模板文件中的所有App\替换为Aggp\
  • 后续执行Artisan生成命令时,系统会自动优先使用项目根目录stubs中的模板

方法三:临时指定命名空间(单次生效)

如果只是偶尔生成文件,可以在Artisan命令后添加--namespace参数手动指定:

php artisan make:model User --namespace=Aggp
php artisan make:controller UserController --namespace=Aggp

额外检查项

  • 确保composer.json中的autoload部分已正确设置:
    "autoload": {
        "psr-4": {
            "Aggp\\": "app/"
        }
    },
    
    并执行过composer dump-autoload
  • 确认所有现有文件的命名空间已替换为Aggp\,且应用能正常运行

内容的提问来源于stack exchange,提问作者Gihan Dilusha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 19:40:02