Einführung

Einführung – Was Config macht

Einführung

Config hilft dabei Konfigurationsdaten zu verwalten, unabhängig davon, ob sie als XML-Dateien, PHP-Array oder in anderen Formen vorliegen. Es unterstützt eine Reihe von Funktionen:

  • Parsen verschiedener Konfigurationsformate.

  • Manipulation von Sektionen, Direktiven, Kommentaren und Leerzeichen wie Sie wollen.

  • Konfigurationsdaten im gewünschten Format zu speichern.

Das Config-Objekt fungiert als Container für weitere Config_Container-Objekte. Es macht nicht viel, vereinfacht aber Lese- und Schreiboperationen. Es enthält das Wurzel-Objekt Config_Container, das ein abgeleitetes Config_Container-Objekt enthält. Config_Container-Objekte speichern Referenzen auf Eltern-Elemente, die entsprechende Kind-Elemente in einem Array enthalten. Diese Struktur macht es einfach auf verschiedene Container und ihre Inhalte zuzugreifen.

Ein Config_Container-Objekt kann eines dieser Typen sein:

  • Sektionen: eine Sektion enthält andere Config_Container-Objekte.

  • Direktiven: eine Direktive enthält nur Inhalt und einen Namen. Sie entsprechen einem Schlüssel-Wert-Paar.

  • Kommentare: entsprechend Direktiven besitzen sie einen Inhalt - aber keinen Namen. Sie werden beim Schreiben entsprechend argestellt.

  • Blanks: sie enthalten keinen Inhalt, sondern stellen Leerzeilen dar.

Wenn Sie das Config-Package verwenden, arbeiten Sie meistens mit Config_Container-Objekten.

Einen neues Config_Container-Objekt erzeugen

<?php
// initialize a Config_Container object

require_once('Config.php');
$conf =& new Config_Container('section''conf');
$conf_DB =& $conf->createSection('DB');
$conf_DB->createDirective('type''mysql');
$conf_DB->createDirective('host''localhost');
$conf_DB->createDirective('user''root');
$conf_DB->createDirective('pass''root');

// set this container as our root container child in Config

$config = new Config();
$config->setRoot($conf);

// write the container to a php array

$config->writeConfig('/tmp/config_test.php''phparray',
                     array(
'name' => 'test'));

// print the content of our conf section to screen

echo $conf->toString('phparray', array('name' => 'test'));
?>

Das Beispiel zeigt wie Config und Config_Container zusammenarbeiten. Es gibt weitere Möglichkeiten. Sie können zuerst das Config-Objekt erzeugen und dann $config->getRoot() aufrufen, um Sektionen und Direktiven zum zurückgegebenen Objekt.

Konfigurationsdaten aus einer XML-Datei auslesen

<?php
require_once 'Config.php';

$conf = new Config;
$root =& $conf->parseConfig('config.xml''XML');

if (
PEAR::isError($root)) {
    die(
'Error while reading configuration: ' $root->getMessage());
}

$settings $root->toArray();

printf('User settings: <a href="%s">%s %s</a>',
       
$settings['root']['conf']['www'],
       
$settings['root']['conf']['firstname'],
       
$settings['root']['conf']['lastname']
       );
?>

In diesem Beispiel kann die XML-Datei config.xml so aussehen:

<?xml version="1.0" encoding="UTF-8"?>

<conf>
  <firstname>John</firstname>
  <lastname>Doe</lastname>

  <www>http://example.com/</www>
</conf>

Weitere Information finden Sie in der API-Dokumentation, den Beispielen im Package und den Package-Testskripten. Desweiteren existiert ein gutes Tutorial für das Config-Package auf DevShield.

Config (Previous) Wie Sie Konfigurationsdaten bearbeiten (Next)
Last updated: Sun, 19 Dec 2010 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

There are no user contributed notes for this page.