Gerar um cache a partir de uma View.

30 views
Skip to first unread message

Jefferson

unread,
Aug 18, 2011, 8:15:11 AM8/18/11
to kohan...@googlegroups.com
Bom dia galera dev KO.

O seguinte, estou precisando criar uma cache de uma view, já criei um cache do ORM onde precisava de performance, mas agora tenho uma view cujo conteúdo necessita de n consultas e outros elementos de interface, logo queria criar um cache da mesma, alguém sabe ou já realizou algo do tipo?


Grato pela atenção,
Jefferson Pereira.

Beto

unread,
Aug 18, 2011, 8:31:33 AM8/18/11
to kohan...@googlegroups.com
se vc tiver algo como:

$view = View::Factory('path/to/view');
$view->set('a', $a);
$view->set('b', $b);
$view->set('c', $c);
$view->set('d', $d);
$view->set('e', $e);

$view_render  = $view->render();

vc pode fazer o cache dessa variavel $view_render que conterá o conteúdo da view já renderizado.

Espero que ajude.

[]s

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

Luiz Alberto S. Ribeiro [ Beto ]
@madeinnordeste






2011/8/18 Jefferson <wkeff...@gmail.com>

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos Grupos do Google.
Para ver esta discussão na web, acesse https://groups.google.com/d/msg/kohana-php/-/yCo4dCfXMPQJ.
Para postar neste grupo, envie um e-mail para kohan...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para kohana-php+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/kohana-php?hl=pt-BR.

Marcelo Rodrigo

unread,
Aug 18, 2011, 8:46:41 AM8/18/11
to kohan...@googlegroups.com
Gerar cache da view? Fragments é a resposta.
http://marcelorodrigo.com/usando-fragments-kohana.html

Atenciosamente,

Marcelo Rodrigo
http://marcelorodrigo.com

Jefferson

unread,
Aug 18, 2011, 9:00:56 AM8/18/11
to kohan...@googlegroups.com
Um interessante, confesso que acabei de fazer como o Beto sugeriu, estava esquecendo de chamar o render, agora vou testar com o Fragment que nunca tinha ouvido falar, srs.

Obrigado pessoal.

Jefferson

unread,
Aug 18, 2011, 9:11:18 AM8/18/11
to kohan...@googlegroups.com
Marcelo, só que tem um porém, eu não posso dar uma saída no buffer no meio do controller, saca?

if(!Fragment::load('projeto', Date::Month));

$criar consultas no banco
$criar view

Fragmetn::save();

$this->template->content = Fragment::load('projeto');


Vou ter que jogar o fragment dentro da view ?


Gabriel Reitz Giannattasio

unread,
Aug 18, 2011, 9:16:31 AM8/18/11
to kohan...@googlegroups.com
Fragmento é pra otimizar apenas a parte estática da view. Assim ela pode ser processada mais rápida.

Bem útil se tens um conteúdo dynamico na view qual não é de interesse criar cache.

Se o conteúdo como um todo da view pode ser feito o cache, tipo um feed, que só será atualizado a cada 5 minutos, utilize o cache da controladora mesmo que tu vais ter um ganho maior.

Já se o conteúdo é tipo uma página de blog, constantemente atualizada (número de comentários, etc) faça cache dos fragmentos da sua view que vc acha interessante, inclusive das matérias (pois elas não mudam com frequencia) mas mantenha os dados que podem ser alterados com frequencia sem cache.

Se quiser otimizar ainda mais sua aplicação, vc pode usar o memcached, integrado ao PHP.

Por último pode fazer um reverse-proxy usando o nginx. (esta solução é bem simples e seu ganho chega a 300% de desempenho sem ter que trocar 1 linha de código sequer).

Abraço,
Gabriel R. Giannattasio
gab...@gartz.com.br
Tel: (48) 8415 3555


2011/8/18 Jefferson <wkeff...@gmail.com>

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos Grupos do Google.
Para ver esta discussão na web, acesse https://groups.google.com/d/msg/kohana-php/-/njgJpqai5yIJ.

Marcelo Rodrigo

unread,
Aug 18, 2011, 9:26:53 AM8/18/11
to kohan...@googlegroups.com
Gartz,

Pode dar exemplos deste reverse-proxy usando o nginx?
Gostei da idéia.


Atenciosamente,

Marcelo Rodrigo
http://marcelorodrigo.com


Beto

unread,
Aug 18, 2011, 11:08:41 AM8/18/11
to kohan...@googlegroups.com
boas dicas :D

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

Luiz Alberto S. Ribeiro [ Beto ]
@madeinnordeste







2011/8/18 Marcelo Rodrigo <mrod...@gmail.com>

