Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
12 / 12
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
AppTemplateFactory
100.00% covered (success)
100.00%
12 / 12
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
1 / 1
 createTemplate
100.00% covered (success)
100.00%
12 / 12
100.00% covered (success)
100.00%
1 / 1
2
1<?php
2
3declare(strict_types=1);
4
5namespace PeServer\App\Models;
6
7use PeServer\App\Models\AppTemplateOptions;
8use PeServer\Core\DI\DiFactoryBase;
9use PeServer\Core\DI\DiFactoryTrait;
10use PeServer\Core\DI\IDiContainer;
11use PeServer\Core\IO\Directory;
12use PeServer\Core\IO\Path;
13use PeServer\Core\Mvc\Template\ITemplateFactory;
14use PeServer\Core\Mvc\Template\SmartyTemplate;
15use PeServer\Core\Mvc\Template\TemplateBase;
16use PeServer\Core\Mvc\Template\TemplateFactory;
17use PeServer\Core\Mvc\Template\TemplateOptions;
18use PeServer\Core\Throws\NotImplementedException;
19
20class AppTemplateFactory extends TemplateFactory
21{
22    use DiFactoryTrait;
23
24    #region TemplateFactory
25
26    /**
27     * @param TemplateOptions $options めっちゃかえるで。
28     */
29    public function createTemplate(TemplateOptions $options): TemplateBase
30    {
31        $customOptions = $options;
32        if ($options instanceof AppTemplateOptions) {
33            /** @var AppConfiguration */
34            $config = $this->container->get(AppConfiguration::class);
35
36            $customOptions = new TemplateOptions(
37                Path::combine($options->programContext->applicationDirectory, 'App', 'Views'),
38                $options->controllerName,
39                $options->programContext,
40                $options->urlHelper,
41                $options->webSecurity,
42                $config->setting->cache->template
43            );
44        }
45
46        return parent::createTemplate($customOptions);
47    }
48
49    #endregion
50}