<?php declare(strict_types=1); namespace Xentral\Modules\MandatoryFields; use Xentral\Core\DependencyInjection\ContainerInterface; use Xentral\Modules\MandatoryFields\Service\MandatoryFieldsGateway; use Xentral\Modules\MandatoryFields\Service\MandatoryFieldsService; use Xentral\Modules\MandatoryFields\Service\MandatoryFieldsValidator; final class Bootstrap { /** * @return array */ public static function registerServices(): array { return [ 'MandatoryFieldsModule' => 'onInitMandatoryFieldsModule', ]; } /** * @param ContainerInterface $container * * @return MandatoryFieldsModule */ public static function onInitMandatoryFieldsModule(ContainerInterface $container): MandatoryFieldsModule { return new MandatoryFieldsModule( self::onInitMandatoryFieldsGateway($container), self::onInitMandatoryFieldsService($container), self::onInitMandatoryFieldsValidator($container) ); } /** * @param ContainerInterface $container * * @return MandatoryFieldsGateway */ private static function onInitMandatoryFieldsGateway(ContainerInterface $container): MandatoryFieldsGateway { return new MandatoryFieldsGateway($container->get('Database')); } /** * @param ContainerInterface $container * * @return MandatoryFieldsService */ private static function onInitMandatoryFieldsService(ContainerInterface $container): MandatoryFieldsService { return new MandatoryFieldsService($container->get('Database')); } /** * @param ContainerInterface $container * * @return MandatoryFieldsValidator */ private static function onInitMandatoryFieldsValidator(ContainerInterface $container): MandatoryFieldsValidator { return new MandatoryFieldsValidator( self::onInitMandatoryFieldsGateway($container) ); } }