Controller::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 5
rs 9.4285
cc 1
eloc 4
nc 1
nop 3
1
<?php
2
namespace Bricks\Frameworks\Base\Controller;
3
use Bricks\ServiceLocator\Manager as Locator;
4
use Bricks\TemplateEngine\Php\Template;
5
6
abstract class Controller{
7
  protected $locator;
8
  protected $controller;
9
  protected $action;
10
11
  public function __construct(Locator $locator, $controller, $action){
12
    $this->locator = $locator;
13
    $this->controller = $controller;
14
    $this->action = $action;
15
  }
16
17
  /**
18
   * Формирует шаблон представления для текущего контроллера.
19
   * Параметры метода позволяют запросить шаблон для метода любого контроллера.
20
   *
21
   * @param string $controller [optional] Имя целевого контроллера.
22
   * @param string $action [optional] Имя целевого метода.
23
   *
24
   * @return Template Шаблон, используемый для данного метода контроллера.
25
   */
26
  public function template($controller = null, $action = null){
27
    if(is_null($controller)){                                                                                  
28
      $controller = $this->controller;                                                                         
29
    }                                                                                                          
30
    if(is_null($action)){                                                                                                                              
31
      $action = $this->action;                                                                                 
32
    }
33
34
    $template = new Template($this->locator['loader']->path('Bricks\Frameworks\Base\Template\\' . $controller . '\\' . $action, 'html'));
35
    $template->controller = $controller;
36
    $template->action = $action;
37
38
    return $template;
39
  }
40
}
41