Ir para conteúdo
Fórum Script Brasil
  • 0

Como inicializar o método zerando as configurações anteriores


Rubiz Gardini

Pergunta

Olá pessoal, td bem?

Trabalho com CodeIgniter e estou usando o SimplePie juntamente.

Ambos estão funcionando 100% bem, minha complicação é com a forma de inicializar o uso do método. O SimplePie lê feeds. Configurado com o CodeIgniter, ele fica com um código assim:

$url = array(
    'http://www.stf.jus.br/portal/RSS/noticiaRss.asp?codigo=1',
    'http://www.stj.gov.br/portal_stj/rss/index.wsp',
    'feed://www.nytimes.com/services/xml/rss/nyt/GlobalHome.xml',
    'http://www.agu.gov.br/RSS',
    'http://portal2.tcu.gov.br/portal/pls/portal/TCU_CUSTOM.RSS_TCU_NOTICIAS',
    'feed://jus.uol.com.br/revista/feed');
    
    $this->simplepie->set_feed_url($url);
    $this->simplepie->set_item_limit(1);
    $this->simplepie->enable_cache(false);
    $this->simplepie->enable_order_by_date(true);
    $this->simplepie->init();
    $this->simplepie->handle_content_type();
    $feeds = $this->simplepie->get_items();

O porém é que preciso usar para ler 2 tipo de feed distintos, que vão aparecer 1 abaixo do outro, e o que está acontecendo, é que ambos estão se misturando. Td porque não sei como "zerar" as configurações do método para usá-lo abaixo da primeira inicialização. Já tentei usar o "new" e não rolou...

Alguma dica? Só isso que tá faltando pra terminar o trabalho 0_0

Obrigada desde já!

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Você terá que criar outro objeto, senão quando você precisar utilizar as informações anteriores não conseguirá pois você as sobrescreveu.

Você está utilizando '$this', então você está implementando tudo na classe, certo? Pois creio que a melhor forma seria você criar a classe que terá as funções e em um outro arquivo você instancia essa classe (utilizando o comando new) criando 2 objetos, aí você não precisará apagar informação nenhuma...

Link para o comentário
Compartilhar em outros sites

  • 0

É exatamente isso que não sei fazer...

No SimplePie há um exemplo de uso que até libera a memória depois de criada a variável:

$feed = new SimplePie();
    $feed->set_feed_url($url);
    $feed->init();
    $feed->handle_content_type();
    $item = $feed->get_item(0); 

    $feed->__destruct(); // Do what PHP should be doing on it's own.
    unset($feed);

Mas no CodeIgniter, se faço isso, ele dá erro, fala que não existe o método...

Link para o comentário
Compartilhar em outros sites

  • 0

O código que você acabou de postar como exemplo só funcionaria se fosse adicionado no mesmo arquivo que contém o código da classe SimplePie, e como provavelmente você não está implementando dentro deste arquivo então você precisa incluir (função include ou função require) o arquivo da classe SimplePie dentro do arquivo que você está editando. Exemplo:

<?php

    // Inclui o arquivo que contém a classe SimplePie (levando em consideração que o arquivo da classe SimplePie está na mesma pasta em que você vai salvar esse arquivo que está editando)
    require_once('SimplePie.class.php');

    // Instancia os objetos da classe SimplePie
    $objeto1 = new SimplePie();
    $objeto2 = new SimplePie();
    
    // Agora é só chamar as funções que você vai usar (utilizando o nome do objeto ao invés da palavra $this)
    $objeto1->simplepie->set_feed_url($url);
    $objeto1->simplepie->set_item_limit(1);
    $objeto1->simplepie->enable_cache(false);
    $objeto1->simplepie->enable_order_by_date(true);
    $objeto1->simplepie->init();
    $objeto1->simplepie->handle_content_type();
    $feeds1 = $objeto1->simplepie->get_items();    
    
    // Cria o segundo feed
    $objeto2->simplepie->set_feed_url($url);
    $objeto2->simplepie->set_item_limit(1);
    $objeto2->simplepie->enable_cache(false);
    $objeto2->simplepie->enable_order_by_date(true);
    $objeto2->simplepie->init();
    $objeto2->simplepie->handle_content_type();
    $feeds2 = $objeto1->simplepie->get_items();    

?>

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...