Laravel 小型独立一次性脚本,无需 artisan 命令?

jus*_*dev 7 php laravel laravel-5

我需要在 Laravel 中检查一些小东西,所以我只想制作一个小脚本来检查它。

我知道我可以做到

php artisan make:console ...
Run Code Online (Sandbox Code Playgroud)

但它会向 App/Console/Command 添加一个文件,我需要更新 app/Console/Kernel.php。这意味着我必须将其提交给源代码管理,这实际上是不需要的。

有没有办法拥有一个独立的Laravel 脚本,让我可以访问 Laravel 组件?

我正在使用 Laravel 5.2,(make:command 不存在,只有 make:console)

只是我尝试过的一个例子:

<?php

use App\User;
use DB;

require __DIR__.'/../vendor/autoload.php';
require __DIR__.'/..//bootstrap/app.php';

echo "hello world\n";
$res=User::where('id',5)->first();
echo "end!\n";
?>
Run Code Online (Sandbox Code Playgroud)

但我收到错误:

PHP Fatal error:  Uncaught Error: Call to a member function connection() on null in /var/www/html/dpriceit/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:3314
Stack trace:
#0 /var/www/html/dpriceit/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(3280): Illuminate\Database\Eloquent\Model::resolveConnection(NULL)
#1 /var/www/html/dpriceit/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(1880): Illuminate\Database\Eloquent\Model->getConnection()
#2 /var/www/html/dpriceit/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(1853): Illuminate\Database\Eloquent\Model->newBaseQueryBuilder()
#3 /var/www/html/dpriceit/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(1823): Illuminate\Database\Eloquent\Model->newQueryWithoutScopes()
#4 /var/www/html/dpriceit/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(3524): Illuminate\Database\Eloquent\Model->newQuery()
Run Code Online (Sandbox Code Playgroud)

更新

我尝试创建一个控制台命令

php artisan make:console MyTempTest
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时,php artisan list我在可用命令列表中看不到它的签名。

Sal*_*301 7

要修复您收到的错误,请启动应用程序的内核并像这样处理响应

app\script.php

<?php

use App\User;

require __DIR__.'/../vendor/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
$response = $kernel->handle(
    $request = Illuminate\Http\Request::capture()
);

echo "hello world\n";
$res = User::find(5)->name;
var_dump($res);
echo "end!\n";
Run Code Online (Sandbox Code Playgroud)

然后从终端运行php app/script.php
结果:

$ php app/script.php 
hello world
string(11) "John Doe"
end!
Run Code Online (Sandbox Code Playgroud)