Пример #1
0
    }
}
class TextParamHandler extends ParamHandler
{
    function write()
    {
        echo "Запись текста";
    }
    function read()
    {
        echo "Чтение текста";
    }
}
$filename = "text.xml";
// файл
$test = ParamHandler::getInstance($filename);
// получаем объект в зависимости от имени файла
$test->addParam("Key1", "Val1");
// добавляем параметры
$test->addParam("Key2", "Val2");
$test->write();
// записываем
$test->read();
// читаем
var_dump($test);
//-----------------------процедурный подход-------------------------------------------------
function readParams($source)
{
    $params = [];
    if (preg_match("/xml/", $source)) {
        echo "читаем XML";
Пример #2
0
        return new TextParamHandler($filename);
    }
    abstract function write();
    abstract function read();
}
class XmlParamHandler extends ParamHandler
{
    function write()
    {
        $string = <<<XML
<?xml version='1.0' encoding='utf-8'?>
<article></article>
XML;
        $xml = simplexml_load_string($string);
        foreach ($this->params as $key => $val) {
            $xml->addChild($key, $val);
        }
        file_put_contents($this->source, $xml->asXML());
    }
    function read()
    {
        $sxe = new SimpleXMLElement($this->source, null, true);
        echo $sxe->asXML();
    }
}
$test = ParamHandler::getInstance("params.xml");
$test->addParam("key1", "val1");
$test->addParam("key2", "val2");
$test->addParam("key3", "val3");
$test->write();
$test->read();