Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
100.00% |
1 / 1 |
|
100.00% |
20 / 20 |
CRAP | |
100.00% |
48 / 48 |
Configuration | |
100.00% |
1 / 1 |
|
100.00% |
20 / 20 |
22 | |
100.00% |
48 / 48 |
__construct | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
databaseConfig | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
httpConfig | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
templateConfig | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
filesystemRoot | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
orm | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
ormConfig | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
ormWrappers | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
httpProcessor | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
httpRouteResolver | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
templateLocator | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
instance | |
100.00% |
1 / 1 |
2 | |
100.00% |
5 / 5 |
|||
buildDatabaseConfig | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
buildHttpConfig | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
buildTemplateConfig | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
buildOrm | |
100.00% |
1 / 1 |
1 | |
100.00% |
5 / 5 |
|||
buildHttpProcessor | |
100.00% |
1 / 1 |
1 | |
100.00% |
4 / 4 |
|||
buildHttpRouteResolver | |
100.00% |
1 / 1 |
1 | |
100.00% |
5 / 5 |
|||
buildTemplateLocator | |
100.00% |
1 / 1 |
2 | |
100.00% |
13 / 13 |
|||
configStorage | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
<?php | |
namespace PHPixie\BundleFramework; | |
class Configuration implements \PHPixie\Framework\Configuration | |
{ | |
protected $builder; | |
protected $instances = array(); | |
public function __construct($builder) | |
{ | |
$this->builder = $builder; | |
} | |
public function databaseConfig() | |
{ | |
return $this->instance('databaseConfig'); | |
} | |
public function httpConfig() | |
{ | |
return $this->instance('httpConfig'); | |
} | |
public function templateConfig() | |
{ | |
return $this->instance('templateConfig'); | |
} | |
public function filesystemRoot() | |
{ | |
return $this->builder->assets()->root(); | |
} | |
public function orm() | |
{ | |
return $this->instance('orm'); | |
} | |
public function ormConfig() | |
{ | |
return $this->orm()->configData(); | |
} | |
public function ormWrappers() | |
{ | |
return $this->orm()->wrappers(); | |
} | |
public function httpProcessor() | |
{ | |
return $this->instance('httpProcessor'); | |
} | |
public function httpRouteResolver() | |
{ | |
return $this->instance('httpRouteResolver'); | |
} | |
public function templateLocator() | |
{ | |
return $this->instance('templateLocator'); | |
} | |
protected function instance($name) | |
{ | |
if(!array_key_exists($name, $this->instances)) { | |
$method = 'build'.ucfirst($name); | |
$this->instances[$name] = $this->$method(); | |
} | |
return $this->instances[$name]; | |
} | |
protected function buildDatabaseConfig() | |
{ | |
return $this->configStorage()->slice('database'); | |
} | |
protected function buildHttpConfig() | |
{ | |
return $this->configStorage()->slice('http'); | |
} | |
protected function buildTemplateConfig() | |
{ | |
return $this->configStorage()->slice('template'); | |
} | |
protected function buildOrm() | |
{ | |
$components = $this->builder->components(); | |
return new Configuration\ORM( | |
$components->slice(), | |
$components->bundles()->orm() | |
); | |
} | |
protected function buildHttpProcessor() | |
{ | |
$components = $this->builder->components(); | |
return $components->httpProcessors()->attributeRegistryDispatcher( | |
$components->bundles()->httpProcessors(), | |
'bundle' | |
); | |
} | |
protected function buildHttpRouteResolver() | |
{ | |
$components = $this->builder->components(); | |
return $components->route()->buildResolver( | |
$this->configStorage()->slice('http.resolver'), | |
$components->bundles()->routeResolvers() | |
); | |
} | |
protected function buildTemplateLocator() | |
{ | |
$components = $this->builder->components(); | |
$bundleLocators = $components->bundles()->templateLocators(); | |
$overridesLocator = null; | |
$overridesConfig = $this->configStorage()->slice('template.locator'); | |
if($overridesConfig->get('type') !== null) { | |
$overridesLocator = $components->filesystem()->buildLocator( | |
$overridesConfig, | |
$bundleLocators | |
); | |
} | |
return new Configuration\FilesystemLocator\Template( | |
$bundleLocators, | |
$this->builder->assets(), | |
$overridesLocator | |
); | |
} | |
protected function configStorage() | |
{ | |
return $this->builder->assets()->configStorage(); | |
} | |
} |