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

Laravel 5.4自定义包命令未在Artisan中显示的问题求助

让我来帮你排查这个问题——你的自定义Artisan命令没出现在列表里,主要是命名空间和服务提供者配置的几个细节错误导致的,下面是具体的修复步骤:

1. 修正服务提供者的命名空间

你的ArtisanTestmeServiceProvider.php文件直接放在src/目录下,所以它的命名空间应该是TestMe,而不是TestMe\Commands。修改文件顶部的命名空间:

<?php
namespace TestMe; // 这里修改原有的命名空间
use Illuminate\Support\ServiceProvider;

class ArtisanTestmeServiceProvider extends ServiceProvider {
    // ... 其他代码保持不变
}

2. 修复命令注册的类路径

在服务提供者的$commands数组里,你错误地添加了包名前缀robyfirnandoyusuf\,但根据你的composer.json的PSR-4配置,TestMe\已经对应src/目录,所以正确的类路径应该是TestMe\Commands\TestmeCommand。推荐用::class语法更严谨:

protected $commands = [
    \TestMe\Commands\TestmeCommand::class,
];

3. 更新composer.json中的服务提供者路径

你的包的composer.json里,extra.laravel.providers配置的路径还是旧的命名空间,需要修改为正确的服务提供者类名:

"extra":{
    "laravel":{
        "providers":[
            "TestMe\\ArtisanTestmeServiceProvider" // 去掉原有的Commands\前缀
        ]
    }
}

4. 执行命令刷新配置

完成以上修改后,需要执行以下命令让Laravel识别这些变化:

  • 更新自动加载规则:composer dump-autoload
  • 若还未安装包,执行:composer require robyfirnandoyusuf/lara-testme
  • 清除配置缓存(如果之前缓存过):php artisan config:clear

最后运行php artisan list,你应该就能看到testme:run命令出现在列表里了!如果还是没显示,可以手动在Laravel项目的config/app.php的providers数组里添加TestMe\ArtisanTestmeServiceProvider::class,再重试一次。

内容的提问来源于stack exchange,提问作者0x00b0

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:20:58