发布于 1970-01-01 08:00
  • 1 个回答
    • 自问自答,初学者走的坑,高手不要拍砖。
      想要在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任意命令了。

      2022-11-30 22:46 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有