Controller   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 35
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 4
c 2
b 0
f 0
lcom 1
cbo 1
dl 0
loc 35
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 5 1
A template() 0 14 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