Github上托管的几乎所有Laravel项目都使用use Illuminate\Contracts\Console\Kernel;
控制台内核来创建应用程序/,以引导整个应用程序进行测试,并使用vendor/bin/phpunit
例如,这是Voten laravel应用程序 https://github.com/voten-co/voten/blob/master/tests/CreatesApplication.php
<?php
namespace Tests;
use Illuminate\Contracts\Console\Kernel;
trait CreatesApplication
{
/**
* Creates the application.
*
* @return \Illuminate\Foundation\Application
*/
public function createApplication()
{
$app = require __DIR__.'/../bootstrap/app.php';
$app->make(Kernel::class)->bootstrap();
return $app;
}
}
我想知道为什么我们不使用use Illuminate\Contracts\Http\Kernel;
是因为vendor/bin/phpunit
通常在命令行中启动,所以要求使用控制台内核而不是Http内核吗?我在网上搜索了为什么会这样,但没有找到答案。
我知道两个内核之间的区别以及何时使用每个内核。这是一个很好的答案,关于两者之间的区别 How to use Console Kernel is Laravel PHP?
我敢肯定有充分的理由使用控制台内核进行测试!但是我不为什么,有人可以为我解释吗?
然后可以使用Http内核而不是Console内核吗?