lumen控制器調用artisan

來源:互聯網
上載者:User
關鍵字 php lumen
文檔中給的調用artisan方式是
直接在路由裡調用

`Route::get('/foo', function () {    $exitCode = Artisan::call('email:send', [        'user' => 1, '--queue' => 'default'    ]);    //});`

這種方式,實際上在lumen裡沒Artisan。現在安裝了一個Database Backup外掛程式,
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。現在安裝了一個Database Backup外掛程式,
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任意命令了。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.