Algemene container door je script heen
yzRz -
31/03/2013 11:25:21Ik ben benieuwd wat de meest handige manier is om een soort van container met variablen/objecten door je framework heen te laten lopen. Momenteel heb ik zoiets:
maar nu heb ik dus bij een aantal functies dat er heel random opeens Container::set tussen staat, gewoon vanwege het feit dat ik die variable toevallig op een andere plek ook nog nodig heb.
Bijvoorbeeld als ik binnen een functie alle routes ophaal, stop ik dat ook in de container, zodat ik later al die routes weer op kan halen binnen een Twig extension die een route genereert.
Ik stop in die container ook dingen zoals een Request object, een Twig object, een Route object, etc. En dan binnen mijn controller doe ik dingen zoals
Ik ben benieuwd of er betere manieren zijn om dit op te lossen
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
class Container {
private static $instances;
public static function set($key, $instance) {
if (!array_key_exists($key, static::$instances))
static::$instances[$key] = $instance;
}
public static function get($key) {
if (array_key_exists($key, static::$instances))
return static::$instances[$key];
}
}
?>
class Container {
private static $instances;
public static function set($key, $instance) {
if (!array_key_exists($key, static::$instances))
static::$instances[$key] = $instance;
}
public static function get($key) {
if (array_key_exists($key, static::$instances))
return static::$instances[$key];
}
}
?>
maar nu heb ik dus bij een aantal functies dat er heel random opeens Container::set tussen staat, gewoon vanwege het feit dat ik die variable toevallig op een andere plek ook nog nodig heb.
Bijvoorbeeld als ik binnen een functie alle routes ophaal, stop ik dat ook in de container, zodat ik later al die routes weer op kan halen binnen een Twig extension die een route genereert.
Ik stop in die container ook dingen zoals een Request object, een Twig object, een Route object, etc. En dan binnen mijn controller doe ik dingen zoals
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$this->request = Container::get('request');
$this->view = Container::get('twigview');
$this->route = Container::get('current_route');
?>
$this->request = Container::get('request');
$this->view = Container::get('twigview');
$this->route = Container::get('current_route');
?>
Ik ben benieuwd of er betere manieren zijn om dit op te lossen
Er zijn nog geen reacties op dit bericht.