lumen php命令,lumen控制器调用artisan

文档中给的调用artisan方式是

直接在路由里调用

`Route::get('/foo', function () {

$exitCode = Artisan::call('email:send', [

'user' => 1, '--queue' => 'default'

]);

//

});`

这种方式,实际上在lumen里没Artisan。现在安装了一个数据库备份插件,

https://github.com/backup-manager

这个插件可以实现php artisan db:backup

想在controller里面调用备份相应的命令。求指点。

回复内容:

文档中给的调用artisan方式是

直接在路由里调用

`Route::get('/foo', function () {

$exitCode = Artisan::call('email:send', [

'user' => 1, '--queue' => 'default'

]);

//

});`

这种方式,实际上在lumen里没Artisan。现在安装了一个数据库备份插件,

https://github.com/backup-manager

这个插件可以实现php artisan db:backup

想在controller里面调用备份相应的命令。求指点。

自问自答,初学者走的坑,高手不要拍砖。

想要在lumen里调用artisan 就需要找到相应的Facades,而lumen中没有给artisan起别名,进行注册。

所以我们正常是使用不了的。如下laravel/lumen-framework/src/appliation.php

public function withFacades()

{

Facade::setFacadeApplication($this);

if (! static::$aliasesRegistered) {

static::$aliasesRegistered = true;

class_alias('Illuminate\Support\Facades\Auth', 'Auth');

class_alias('Illuminate\Support\Facades\Cache', 'Cache');

class_alias('Illuminate\Support\Facades\DB', 'DB');

class_alias('Illuminate\Support\Facades\Event', 'Event');

class_alias('Illuminate\Support\Facades\Gate', 'Gate');

class_alias('Illuminate\Support\Facades\Log', 'Log');

class_alias('Illuminate\Support\Facades\Queue', 'Queue');

class_alias('Illuminate\Support\Facades\Schema', 'Schema');

class_alias('Illuminate\Support\Facades\Validator', 'alidator');

}

}

这里我们找到Illuminate\Support\Facades这个文件夹,里面是有Artisan.php的把这个像其他一样起别名后

无须use任何东西,Artisan类就可用了。当然,我们不能动框架。所以在你想用artisan命令的地方加头

use Illuminate\Support\Facades\Artisan;

就可以在lumen中调用Artisan->call()方法,在控制器中运行php artisan任意命令了。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值