przewiń do treści

PHP, MySQL i MVC. Tworzenie witryn WWW opartych na bazie danych

Włodzimierz Gajda

public function execute_rss()
{
    require_once 'XML/Serializer.php';

    $serializer = new XML_Serializer();
    $options = array(
        'addDecl'        => true,
        'indent'         => '    ',
        'rootName'       => 'rss',
        'encoding'       => 'utf-8',
        'defaultTagName' => array(
            'channel' => 'item',
        ),
        'scalarAsAttributes' => array(
            'rss' => array('version'),
        )
    );

    $serializer->setOptions($options);

    $dane = array();
    $dane['version'] = '2.0';
    $dane['channel'] = array(
        'title' => 'Klasyfikacja zwierząt',
        'link' => 'http://example.net/klasy/fi/ka/cja.html',
        'description' => 'Lorem...',
        'language' => 'pl',
        'copyright' => 'Włodzimierz Gajda',
    );
    $gromady = GromadaPeer::doSelect(new Criteria());
    foreach ($gromady as $gromada) {
        $url = 'index.php?module=gromada&action=show&slug=' . $gromada->getSlug();
        $url = url($url, 'absolute');
        $item = array(
            'title' => 'Gromada: ' . $gromada,
            'link' => $url,
        );
        $dane['channel'][] = $item;
    }

    $serializer->serialize($dane);
    $wynik = $serializer->getSerializedData();
    $this->noLayout();
    header('Content-Type: application/xml');
    echo $wynik;
}

Listing 28.20. Metoda execute_rss() akcji main/rss

Rozdział 28. XML_Serializer, XML_Unserializer - dwukierunkowe transformacje tablic w XML

listing-28-20.txt

Reklama

Szkolenia z Symfony 2.0