*/ class Layout extends Command { /** * The name and signature of the console command. * * @var string */ protected $signature = 'layout {config}'; /** * The console command description. * * @var string */ protected $description = 'Examine all screens and layouts and effect the best match'; /** * Create a new command instance. * * @return void */ public function __construct() { parent::__construct(); } /** * Execute the console command. * * @param \App\ILayoutDriver $driver * @return void */ public function handle(\App\ILayoutDriver $driver) { $config_file = $this->argument('config'); if (!file_exists($config_file) || !is_readable($config_file)) { throw new \Exception("Cannot read config file: $config_file"); } $config = new \App\Configuration(); $config->load($config_file); $engine = app()->make(\App\Engine::class, ['config' => $config]); $engine->layout(); } }