make:migration过程分析

01:App\Console\Kernel对象实例->handle(参数1,参数2)

参数1: Symfony\Component\Console\Input\ArgvInput对象实例
参考2: Symfony\Component\Console\Output\ConsoleOutput对象实例

第1步:读取bootstraper,
D:\03www2018\study\myblog\app\Console\commands下面所有的类文件,这些类文件必须继承Illuminate\Console\Command

\App\Console\Kernel 继承 Illuminate\Foundation\Console\Kernel
Illuminate\Foundation\Application是容器
Illuminate\Console\Application 继承 Symfony\Component\Console\Application

App\Console\Kernel Object(
[commands:protected] => Array()
[app:protected] => Illuminate\Foundation\Application 对象
[events:protected] => Illuminate\Events\Dispatcher 对象
[artisan:protected] =>
[commandsLoaded:protected] =>
[bootstrappers:protected] => Array(
[0] => Illuminate\Foundation\Bootstrap\LoadEnvironmentVariables
[1] => Illuminate\Foundation\Bootstrap\LoadConfiguration
[2] => Illuminate\Foundation\Bootstrap\HandleExceptions
[3] => Illuminate\Foundation\Bootstrap\RegisterFacades
[4] => Illuminate\Foundation\Bootstrap\SetRequestForConsole
[5] => Illuminate\Foundation\Bootstrap\RegisterProviders
[6] => Illuminate\Foundation\Bootstrap\BootProviders
)
)

第01步kernel启动(bootstrap)

1.遍历$bootstrappers

会依次执行 前事件,bootstrap()方法,后事件

这里面有3个重要的console服务
Illuminate\Database\MigrationServiceProvider 注册所有的命令
\Illuminate\Foundation\Providers\ArtisanServiceProvider
\Illuminate\Foundation\Providers\ComposerServiceProvider

加载defered类型的服务

执行commands()注入函数

给console应用的启动器bootstrapper增加命令,命令是写在D:\03www2018\study\myblog\app\Console\commands,每个命令文件得继承于Illuminate\Console\Command
读取console的路由配置文件

第02步console应用(artisan)启动(bootstrap)

遍历artisan中的bootstrapers();

第03步artisan运行

this>getArtisan()>run( input, $output);
触发命令开始前事件
触发命令开始后事件

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值