Por conta dos porxys que ficam nas entidades relacionadas, dar um print_r em um obj do doctrine 2 não é nada agradável. Na documentação tem pouca referência de como fazer isso, mas achei o seguinte:
\Doctrine\Common\Util\Debug::dump($entidade);
É muito útil.
Mostrando postagens com marcador debug. Mostrar todas as postagens
Mostrando postagens com marcador debug. Mostrar todas as postagens
sexta-feira, 13 de janeiro de 2012
terça-feira, 7 de dezembro de 2010
Degub de queries que não mostram erro no Doctrine 1
Se você estiver tendo problemas com uma query especifica que morre sem deixar vestigios, sem imprimir nada na tela, pode se beneficiar de mais informações registrando um listener generico para imprimir os eventos e também melhorando o flush para ele realmente mostrar algo. antes de fazer a query, registre o listener na conexão:
$conn = Doctrine_Manager::connection();
$conn->setListener(new MyDebugger());
$result = $query->execute();
E também declare ele e o flush melhorado:
class MyDebugger implements Doctrine_Overloadable
{
public function __call($methodName, $args)
{
echo $methodName . ' called !';
flush2();
}
}
function flush2 (){
echo(str_repeat(' ',256));
// check that buffer is actually set before flushing
if (ob_get_length()){
@ob_flush();
@flush();
@ob_end_flush();
}
@ob_start();
}
$conn = Doctrine_Manager::connection();
$conn->setListener(new MyDebugger());
$result = $query->execute();
E também declare ele e o flush melhorado:
class MyDebugger implements Doctrine_Overloadable
{
public function __call($methodName, $args)
{
echo $methodName . ' called !';
flush2();
}
}
function flush2 (){
echo(str_repeat(' ',256));
// check that buffer is actually set before flushing
if (ob_get_length()){
@ob_flush();
@flush();
@ob_end_flush();
}
@ob_start();
}
Marcadores:
debug,
doctrine,
doctrine 1,
empty screen,
query
Assinar:
Postagens (Atom)