![]() Server : Apache/2.4.62 (Unix) OpenSSL/1.0.2k-fips System : Linux server1.richineiserver.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : fdshops ( 1003) PHP Version : 8.2.21 Disable Function : NONE Directory : /home/fdshops/public_html/vendor/nwidart/laravel-modules/src/Commands/ |
<?php namespace Nwidart\Modules\Commands; use Illuminate\Console\Command; use Nwidart\Modules\Module; use Symfony\Component\Console\Input\InputOption; class ListCommand extends Command { /** * The console command name. * * @var string */ protected $name = 'module:list'; /** * The console command description. * * @var string */ protected $description = 'Show list of all modules.'; /** * Execute the console command. */ public function handle(): int { $this->components->twoColumnDetail('<fg=gray>Status / Name</>', '<fg=gray>Path / priority</>'); collect($this->getRows())->each(function ($row) { $this->components->twoColumnDetail("[{$row[1]}] {$row[0]}", "{$row[3]} [{$row[2]}]"); }); return 0; } /** * Get table rows. * * @return array */ public function getRows() { $rows = []; /** @var Module $module */ foreach ($this->getModules() as $module) { $rows[] = [ $module->getName(), $module->isEnabled() ? '<fg=green>Enabled</>' : '<fg=red>Disabled</>', $module->get('priority'), $module->getPath(), ]; } return $rows; } public function getModules() { switch ($this->option('only')) { case 'enabled': return $this->laravel['modules']->getByStatus(1); break; case 'disabled': return $this->laravel['modules']->getByStatus(0); break; case 'priority': return $this->laravel['modules']->getPriority($this->option('direction')); break; default: return $this->laravel['modules']->all(); break; } } /** * Get the console command options. * * @return array */ protected function getOptions() { return [ ['only', 'o', InputOption::VALUE_OPTIONAL, 'Types of modules will be displayed.', null], ['direction', 'd', InputOption::VALUE_OPTIONAL, 'The direction of ordering.', 'asc'], ]; } }