Gabriel Reitz Giannattasio

unread,
Aug 18, 2011, 11:43:15 AM8/18/11
to kohan...@googlegroups.com
Facebook usa (é um bom exemplo)

Hehehe, brincadeirinha (mas é verdade, eles usam mesmo)


Se você utiliza Apache como servidor PHP.

No meu caso eu uso um nginx que faz reverse proxy no próprio nginx, que executa aplicações em PHP-FPM via FastCGI. O desempenho é grosseiro.

Delay do meu servidor hoje é básicamente a distancia física dele, pq difícilmente uma página leva mais que 0.000~ms pra ser carregada.

Mas é claro, se você pretende usar cache, tenha memória ram de sobra, pq cache em disco, as vezes deixa mais lento do que um PHP compilado. (caso você use APC ou Eaccelerator), no meu caso APC.

Abraço,
Gabriel R. Giannattasio
gab...@gartz.com.br
Tel: (48) 8415 3555


2011/8/18 Marcelo Rodrigo <mrod...@gmail.com>

Bernardo - Sudeste Hosting

unread,
Aug 18, 2011, 1:14:41 PM8/18/11
to kohan...@googlegroups.com
@Gabriel,
É tão rápido que da até erro interno.  [ http://img155.imageshack.us/img155/3381/gartxcombr.jpg ] , (Hehehe) , Brincadeira.
Atenciosamente,
Bernardo Sepulveda de Castro
------- ------- ------- -------- -------- --------
Sudeste Hosting...
Ideias e Soluções Web
www.sudestehosting.com.br
(21)3305-3105

Gabriel Reitz Giannattasio

unread,
Aug 18, 2011, 3:13:13 PM8/18/11
to kohan...@googlegroups.com
Esse ai é um projeto em Ruby, o servidor está desativado, por isso o wrapper da este erro.

Se tu quiser ver a velocidade acessa:
www.ramalhoblog.com -> nginx FPM
www.roreitz.com.br -> nginx FPM
blog.roreitz.com.br -> nginx FPM + Memcached
www.fretsonfire.l6.com.br -> nginx -> apache2 -> FastCGI PHP
curriculum.gartz.com.br -> nginx -> apache2 -> kohana 3.1 (não abre em IE :P )

o projetos.gartz.com.br é um Redmine e está desativado desde ontem, pois vou atualizar pra versão 1.2.1, como acesso básicamente só eu, eu desativei, por isso vc ta vendo este erro ai, o socket está inacessível.

Abraço,
Gabriel R. Giannattasio
gab...@gartz.com.br
Tel: (48) 8415 3555


2011/8/18 Bernardo - Sudeste Hosting <bs.c...@gmail.com>

Gabriel Reitz Giannattasio

unread,
Aug 18, 2011, 11:14:11 PM8/18/11
to kohan...@googlegroups.com
Pronto, terminei a atualização, já está novamente no ár.

Sem mais erros ;)

Mas como eu disse, o projetos.gartz.com.br é um gerenciador de tarefas em ruby, o mesmo usado pelo pessoal do Kohana, inclusive que recomendo muito, quem quiser saber mais visite www.redmine.org

Meu servidor de Integração Continua (Jenkins) ainda está offline, mas deixei lá um projeto em KO 3.1 preparado pra trabalhar com Integração Continua, Teste Unitário e alguns comandos em Phing que facilitam muito vários processos cotidianos.

Ando sem tempo para atualizar, mas pretendo retomar os projetos opensource quisá no proximo mês.


Abraço,
Gabriel R. Giannattasio
gab...@gartz.com.br
Tel: (48) 8415 3555


2011/8/18 Gabriel Reitz Giannattasio <gab...@gartz.com.br>

Rodrigo Oliveira

unread,
Aug 19, 2011, 1:22:05 AM8/19/11
to kohan...@googlegroups.com
[offtopic]
Gartz, você é o adminstrador do vidadeprogramador?
Conheci outro dia e achei muito bom.
[/offtopic]

2011/8/19 Gabriel Reitz Giannattasio <gab...@gartz.com.br>



--
Rodrigo Oliveira
(21) 8747-0180

Gabriel Reitz Giannattasio

unread,
Aug 19, 2011, 8:17:18 AM8/19/11
to kohan...@googlegroups.com
Não sou.

Eu também adoro as tirinhas, recomendo, pro pessoal que ainda não conhece:

Abraço,
Gabriel R. Giannattasio
gab...@gartz.com.br
Tel: (48) 8415 3555


2011/8/19 Rodrigo Oliveira <rodri...@gmail.com>
Reply all
Reply to author
Forward
0 new messages