Pergunta

Então eu fiz apenas recentemente a etapa de ad hoc depuração com dump, print_r e echo a alguns métodos mais sofisticados e eu estou tendo uma luta.

Eu trabalho com Zend Framework, Aptana e Zend Debugger.

Neste momento eu estou tentando depurar um controlador personalizado e tudo o que eu tente, eu não chegar ao meu ponto de interrupção que eu entendo uma vez que há a autenticação no meio e utilizando o menu.

Perguntas :

  1. Como posso fazer minha pausa aplicação no ponto de autenticação, o login no navegador, navegar para um certas uri e depois continuar a depuração?
  2. Quais são bons lugares para pontos de interrupção conjunto em Zend Framework com MVC?
Foi útil?

Solução

Você deseja alterar detalhes de autenticação meio caminho do usuário atual através de um pedido?

Eu não acho que isso é possível. Zend Debugger é praticamente uma ferramenta somente leitura. Mesmo se fosse, você está assumindo que tudo o quadro que você está usando pode lidar com isso. Isso significaria que ele teria que constantemente tentar sincronizar seu estado interno com a mudança de dados de entrada.

Eu acho que em vez de nos perguntar como resolver este problema específico, você deve estar nos dizendo por que você precisa de autenticação mudança. Parece que você está lançando um script em seu depurador, que falha porque você não tem nenhuma sessão do usuário.

Zend Debugger tem uma barra de ferramentas do navegador ( http: // files.zend.com/help/Zend-Studio-Eclipse-Help/zend_debugger_toolbar.htm ) que lhe permite iniciar um depurador para sua página atual; o depurador terá todas as informações que o navegador teria enviado: cookies, dados de postagem, etc. Há ainda uma definição "debug próxima página", que ajuda a depurar formulários POST. Parece que este é o que você quer.

Outras dicas

Não seria mais fácil de configurar uma constante, tais como:

define('MODE_DEBUG', 1);

Em seguida, verifique no processo de autenticação:

if($obj->myLoginMethod() || constant('MODE_DEBUG') == 1){

}

Ninguém será capaz de injetar em que constante e a pior coisa que pode acontecer é você acaba deixando modo de depuração no meu erro ...

O que você poderia colocar uma verificação antes da definição:

define('MODE_DEBUG', (false !== strpos($_SERVER['HTTP_HOST'], 'dev.mysite.com') ? 1 : 0));

Talvez você só precisa repensar a solução de descarga (I como a idéia de usar pontos de interrupção, mas voltou depois de soluços, como o seu experiente e eu uso Zend Studio). Para depurar minhas aplicações eu fazer uso de Zend_Log e escritor firebug para Zend_Log. O Firebug saídas do registo para firebug (NB você deve ter o < a href = "http://www.firephp.org/" rel = "nofollow noreferrer"> FirePHP extensão para o Firefox instalado também). Armazenar o logger em seu registro e você pode realizar uma série de depuração sem estragar os seus pontos de vista com lixeiras feias.

Ok, então eu joguei com zend debugger um pouco mais. (A pergunta despertou velhos demônios) e eu finalmente descobri a maneira "adequada" para depurar. Para responder à sua pergunta inicial para depuração após o login eu diria instalar a barra de ferramentas Zend para o Firefox ou IE. À direita do item de menu Debug há um drop-down com algumas opções. Uma das opções é "próxima página". Então você pode ir para a tela de login, selecione "Página Seguinte" e, em seguida, colocar em suas credenciais e enviar e a página seguinte é o que é depurado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top