2017-10-14 5 views
0

私は簡単なPHPスクリプトで自分のアプリケーションサービスにアクセスする必要があります。私はHTTP/Consoleカーネルを作成したくありません。次の内容がアプリのルートにあるtest.phpというファイルの場合は、それを動作させるために何を呼び出す必要がありますか?HTTP /コンソールカーネルを使用せずにLaravelのサービスにアクセスするための最小限のコードは何ですか?

require_once __DIR__ . "/vendor/autoload.php"; //composer 
$app = new Illuminate\Foundation\Application(realpath(__DIR__)); 
$app->boot(); // not sure about this 
$app->make('db')->table('user')->get()->toArray(); 

現在、私は次のエラーを取得する:

PHP Fatal error: Uncaught ReflectionException: Class db does not exist in foo\vendor\laravel\framework\src\Illuminate\Container\Container.php:752 
Fatal error: Uncaught ReflectionException: Class db does not exist in foo\vendor\laravel\framework\src\Illuminate\Container\Container.php:752 
+0

あなたはこれがあなたのために正しいことであることを確認していますか?シレックスを試しましたか?あなたは何をしたいのか説明できますか? – SebTM

+0

@SebTM oh!私は1つの質問をし、あなたは3つの質問をしました!とても面白い! – PHPst

+0

職人のコマンドを作成するだけです。それはそのためです。 – Devon

答えて

0

ソースコードをチェックした後には、Applicationクラスがconfig/app.phpファイルで定義されたすべてのクラスをロードしないと、あなたがそれを自分でブートストラップしているいずれかのことは明らかですビルドインカーネルのブートストラップ機能を実行しています。ですから、次の行でphpファイルを作成すると、phpstormでスニペットコードを直接行うためのartisanコマンドの作成を煩わせることなく、すべてのアプリケーションの依存関係にアクセスできます。

require_once __DIR__ . "/vendor/autoload.php"; //composer 
$app = new Illuminate\Foundation\Application(realpath(__DIR__)); 

// http Kernel yet have to be registered, perhaps a bad design issue. 
$app->singleton(
    Illuminate\Contracts\Http\Kernel::class, 
    App\Http\Kernel::class 
); 

$app->singleton(
    Illuminate\Contracts\Console\Kernel::class, 
    App\Console\Kernel::class 
); 
// optional 
$app->singleton(
    Illuminate\Contracts\Debug\ExceptionHandler::class, 
    App\Exceptions\Handler::class 
); 

$kernel = $app->make(Illuminate\Contracts\Console\Kernel::class); 
$kernel->bootstrap(); 

// and playground is ready 
$users= $app->make('db')->table('user')->get()->toArray(); 

または

require_once __DIR__ . "/vendor/autoload.php"; 
$app = include_once __DIR__.'/bootstrap/app.php'; 
$kernel = $app->make(Illuminate\Contracts\Console\Kernel::class); 
$kernel->bootstrap(); 

dd(app('db')->table('user')->count()); 
関連する問題