feat: CI/CD pipeline setup complete - Ansible playbooks updated, secrets configured, workflow ready
This commit is contained in:
60
src/Domain/SmartLink/DI/SmartLinkServiceInitializer.php
Normal file
60
src/Domain/SmartLink/DI/SmartLinkServiceInitializer.php
Normal file
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Domain\SmartLink\DI;
|
||||
|
||||
use App\Domain\SmartLink\Repositories\ClickEventRepository;
|
||||
use App\Domain\SmartLink\Repositories\SmartLinkRepository;
|
||||
use App\Domain\SmartLink\Services\ClickStatisticsService;
|
||||
use App\Domain\SmartLink\Services\ClickTrackingService;
|
||||
use App\Domain\SmartLink\Services\SmartLinkService;
|
||||
use App\Framework\Database\ConnectionInterface;
|
||||
use App\Framework\DI\Container;
|
||||
use App\Framework\DI\Initializer;
|
||||
use App\Infrastructure\SmartLink\Repositories\DatabaseClickEventRepository;
|
||||
|
||||
/**
|
||||
* SmartLink Domain Service Registration
|
||||
*
|
||||
* Registers all SmartLink domain services in the DI container.
|
||||
*/
|
||||
final readonly class SmartLinkServiceInitializer
|
||||
{
|
||||
#[Initializer]
|
||||
public function __invoke(Container $container): void
|
||||
{
|
||||
// Repository Bindings
|
||||
$container->singleton(
|
||||
ClickEventRepository::class,
|
||||
fn(Container $c) => new DatabaseClickEventRepository(
|
||||
$c->get(ConnectionInterface::class)
|
||||
)
|
||||
);
|
||||
|
||||
// SmartLink Management Service
|
||||
$container->singleton(
|
||||
SmartLinkService::class,
|
||||
fn(Container $c) => new SmartLinkService(
|
||||
$c->get(SmartLinkRepository::class)
|
||||
)
|
||||
);
|
||||
|
||||
// Click Tracking Service
|
||||
$container->singleton(
|
||||
ClickTrackingService::class,
|
||||
fn(Container $c) => new ClickTrackingService(
|
||||
$c->get(ClickEventRepository::class),
|
||||
$c->get(SmartLinkRepository::class)
|
||||
)
|
||||
);
|
||||
|
||||
// Click Statistics Service (NEW - for Analytics Dashboard)
|
||||
$container->singleton(
|
||||
ClickStatisticsService::class,
|
||||
fn(Container $c) => new ClickStatisticsService(
|
||||
$c->get(ClickEventRepository::class)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user