Bootstrap laravel 测试文件中的环境
Bootstrap laravel environment in test file
我经常喜欢通过创建一个实例化 class 的简单 PHP 文件来测试我的 class 方法(在编写实际单元测试之前),然后弄乱其中的变量X调试。
我在 laravel 站点的根目录中创建了一个名为 testing.php
的测试文件,我只想执行此文件并查看对象是否像我期望的那样交互.但是,我不能完全将应用程序正确地设置为 bootstrap。该文件如下所示:
<?php
require __DIR__.'/vendor/autoload.php';
$app = require_once __DIR__.'/bootstrap/app.php';
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
use App\User;
$user = User::find(1); // there's a breakpoint on this line
$a = true;
当我执行此操作时(运行 在 phpstorm 中进行调试)我从未找到数据库连接中得到一个错误:
PHP Fatal error: Uncaught Error: Call to a member function connection() on null in /opt/project/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:1285
显然我需要采取额外的步骤才能完成这项工作——有人知道如何让数据库连接正常工作吗?
您必须 "start" 该应用程序才能使用它。
require __DIR__.'/vendor/autoload.php';
/** @var \Illuminate\Foundation\Application $app */
$app = require_once __DIR__.'/bootstrap/app.php';
$app->bootstrapWith([
\Illuminate\Foundation\Bootstrap\LoadEnvironmentVariables::class,
\Illuminate\Foundation\Bootstrap\LoadConfiguration::class,
\Illuminate\Foundation\Bootstrap\HandleExceptions::class,
\Illuminate\Foundation\Bootstrap\RegisterFacades::class,
\Illuminate\Foundation\Bootstrap\SetRequestForConsole::class,
\Illuminate\Foundation\Bootstrap\RegisterProviders::class,
\Illuminate\Foundation\Bootstrap\BootProviders::class,
]);
$app->boot();
$app->registerConfiguredProviders();
dd(User::find(12341234));
我经常喜欢通过创建一个实例化 class 的简单 PHP 文件来测试我的 class 方法(在编写实际单元测试之前),然后弄乱其中的变量X调试。
我在 laravel 站点的根目录中创建了一个名为 testing.php
的测试文件,我只想执行此文件并查看对象是否像我期望的那样交互.但是,我不能完全将应用程序正确地设置为 bootstrap。该文件如下所示:
<?php
require __DIR__.'/vendor/autoload.php';
$app = require_once __DIR__.'/bootstrap/app.php';
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
use App\User;
$user = User::find(1); // there's a breakpoint on this line
$a = true;
当我执行此操作时(运行 在 phpstorm 中进行调试)我从未找到数据库连接中得到一个错误:
PHP Fatal error: Uncaught Error: Call to a member function connection() on null in /opt/project/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:1285
显然我需要采取额外的步骤才能完成这项工作——有人知道如何让数据库连接正常工作吗?
您必须 "start" 该应用程序才能使用它。
require __DIR__.'/vendor/autoload.php';
/** @var \Illuminate\Foundation\Application $app */
$app = require_once __DIR__.'/bootstrap/app.php';
$app->bootstrapWith([
\Illuminate\Foundation\Bootstrap\LoadEnvironmentVariables::class,
\Illuminate\Foundation\Bootstrap\LoadConfiguration::class,
\Illuminate\Foundation\Bootstrap\HandleExceptions::class,
\Illuminate\Foundation\Bootstrap\RegisterFacades::class,
\Illuminate\Foundation\Bootstrap\SetRequestForConsole::class,
\Illuminate\Foundation\Bootstrap\RegisterProviders::class,
\Illuminate\Foundation\Bootstrap\BootProviders::class,
]);
$app->boot();
$app->registerConfiguredProviders();
dd(User::find(12341234));