diff --git a/src/Plugin.php b/src/Plugin.php index 92cb0de..65812ab 100644 --- a/src/Plugin.php +++ b/src/Plugin.php @@ -16,85 +16,9 @@ */ namespace Cake\Queue; -use Bake\Command\SimpleBakeCommand; -use Cake\Console\CommandCollection; -use Cake\Core\BasePlugin; -use Cake\Core\Configure; -use Cake\Core\ContainerInterface; -use Cake\Core\PluginApplicationInterface; -use Cake\Queue\Command\JobCommand; -use Cake\Queue\Command\PurgeFailedCommand; -use Cake\Queue\Command\RequeueCommand; -use Cake\Queue\Command\WorkerCommand; -use InvalidArgumentException; - /** - * Plugin for Queue + * @deprecated 2.2.1 Use QueuePlugin instead */ -class Plugin extends BasePlugin +class Plugin extends QueuePlugin { - /** - * Plugin name. - */ - protected ?string $name = 'Cake/Queue'; - - /** - * Load routes or not - */ - protected bool $routesEnabled = false; - - /** - * Load the Queue configuration - * - * @param \Cake\Core\PluginApplicationInterface $app The host application - * @return void - */ - public function bootstrap(PluginApplicationInterface $app): void - { - if (!Configure::read('Queue')) { - throw new InvalidArgumentException( - 'Missing `Queue` configuration key, please check the CakePHP Queue documentation' . - ' to complete the plugin setup.', - ); - } - - foreach (Configure::read('Queue') as $key => $data) { - if (QueueManager::getConfig($key) === null) { - QueueManager::setConfig($key, $data); - } - } - } - - /** - * Add console commands for the plugin. - * - * @param \Cake\Console\CommandCollection $commands The command collection to update - * @return \Cake\Console\CommandCollection - */ - public function console(CommandCollection $commands): CommandCollection - { - if (class_exists(SimpleBakeCommand::class)) { - $commands->add('bake job', JobCommand::class); - } - - return $commands - ->add('queue worker', WorkerCommand::class) - ->add('worker', WorkerCommand::class) - ->add('queue requeue', RequeueCommand::class) - ->add('queue purge_failed', PurgeFailedCommand::class); - } - - /** - * Add DI container to Worker command - * - * @param \Cake\Core\ContainerInterface $container The DI container - * @return void - */ - public function services(ContainerInterface $container): void - { - $container->add(ContainerInterface::class, $container); - $container - ->add(WorkerCommand::class) - ->addArgument(ContainerInterface::class); - } } diff --git a/src/QueuePlugin.php b/src/QueuePlugin.php new file mode 100644 index 0000000..9f7202b --- /dev/null +++ b/src/QueuePlugin.php @@ -0,0 +1,100 @@ + $data) { + if (QueueManager::getConfig($key) === null) { + QueueManager::setConfig($key, $data); + } + } + } + + /** + * Add console commands for the plugin. + * + * @param \Cake\Console\CommandCollection $commands The command collection to update + * @return \Cake\Console\CommandCollection + */ + public function console(CommandCollection $commands): CommandCollection + { + if (class_exists(SimpleBakeCommand::class)) { + $commands->add('bake job', JobCommand::class); + } + + return $commands + ->add('queue worker', WorkerCommand::class) + ->add('worker', WorkerCommand::class) + ->add('queue requeue', RequeueCommand::class) + ->add('queue purge_failed', PurgeFailedCommand::class); + } + + /** + * Add DI container to Worker command + * + * @param \Cake\Core\ContainerInterface $container The DI container + * @return void + */ + public function services(ContainerInterface $container): void + { + $container->add(ContainerInterface::class, $container); + $container + ->add(WorkerCommand::class) + ->addArgument(ContainerInterface::class); + } +} diff --git a/tests/TestCase/PluginTest.php b/tests/TestCase/PluginTest.php index c48e060..d695069 100644 --- a/tests/TestCase/PluginTest.php +++ b/tests/TestCase/PluginTest.php @@ -4,8 +4,8 @@ namespace Cake\Queue\Test\TestCase; use Cake\Core\Configure; -use Cake\Queue\Plugin; use Cake\Queue\QueueManager; +use Cake\Queue\QueuePlugin; use Cake\TestSuite\TestCase; use InvalidArgumentException; use TestApp\Application; @@ -22,7 +22,7 @@ public function testBootstrapNoConfig() $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Missing `Queue` configuration key, please check the CakePHP Queue documentation to complete the plugin setup'); Configure::delete('Queue'); - $plugin = new Plugin(); + $plugin = new QueuePlugin(); $app = $this->getMockBuilder(Application::class)->disableOriginalConstructor()->getMock(); $plugin->bootstrap($app); } @@ -40,7 +40,7 @@ public function testBootstrapWithConfig() 'logger' => 'stdout', ]; Configure::write('Queue', ['default' => $queueConfig]); - $plugin = new Plugin(); + $plugin = new QueuePlugin(); $app = $this->getMockBuilder(Application::class)->disableOriginalConstructor()->getMock(); $plugin->bootstrap($app); $queueConfig['url'] = [