Hallo zusammen,
ich bin dabei eine Config Klasse zu erstellen, die in meiner Anwendung wichtige Einstellungen verwalten soll.
Da ich mich erst seit kurzem mit PHP/OOP beschäftige, würde ich gerne bereits jetzt eure Meinungen dazu hören, ob ich so weiter machen kann.
Konkret geht es mir um folgende Fragen:
- Gibt es in diesem Fall Gründe, die gegen ein Singleton- und/oder Registry-Pattern sprechen?
Die beiden Pattern werden v.a. in Kombination immer öfter als schlecht dargestellt. Aber leider bleiben die Leute meistens eine Begründung schuldig.
- Mehr Performance durch static? http://forum.adventure-php-framework...=5&t=337#p2881
Wenn man sonst im Internet zu Performance-Unterschieden zwischen static und object sucht, ergeben die Tests meisten keinen oder kaum einen Unterschied. Weshalb macht das beim APF so einen großen Unterschied?
Config.php
index.php
Freundliche Grüße,
John
ich bin dabei eine Config Klasse zu erstellen, die in meiner Anwendung wichtige Einstellungen verwalten soll.
Da ich mich erst seit kurzem mit PHP/OOP beschäftige, würde ich gerne bereits jetzt eure Meinungen dazu hören, ob ich so weiter machen kann.
Konkret geht es mir um folgende Fragen:
- Gibt es in diesem Fall Gründe, die gegen ein Singleton- und/oder Registry-Pattern sprechen?
Die beiden Pattern werden v.a. in Kombination immer öfter als schlecht dargestellt. Aber leider bleiben die Leute meistens eine Begründung schuldig.
- Mehr Performance durch static? http://forum.adventure-php-framework...=5&t=337#p2881
Wenn man sonst im Internet zu Performance-Unterschieden zwischen static und object sucht, ergeben die Tests meisten keinen oder kaum einen Unterschied. Weshalb macht das beim APF so einen großen Unterschied?
Config.php
PHP-Code:
class Config
{
private $CONFIG = array();
private $environment;
private static $instance;
/**
* getInstance - Creates a new Singleton instance
*/
static public function getInstance() {
if (!isset(self::$instance)) {
self::$instance = new self();
}
return self::$instance;
}
private function __construct() {}
private function __clone() {}
/**
* Adds a key->value pair to the registry
*/
public function set($key, $value, $namespace = 'general') {
$this->CONFIG[$namespace][$key] = $value;
}
/**
* Retrieves a key->value pair from the registry
*/
public function get($key, $namespace = 'general') {
return $this->CONFIG[$namespace][$key];
}
public function loadIni($file) {
$this->CONFIG = parse_ini_file($file, true);
}
public function setEnvironment($env) {
$this->environment = $env;
}
public function printConfig() {
var_dump($this->CONFIG);
}
}
index.php
PHP-Code:
/**
* Configuration Setup
*/
include 'system/Config.php';
$config = Config::getInstance();
$config->setEnvironment('DEVELOPMENT');
$config->loadIni('/application/config/config.php');
// Configuration Test
$config->set('base_url', 'localhost');
echo $config->get('base_url'); // Output: localhost
John
Kommentar