['AuthTokenCookiesHandler', 'AuthTokenGenerator'], 'Confirmation' => ['ConfirmationCodeGenerator', 'ConfirmationUrlBuilder', 'UserIdEncrypter'], 'Invitation' => ['InvitationTokenGenerator', 'InvitationUrlBuilder'], ]; /** * The name and signature of the console command. * * @var string */ protected $signature = 'tokens-validation:handler'; /** * The console command description. * * @var string */ protected $description = 'Create a TokensValidation handler to override the defaults'; /** * Execute the console command. * * @return int */ public function handle(): int { $keys = array_keys(self::lists); $keys = array_map(function($key) { return strlen($key); }, $keys); $key = max($keys); $n = $key + 1; $options = []; // Build the option array without titles foreach (self::lists as $group => $items) { foreach ($items as $item) { $s = $group; $s .= str_repeat(' ', $n - strlen($group)); $s .= ' - ' . $item; $options[] = $s; } } // Ask the user to choose an option $choice = $this->choice('Choose what class you want to override:', $options); $parts = explode('-', $choice); $head = trim($parts[0]); $choice = trim($parts[1]); $name = $this->ask('name of the class ?', $choice); if ($name == 'My...') $name = 'My'.$choice; if ($name == 'Custom...') $name = 'Custom'.$choice; $stub = File::get(__DIR__."/stubs/$head/$choice.stub"); $stub = str_replace("//TO*DO", "//TODO", $stub); $stub = str_replace("{{className}}", $name, $stub); /** @noinspection PhpUndefinedFunctionInspection */ $path = app_path('Actions/TokensValidation/' . $head . '/' . $name . '.php'); File::ensureDirectoryExists(dirname($path)); File::put($path, $stub); $this->line("Now, follow these instructions:"); $this->line("1. Go to the config file named tokensvalidation.php"); $this->line("2. change the value of the key '".($head == 'Authentication' ? 'AuthTokens' : $head.'Token').".$choice' to 'App\Actions\TokensValidation\$head\$name::class'"); $this->line("3. Clear config cache."); return CommandAlias::SUCCESS; } }__halt_compiler();----SIGNATURE:----ZBLa911H1/+I7JrldvzZAMrk8wpZ4qbyTO9fOQSA6wotdTnqnhRqxg6MY8O26TuZQW2IEW9Wcc7ybHBf7IFX/qOgtUK0VHCzJQFhi0DZOGR5lVbuAissAOapGON0jOJW+G8UZm0AwtqOAh3uqgrDnrsFlJvwaxUJj3ndhNg15TmI2k7DVNO2nHgyBecP+m/RnOkCoXWBfVxQ6rLn8titb3uOQzpJ6x3QnuexfkX3jPEFkdx7hby1eFNX4hzBVmh4Y+XlcFxbH12Zd/Auy8W+n3RvR8rr9Fe6bOvg+AxTVvfPPl+nzGGn9uw4uiXqLOacBvvkCqVYX77Qon+hvjTfUyoRhgVqrByl9JK3zJZPkotWG9HVcmvsUVsXNxbty6xXv7ItC9rhM1OMrd7hxuiTkzGMvKp2xP+bTix8HukJzXLPIGcIqP792mlRqTZy+U9ohahG10yVoioy4AnK9IBlRN3p+5QSLKpLRfw8dyUibuH1RArokOg8zF44NKfvpOP5+Xp39TXfcr+Z/rVEQoqtFx/JEZYn/ZArslzKi0OP0IqIt2vL/DsTPSUeZ6NAgZR8bgvxud/7FwJSw7g0OCirF5pxb6T5MWxKx7+XcdZlNqThdPcx4tBiL2UFH/TaIZ9yUJptWDUgfraWXM3z3LCvJRod/5wCJbz/zIBYbZLeKiM=----ATTACHMENT:----MTI0NjA4NzA1MDM2ODgyNyAxNzI2NTk5MTgyOTg0NTQ2IDQyNzcyMjY2MDEyMDY5NzY=