Files
Jonathan Miller 21e892013b
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 1s
Universal: Auto Version Bump / Version Bump (push) Failing after 5s
Generic: Project CI / Lint & Validate (push) Successful in 26s
Generic: Project CI / Tests (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
feat: scaffold Joomla package structure (#1, #2)
4 sub-extensions: com, system plugin, webservices, task plugin.
6 DB tables: pageviews, visitors, campaigns, ad_accounts, ad_metrics, reports.
Privacy-first: no cookies, daily visitor hash rotation, IP anonymization.
2026-06-11 12:03:04 -05:00

36 lines
1.3 KiB
PHP

<?php
/**
* @copyright (C) 2026 Moko Consulting. All rights reserved.
* @license GPL-3.0-or-later
*/
declare(strict_types=1);
use Joomla\CMS\Dispatcher\ComponentDispatcherFactoryInterface;
use Joomla\CMS\Extension\ComponentInterface;
use Joomla\CMS\Extension\Service\Provider\ComponentDispatcherFactory;
use Joomla\CMS\Extension\Service\Provider\MVCFactory;
use Joomla\CMS\MVC\Factory\MVCFactoryInterface;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;
use MokoConsulting\Component\MokoSuiteAnalytics\Administrator\Extension\MokoSuiteAnalyticsComponent;
return new class () implements ServiceProviderInterface {
public function register(Container $container): void
{
$container->registerServiceProvider(new MVCFactory('\\MokoConsulting\\Component\\MokoSuiteAnalytics'));
$container->registerServiceProvider(new ComponentDispatcherFactory('\\MokoConsulting\\Component\\MokoSuiteAnalytics'));
$container->set(
ComponentInterface::class,
function (Container $container) {
$component = new MokoSuiteAnalyticsComponent($container->get(ComponentDispatcherFactoryInterface::class));
$component->setMVCFactory($container->get(MVCFactoryInterface::class));
return $component;
}
);
}
};