2013-12-03 3 views
0

Я использую Simplepie для извлечения rss-каналов из таблицы DB. Я пытаюсь отобразить эти каналы на своих соответствующих div (например, один или несколько разных столбцов) со своим соответствующим количеством элементов, также поступающим из БД. Я эффективно обрабатываю каждый канал как отдельный экземпляр SimplePie.Разбор нескольких каналов с простым пирогом без их объединения

Вопрос в том, нормально ли мне создавать экземпляры объектов Simplepie, так как есть rss-каналы в db (см. Доказательство кода концепции ниже). Это работает для меня с двумя каналами вручную, но Мне интересно, есть ли у пользователя 50 каналов, нормально ли создавать объекты SimplePie, подобные этому, или есть лучший способ?

Я беспокоюсь о масштабируемости и правильности.

Это то, что я сейчас делаю:

require_once('../php/autoloader.php'); 

// We'll process this feed with all of the default options. 
$feed = new SimplePie(); 
$feed2 = new SimplePie(); 
// Set which feed to process. 
$feed->set_feed_url('http://rss.nytimes.com/services/xml/rss/nyt/HomePage.xml'); 
$feed2->set_feed_url('http://www.synthtopia.com/feed/'); 
// Run SimplePie. 
$feed->init(); 
$feed2->init(); 

// This makes sure that the content is sent to the browser as text/html and the UTF-8 character set 
$feed->handle_content_type(); 
$feed2->handle_content_type(); 


// Then display feeds 
... 

Мой другой qeustion есть, как я могу программно создать больше переменных $feed3, $feed4, $feed5' etc without having to write them manually. Do I just do a forerch and append {$i} to feeds like so? $ { «кормить». $ i} `или есть лучший способ сделать это?

Спасибо!

ответ

1

Ваш подход в основном прекрасен ИМО, хотя, если каждый пользователь создает 50 объектов, вы можете увидеть несколько медленных загрузок страниц.

Вместо инстанцировании отдельных переменных, я хотел бы использовать цифровую индексированный массив и просто вернуть URL ленты из базы данных в порядке, вы хотите, чтобы они были в

$feeds = array(); 
// get feeds from db 
$feeds[1] = $url_1; // first url from db query 
... 
$feed->set_feed_url($feeds[1]); 
// etc. 
+0

Да, это то, что я в конечном итоге делает, это не в производстве, но я точно не знаю, как медленно это будет. Думая о переделке всего с Ruby on Rails. Спасибо BTW. – rii

Смежные вопросы