Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sniper PT

[Resolvido] Benchmark

Recommended Posts

Gostaria de saber em quanto tempo foi processado as páginas do meu site, de forma a saber quando algo "está mal" ou podia estar melhor :) . Algo do género, "Página processada em x segundos".

 

Estive a ler o manual e para fazer o que desejo a melhor maneira poderá ser criando um plugin no Zend_Controller.

 

Alguém me poderia ajudar com isto?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já consegui. Também foi simples, mas fica aqui a explicação para quem desejar.

 

Basicamente criei um plugin :)

class benchmarkPlugin extends Zend_Controller_Plugin_Abstract
{
	public function preDispatch(Zend_Controller_Request_Abstract $request)
	{
	   $this->startTime = microtime(true);
	}
	
	public function postDispatch(Zend_Controller_Request_Abstract $request)
	{
		$stopTime = microtime(true) - $this->startTime;
		
		$this->getResponse()->appendBody($stopTime);
	}
}
o código é simples de interpretar, no entanto estava a obter um erro/warning do ZF (embora apresenta-se o resultado), isto deveu-se ao não estar a incluir nos parâmetros da função

Zend_Controller_Request_Abstract $request
.

 

Isto é um requerimento do ZF, pois tanto a função preDispatch e postDispatch fazem parte do funcionamento do ZF, sendo uma chamada antes do processamento e a outra depois. Pelo que li, apenas a função dispatchLoopShutdown() é que não necessita destes parâmetros.

 

Quanto à parte onde tá

$this->getResponse()->appendBody
É uma maneira mais correcta de fazer "echo" :)

 

Nota:

Caso estejam a usar o Zend_Layout (MVC), e queiram apresentar mesmo no fundo da página, usem

public function dispatchLoopShutdown()
em vez de

public function postDispatch(Zend_Controller_Request_Abstract $request)

Mais informações:

Zend Controller - Plugins

Microtime

Front Controller Plugins in Zend Framework [Artigo]

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.