Tweaked custom command registration, Added StyleCI fixes

Old command registration method was interfering with default commands,
causing only a limited subset of commands to show overall.
This change follows the method the frameworks uses when loading in from a
directory to prevent issues with run/load order.
This commit is contained in:
Dan Brown 2021-11-22 22:22:31 +00:00
parent c6e196989e
commit 1bf59f434b
No known key found for this signature in database
GPG Key ID: 46D9F943C24A2EF9
5 changed files with 16 additions and 10 deletions

View File

@ -211,6 +211,7 @@ abstract class Entity extends Model implements Sluggable, Favouritable, Viewable
/**
* Check if this instance or class is a certain type of entity.
* Examples of $type are 'page', 'book', 'chapter'.
*
* @deprecated Use instanceof instead.
*/
public static function isA(string $type): bool

View File

@ -3,6 +3,8 @@
namespace BookStack\Theming;
use BookStack\Auth\Access\SocialAuthService;
use Illuminate\Console\Application;
use Illuminate\Console\Application as Artisan;
use Illuminate\Contracts\Console\Kernel;
use Symfony\Component\Console\Command\Command;
@ -50,9 +52,9 @@ class ThemeService
*/
public function registerCommand(Command $command)
{
/** @var \Illuminate\Foundation\Console\Kernel $consoleKernel */
$consoleKernel = app()->make(Kernel::class);
$consoleKernel->registerCommand($command);
Artisan::starting(function(Application $application) use ($command) {
$application->addCommands([$command]);
});
}
/**

View File

@ -210,7 +210,7 @@ class ThemeTest extends TestCase
public function test_register_command_allows_provided_command_to_be_usable_via_artisan()
{
Theme::registerCommand(new MyCustomCommand);
Theme::registerCommand(new MyCustomCommand());
Artisan::call('bookstack:test-custom-command', []);
$output = Artisan::output();
@ -233,9 +233,12 @@ class ThemeTest extends TestCase
}
}
class MyCustomCommand extends Command {
class MyCustomCommand extends Command
{
protected $signature = 'bookstack:test-custom-command';
public function handle() {
public function handle()
{
$this->line('Command ran!');
}
}