루멘을 사용하여 API 만들기 - Laravel을 좋아하지만 함께 제공되는 모든보기는 내가 만드는 프로젝트에 과도기였습니다.장인의 명령에서 예외를 깔끔하게 처리하는 방법
어쨌든, 나가서 데이터를 수집하고 데이터베이스에 저장하는 일련의 명령을 만들었습니다.
<?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
클래스를 확장하려고 생각했지만 - 이미 수행 할 방법이 있는지 알고 싶었습니다. 은 프레임 워크 작성자가을 권장했습니다 (문서/검색은 도움이되지 않았습니다).
나는 모든 명령을 하나의 파일로 결합하여 옵션을 사용하는 것이 대안이지만, 이로 인해 복잡하고 어렵게 만들 수 있습니다.
제안 사항?
당신이 캐치 (\ 예외 $ 전자)} {시도'사용하려고 했 {}'내부 '-> fire()'메쏘드? 당신이 얻는 오류는 무엇입니까? 그 예외는 어디서 오는거야? – ljubadr
@ljubadr 예, 해당 클래스에서만 작동하지만 많은 비슷한 클래스가 있으므로 try {} catch 블록을 반복해야합니다. 나는 예외를 스택 위로 던져서 스택 (stack)에서'fire()'가 호출되는 것을보다 깨끗하게 느낄 것입니다. – Moe