有没有办法禁用 artisan 命令?

Is there a way to disable artisan commands?

有没有办法完全禁用来自 运行 的 artisan 命令?

例如,如果我想从 运行 禁用 php artisan migrate:fresh,我应该去哪里 remove/disable 命令?

据我所知,laravel默认没有这个功能。而且这还在laravel ideas.

我之前也遇到过这个问题,找不到解决办法,我不知道你为什么要禁用一个命令。但我的情况是,在 production 环境中,我从不想 运行 php artisan migrate:fresh。所以我最终得到的是覆盖默认命令。

例如,在 routes/console.php 文件中:

if ('production' === App::environment()) {
    Artisan::command('migrate:fresh', function () {
        $this->comment('You are not allowed to do this in production!');
    })->describe('Override default command in production.');
}

因此,当您处于 production 时,php artisan migrate:fresh 将不执行任何操作。您可以根据您的要求更改条件,我的示例只是关于如何根据 .env 文件中的某些变量覆盖 laravel 默认命令的想法。

你也可以在这里做很多事情,我不确定你为什么要禁用命令,所以这是我能提供的最好的帮助。