Lumenを使用してAPIを作成する - Laravelが大好きですが、それに付随するすべてのViewは、私が作成しているプロジェクトにとって過度のものでした。Artisanコマンドの例外をきれいに処理する方法
とにかく、データを取り出してデータベースに保存する一連のコマンドを作成しました。
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Symfony\Component\Console\Input\InputOption;
use App\User;
class GetItems extends Command {
/**
* The console command name.
*
* @var string
*/
protected $name = 'GetItems';
/**
* The console command description.
*
* @var string
*/
protected $description = "Get items and store it into the Database";
/**
* Execute the console command.
*
* @return void
*/
public function fire()
{
$this->info("Collecting ...");
$users = User::all();
foreach($users as $user)
{
$user->getItems();
}
}
/**
* Get the console command options.
*
* @return array
*/
protected function getOptions()
{
return [];
}
}
私は3つの同様のコマンドを持っていますが、それぞれはわずかに異なるデータセットを収集しています。
私のコマンド全体でfire()
関数のそれぞれから来る例外をキャッチする中間層を挿入する方法はありますか?私はCommand
クラスを拡張することを考えていましたが、既にそれを行う方法があるかどうかを知りたければ、がを推奨しました(ドキュメンテーション/検索は役に立たなかった)。
私は、すべてのコマンドを1つのファイルにまとめてオプションを使用する方法があると知っていますが、これは面倒で難しくなります。
提案がありますか?
あなたは 'しようと{}キャッチ(\例外の$ e)の{}'内部を使用しようとしました' - > fire()'メソッド?あなたが得たエラーは何ですか?その例外はどこから来ていますか? – ljubadr
@ljubadrはい、そのクラスでのみ動作しますが、私は多くの同様のクラスを持っているので、try {} catchブロックを繰り返す必要があります。スタックの上に例外をスローし、 'fire()'が呼び出されるスタックにキャッチすると、クリーナーになると感じています – Moe