Ir para o conteúdo

Publicidade

 Estatísticas do Fórum

  • 0 Usuários ativos

    0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

Cursos Online iMasters
Foto:

[Resolvido] Sessões PHP com NoSQL

  • Por favor, faça o login para responder
26 respostas neste tópico

#21 Marcio Mauricio

Marcio Mauricio
  • Membros
  • 22 posts

Postado 24 setembro 2012 - 16:10

Olá!

Estou começando um projeto e esse artigo me pareceu muito interessante então decidi implementar para fazer uns teste.

Acredito que a programação ta passando por uma faze revolucionária onde as coisas se tornam obsoletas cada vez mais rapdo.

Acabei por receber a mensagem de desuso de uma classe usada nesse artigo, aliás fato comum em se tratando de noSQL, mais emfim, como eu não tenho muita experiencia não sei com o que devo substituir a classe e gostaria que se possivel o ator do post corrigisse ai pra gente.


Deprecated: MongoBinData::__construct(): The default value for type will change to 0 in the future. Please pass in '2' explicitly. in /home/marcio/mongo/public/session/MongoSessionHandler.php on line 92



Forte abraço a todos!
  • 0

#22 Prog

Prog

    Enterprise Search Specialist

  • Moderadores
  • 5.234 posts

Postado 24 setembro 2012 - 17:03

Deve estar relacionado com a versão da lib do mongodb no php.

Verifique a versão utilizada com o phpinfo().

Esta usando Windows ou Linux?
Para Windows olhe aqui: http://php.net/manua...llation.windows
  • 1

#23 Marcio Mauricio

Marcio Mauricio
  • Membros
  • 22 posts

Postado 24 setembro 2012 - 17:08

Deve estar relacionado com a versão da lib do mongodb no php.

Verifique a versão utilizada com o phpinfo().

Esta usando Windows ou Linux?
Para Windows olhe aqui: http://php.net/manua...llation.windows

Estou usando ubuntu 12.04,

phpinfo


MongoDB Support enabled
Version 1.2.12

Directive Local Value Master Value
mongo.allow_empty_keys 0 0
mongo.allow_persistent 1 1
mongo.chunk_size 262144 262144
mongo.cmd $ $
mongo.default_host localhost localhost
mongo.default_port 27017 27017
mongo.is_master_interval 60 60
mongo.long_as_object 0 0
mongo.native_long 0 0
mongo.no_id 0 0
mongo.ping_interval 5 5
mongo.utf8 1 1
  • 0

#24 Prog

Prog

    Enterprise Search Specialist

  • Moderadores
  • 5.234 posts

Postado 24 setembro 2012 - 18:09

Marcio,

Sua versão é a mais recente. Vou fazer esse mesmo teste quando chegar em casa e te dou um feedback. Se até lá ninguém mais aparecer com uma solução.

Você fez alguma alteração no código? Em caso positivo, mostre como ficou.
  • 1

#25 Marcio Mauricio

Marcio Mauricio
  • Membros
  • 22 posts

Postado 24 setembro 2012 - 18:34

Marcio,

Sua versão é a mais recente. Vou fazer esse mesmo teste quando chegar em casa e te dou um feedback. Se até lá ninguém mais aparecer com uma solução.

Você fez alguma alteração no código? Em caso positivo, mostre como ficou.

Ok, to estudando uma solução aqui tambem, se consegui eu posto.

Feito isso o proximo passo será acessar onde esses dados estão sendo salvos para poder verificar o numero de usuários on line.

Forte abraço!
  • 0

#26 Prog

Prog

    Enterprise Search Specialist

  • Moderadores
  • 5.234 posts

Postado 24 setembro 2012 - 22:32

Marcio,

Parece ser algum bug não corrigido mesmo, na documentação do construtor diz assim:
public __construct ( string $data [, int $type = 2 ] )
http://php.net/manua...ongobindata.php

Tudo perfeito... $data para os dados e um $type que seria opcional. Bem, deveria ser opcional.
Não encontrei nenhuma explicação ou ticket aberto que relate o mesmo problema, então, segue apenas um workaround.

Na linha que ocorre o problema o código fica assim:
'serialized' => new MongoBinData( gzcompress( $session->getSessionData() ) , 2),

Sem mais explicações para o momento.

Ps: No Windows eu não consegui ver este problema. Farei outros testes amanhã.

----------------

Marcio,

Lendo melhor a mensagem, é apenas um aviso de depreciação. Não sobre a função ou a classe, mas sim sobre a opção padrão. Na mensagem diz que no futuro o default será 0, e solicita que você seja explicito ao escolher o $type = 2 para evitar problemas nas próximas versões.

Paz e bem!

Editado por Prog, 24 setembro 2012 - 22:38 .

  • 1

#27 Marcio Mauricio

Marcio Mauricio
  • Membros
  • 22 posts

Postado 24 setembro 2012 - 23:37

Marcio,

Parece ser algum bug não corrigido mesmo, na documentação do construtor diz assim:
public __construct ( string $data [, int $type = 2 ] )
http://php.net/manua...ongobindata.php

Tudo perfeito... $data para os dados e um $type que seria opcional. Bem, deveria ser opcional.
Não encontrei nenhuma explicação ou ticket aberto que relate o mesmo problema, então, segue apenas um workaround.

Na linha que ocorre o problema o código fica assim:
'serialized' => new MongoBinData( gzcompress( $session->getSessionData() ) , 2),

Sem mais explicações para o momento.

Ps: No Windows eu não consegui ver este problema. Farei outros testes amanhã.

----------------

Marcio,

Lendo melhor a mensagem, é apenas um aviso de depreciação. Não sobre a função ou a classe, mas sim sobre a opção padrão. Na mensagem diz que no futuro o default será 0, e solicita que você seja explicito ao escolher o $type = 2 para evitar problemas nas próximas versões.

Paz e bem!


Muito Bom cara!
agora ta funcionando perfeitamente.

acessei pelo terminal e executei os seguintes comandos:

> use session
switched to db session
> db.getCollectionNames()
[ "PHPSESSID", "system.indexes" ]
> db.PHPSESSID.find()
{ "_id" : "37s9ugc8et1qko5aslicv4vbg7", "data" : { "info" : { "cliente" : "Fulano", "secao" : "Uma seção do site" } }, "serialized" : BinData(2,"WgAAAHicy8xLy6/xt7KwUiouSXHOSSwuVrIysqoutjK3UkrOyUzNK0lVsi62MrNScivNSczLB3FMgYpTkxPBbENLK6XQ3ESF4tTDyw8vzldIyVcozgTpqQUARy4eYQ=="), "expires" : ISODate("2012-09-25T02:31:44Z") }
>

estão ai os meus usuários logados!

agora preciso saber se quado o cache expira se eles saem automaticamente desta coleção, pelo que pude perceber posso setar o cache_expire com session_cache_expire() mais isso eu vejo amanhã.

Valeu ai pela ajuda brother!

Forte abraço!
  • 0




Publicidade

/ins>