A typical Developer Blog
by Gordon Franke
Icon

Wie erstelle ich ein Feed für mein Symfony Projekt in drei Schritten?

Erster Schritt zend framework implementieren

[cref 30 Wie kann ich Zend Framework Komponenten in meinem Symfony Projekt nutzen?]

Zweiter Schritt feed Modul erstellen und template Ordner löschen

./symfony generate:module frontend feed
rm apps/frontend/modules/feed/templates/ -Rf

Dritter Schritt index Funktion ersetzen

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public function executeIndex(sfWebRequest $request)
{
  ProjectConfiguration::registerZend();
 
  $feedArray = array(
    'title' => ...,
    'link' => $this->generateUrl('default_index', array('module' => 'feed')),
    'description' => ..,
    'language' => ...,
    'charset' => sfConfig::get('sf_charset'),
    'pubDate' => time(),
    'entries' => array()
  );
 
  /* get the data from the db or outher source */
 
  foreach($articles as $article)
  {
    $feedArray['entries'][] = array(
      'title' => $article['title'],
      'link' => $this->generateUrl('article_detail', $article),
      'guid' => $article['id'],
      'description' => $article['description']
    );
  }
 
  $feed = Zend_Feed::importArray($feedArray, 'rss');
  $feed->send();
 
  throw new sfStopException();
}

das wars für weitere Information siehe

Zend_Feed

Wie kann ich Zend Framework Komponenten in meinem Symfony Projekt nutzen?

füge folgenden Code in deine config/ProjectConfiguration.class.php hinzu

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
static protected $zendLoaded = false;
 
static public function registerZend()
{
  if (self::$zendLoaded)
  {
    return;
  }
 
  set_include_path(sfConfig::get('sf_root_dir').'/vendor/zend_framework/current'.PATH_SEPARATOR.get_include_path());
 
  require_once sfConfig::get('sf_root_dir').'/vendor/zend_framework/current/Zend/Loader.php';
 
  Zend_Loader::registerAutoload();
 
  self::$zendLoaded = true;
}

rufe die statische Funktion einmal auf bevor du eine Zend Framework komponente benutzt

ProjectConfiguration::registerZend();