<?php namespace App\Console\Commands; use App\Parser; use GuzzleHttp\Exception\InvalidArgumentException; use Illuminate\Console\Command; use function GuzzleHttp\json_encode; class ParseLinkCommand extends Command { /** * The name and signature of the console command. * * @var string */ protected $signature = 'app:parselink {url}'; /** * The console command description. * * @var string */ protected $description = 'Parse given link'; /** * Create a new command instance. * * @return void */ public function __construct() { parent::__construct(); } /** * Execute the console command. * * @return int */ public function handle() { $parser = Parser::factory($this->argument('url')); try { $this->info(json_encode($parser->parse(), true)); } catch (InvalidArgumentException $e) { $this->error($e->getMessage()); } return 0; } }