Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
100.00% |
1 / 1 |
|
100.00% |
6 / 6 |
CRAP | |
100.00% |
24 / 24 |
| Init | |
100.00% |
1 / 1 |
|
100.00% |
6 / 6 |
12 | |
100.00% |
24 / 24 |
| controller | |
100.00% |
1 / 1 |
1 | |
100.00% |
6 / 6 |
|||
| i18nCheck | |
100.00% |
1 / 1 |
2 | |
100.00% |
3 / 3 |
|||
| viewCheck | |
100.00% |
1 / 1 |
2 | |
100.00% |
3 / 3 |
|||
| siteConfigCheck | |
100.00% |
1 / 1 |
2 | |
100.00% |
3 / 3 |
|||
| sessionCheck | |
100.00% |
1 / 1 |
2 | |
100.00% |
3 / 3 |
|||
| loggerCheck | |
100.00% |
1 / 1 |
3 | |
100.00% |
6 / 6 |
|||
| <?php | |
| namespace Bone\Controller; | |
| use Barnacle\Container; | |
| use Bone\I18n\I18nAwareInterface; | |
| use Bone\Controller\Controller; | |
| use Bone\View\ViewEngine; | |
| use Bone\Log\LoggerAwareInterface; | |
| use Bone\Server\SessionAwareInterface; | |
| use Bone\Server\SiteConfig; | |
| use Bone\Server\SiteConfigAwareInterface; | |
| use Bone\View\ViewAwareInterface; | |
| use Del\SessionManager; | |
| use Laminas\I18n\Translator\Translator; | |
| use Psr\Log\LoggerInterface; | |
| class Init | |
| { | |
| /** | |
| * @param Controller $controller | |
| * @param Container $container | |
| * @return Controller | |
| */ | |
| public static function controller(Controller $controller, Container $container): Controller | |
| { | |
| self::i18nCheck($controller, $container); | |
| self::viewCheck($controller, $container); | |
| self::siteConfigCheck($controller, $container); | |
| self::sessionCheck($controller, $container); | |
| self::loggerCheck($controller, $container); | |
| return $controller; | |
| } | |
| /** | |
| * @param \Bone\Controller\Controller $controller | |
| * @param Container $container | |
| */ | |
| private static function i18nCheck(Controller $controller, Container $container): void | |
| { | |
| if ($controller instanceof I18nAwareInterface) { | |
| $controller->setTranslator($container->get(Translator::class)); | |
| } | |
| } | |
| /** | |
| * @param \Bone\Controller\Controller $controller | |
| * @param Container $container | |
| */ | |
| private static function viewCheck(Controller $controller, Container $container): void | |
| { | |
| if ($controller instanceof ViewAwareInterface) { | |
| $controller->setView($container->get(ViewEngine::class)); | |
| } | |
| } | |
| /** | |
| * @param \Bone\Controller\Controller $controller | |
| * @param Container $container | |
| */ | |
| private static function siteConfigCheck(Controller $controller, Container $container): void | |
| { | |
| if ($controller instanceof SiteConfigAwareInterface) { | |
| $controller->setSiteConfig($container->get(SiteConfig::class)); | |
| } | |
| } | |
| /** | |
| * @param \Bone\Controller\Controller $controller | |
| * @param Container $container | |
| */ | |
| private static function sessionCheck(Controller $controller, Container $container): void | |
| { | |
| if ($controller instanceof SessionAwareInterface) { | |
| $controller->setSession($container->get(SessionManager::class)); | |
| } | |
| } | |
| /** | |
| * @param \Bone\Controller\Controller $controller | |
| * @param Container $container | |
| */ | |
| private static function loggerCheck(Controller $controller, Container $container): void | |
| { | |
| if ($controller instanceof LoggerAwareInterface) { | |
| $channel = $controller->getChannel(); | |
| $loggers = $container->get(LoggerInterface::class); | |
| $logger = in_array($channel, $loggers) ? $loggers['channel'] : $loggers['default']; | |
| $controller->setLogger($logger); | |
| } | |
| } | |
| } |