Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
--TEST--
2
XML_Query2XML::getXML(): using the callback interface for an idColumn specification
3
--SKIPIF--
4
<?php require_once dirname(dirname(__FILE__)) . '/skipif.php'; ?>
5
--FILE--
6
<?php
7
    require_once 'XML/Query2XML.php';
8
    require_once 'XML/Query2XML/Callback.php';
9
    require_once dirname(dirname(__FILE__)) . '/db_init.php';
10
    class Test{}
11
    class MyCallback implements XML_Query2XML_Callback
12
    {
13
        private $_columnName = '';
14
 
15
        public function __construct($columnName)
16
        {
17
            $this->_columnName = $columnName;
18
        }
19
 
20
        public function execute(array $record)
21
        {
22
            return $record[$this->_columnName] != '';
23
        }
24
    }
25
 
26
    $query2xml = XML_Query2XML::factory($db);
27
    $dom =& $query2xml->getXML(
28
        "SELECT
29
            *
30
         FROM
31
            album",
32
        array(
33
            'rootTag' => 'music_store',
34
            'rowTag' => 'album',
35
            'idColumn' => 'albumid',
36
            'elements' => array(
37
                'albumid',
38
                'title' => array(
39
                    'value' => 'title',
40
                    'condition' => new MyCallback('title')
41
                )
42
            )
43
        )
44
    );
45
    $dom->formatOutput = true;
46
    print $dom->saveXML();
47
?>
48
--EXPECT--
49
<?xml version="1.0" encoding="UTF-8"?>
50
<music_store>
51
  <album>
52
    <albumid>1</albumid>
53
    <title>New World Order</title>
54
  </album>
55
  <album>
56
    <albumid>2</albumid>
57
    <title>Curtis</title>
58
  </album>
59
  <album>
60
    <albumid>3</albumid>
61
    <title>Shaft</title>
62
  </album>
63
</music_store>