Viewing file: FailedTableCommand.php (2.53 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace Illuminate\Queue\Console;
use Illuminate\Console\Command; use Illuminate\Filesystem\Filesystem; use Illuminate\Support\Composer; use Symfony\Component\Console\Attribute\AsCommand;
#[AsCommand(name: 'queue:failed-table')] class FailedTableCommand extends Command { /** * The console command name. * * @var string */ protected $name = 'queue:failed-table';
/** * The name of the console command. * * This name is used to identify the command during lazy loading. * * @var string|null * * @deprecated */ protected static $defaultName = 'queue:failed-table';
/** * The console command description. * * @var string */ protected $description = 'Create a migration for the failed queue jobs database table';
/** * The filesystem instance. * * @var \Illuminate\Filesystem\Filesystem */ protected $files;
/** * @var \Illuminate\Support\Composer */ protected $composer;
/** * Create a new failed queue jobs table command instance. * * @param \Illuminate\Filesystem\Filesystem $files * @param \Illuminate\Support\Composer $composer * @return void */ public function __construct(Filesystem $files, Composer $composer) { parent::__construct();
$this->files = $files; $this->composer = $composer; }
/** * Execute the console command. * * @return void */ public function handle() { $table = $this->laravel['config']['queue.failed.table'];
$this->replaceMigration( $this->createBaseMigration($table), $table );
$this->info('Migration created successfully.');
$this->composer->dumpAutoloads(); }
/** * Create a base migration file for the table. * * @param string $table * @return string */ protected function createBaseMigration($table = 'failed_jobs') { return $this->laravel['migration.creator']->create( 'create_'.$table.'_table', $this->laravel->databasePath().'/migrations' ); }
/** * Replace the generated migration with the failed job table stub. * * @param string $path * @param string $table * @return void */ protected function replaceMigration($path, $table) { $stub = str_replace( '{{table}}', $table, $this->files->get(__DIR__.'/stubs/failed_jobs.stub') );
$this->files->put($path, $stub); } }
|