Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[5.x][RFC] CMSPlugin: Lazy subscriber interface and decorator #43658

Open
wants to merge 16 commits into
base: 5.2-dev
Choose a base branch
from
Prev Previous commit
Next Next commit
LazyServiceEventSubscriber
  • Loading branch information
Fedik committed Jun 14, 2024
commit f75c188b08ad2de81861c3081486c3998eeafa45
8 changes: 7 additions & 1 deletion plugins/system/schedulerunner/services/provider.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

\defined('_JEXEC') or die;

use Joomla\CMS\Event\LazyServiceEventSubscriber;
use Joomla\CMS\Extension\PluginInterface;
use Joomla\CMS\Factory;
use Joomla\CMS\Plugin\PluginHelper;
Expand All @@ -31,7 +32,7 @@
public function register(Container $container): void
{
$container->set(
PluginInterface::class,
ScheduleRunner::class,
function (Container $container) {
$plugin = new ScheduleRunner(
$container->get(DispatcherInterface::class),
Expand All @@ -41,6 +42,11 @@ function (Container $container) {

return $plugin;
}
)->set(
PluginInterface::class,
function (Container $container) {
return new LazyServiceEventSubscriber($container, ScheduleRunner::class);
}
);
}
};
8 changes: 7 additions & 1 deletion plugins/system/tasknotification/services/provider.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

\defined('_JEXEC') or die;

use Joomla\CMS\Event\LazyServiceEventSubscriber;
use Joomla\CMS\Extension\PluginInterface;
use Joomla\CMS\Factory;
use Joomla\CMS\Plugin\PluginHelper;
Expand All @@ -33,7 +34,7 @@
public function register(Container $container): void
{
$container->set(
PluginInterface::class,
TaskNotification::class,
function (Container $container) {
$plugin = new TaskNotification(
$container->get(DispatcherInterface::class),
Expand All @@ -45,6 +46,11 @@ function (Container $container) {

return $plugin;
}
)->set(
PluginInterface::class,
function (Container $container) {
return new LazyServiceEventSubscriber($container, TaskNotification::class);
}
);
}
};
4 changes: 2 additions & 2 deletions plugins/system/webauthn/services/provider.php
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
*/
public function register(Container $container)
{
$container->share(
$container->set(
Webauthn::class,
function (Container $container) {
$app = Factory::getApplication();
Expand Down Expand Up @@ -73,7 +73,7 @@ function (Container $container) {

return $plugin;
}
)->share(
)->set(
PluginInterface::class,
function (Container $container) {
return new LazyServiceEventSubscriber($container, Webauthn::class);
Expand Down