yzc261亚洲城官网备用地址lumen控制器调用artisan

( yzc261亚洲城官网备用地址 )

文档中给的调用artisan方式是
直接在路由里调用

`Route::get/foo, function  {
    $exitCode = Artisan::callemail: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_aliasIlluminateSupportFacadesAuth, Auth;
            class_aliasIlluminateSupportFacadesCache, Cache;
            class_aliasIlluminateSupportFacadesDB, DB;
            class_aliasIlluminateSupportFacadesEvent, Event;
            class_aliasIlluminateSupportFacadesGate, Gate;
            class_aliasIlluminateSupportFacadesLog, Log;
            class_aliasIlluminateSupportFacadesQueue, Queue;
            class_aliasIlluminateSupportFacadesSchema, Schema;
            class_aliasIlluminateSupportFacadesValidator, alidator;
        }
    }

这里我们找到IlluminateSupportFacades这个文件夹,里面是有Artisan.php的把这个像其他一样起别名后
无须use任何东西,Artisan类就可用了。当然,我们不能动框架。所以在你想用artisan命令的地方加头
use IlluminateSupportFacadesArtisan;
就可以在lumen中调用Artisan->call方法,在控制器中运行php artisan任意命令了。

(看完/读完)这篇文章有何感想! yzc261亚洲城官网备用地址的分享…

发表评论

电子邮件地址不会被公开。 必填项已用*标注