PHP hata ayıklama - nerede breakpointler için?

4 Cevap php

Ben sadece son zamanlarda dump, print_r ve echo biraz daha sofistike yöntemler ile ad hoc hata ayıklama gelen adımı yaptık ve ben bir mücadele veriyorum.

Ben Zend Framework, Aptana ve Zend Debugger ile çalışır.

Şu anda ben özel bir denetleyicisi hata ayıklamak çalışıyorum ve ben denemek elimden kimlik arasında menüsünü kullanarak beri var anlıyorum benim kesme alamadım.

Questions:

  1. Nasıl kimlik noktada benim uygulama mola yapabilirsiniz, tarayıcıda giriş belirli bir URI gidin ve sonra hata ayıklama devam?
  2. MVC ile Zend Framework kesme noktası ayarlamak için iyi yerler nelerdir?

4 Cevap

Geçerli kullanıcının kimlik detaylarını bir istek şıkları değiştirmek istiyorsun?

Ben bu mümkün olduğunu sanmıyorum. Zend Debugger hemen hemen salt okunur bir araçtır. Olsa bile, sen kullandığınız ne olursa olsun bu çerçeve işleyebilir olduğunu varsayıyoruz. Yani sürekli olarak giriş verileri değişen iç durum var eşitlemeye çalışmak zorunda kalacak anlamına gelir.

Ben bunun yerine nasıl bu özel sorunu çözmek için bize soran kimlik doğrulaması değiştirmeniz gerekir, neden bize anlatıyorsun gerektiğini düşünüyorum. Eğer kullanıcı oturumu var çünkü başarısız ayıklayıcınızı, bir komut başlatılması gibi geliyor.

Zend Debugger Eğer geçerli sayfa için bir hata ayıklayıcı başlamanızı sağlar (http://files.zend.com/help/Zend-Studio-Eclipse-Help/zend_debugger_toolbar.htm) bir tarayıcı araç çubuğu vardır; Eğer hata ayıklama POST formları yardımcı hatta bir "hata ayıklama sonraki sayfa" ayarı var çerezler, yazılan veri, vb: debugger tarayıcı göndermiş ki tüm bilgilere sahip olacak. Bu ne istediğiniz gibi geliyor.

Bu gibi bir sabit kurmak kolay olmaz mıydı:

define('MODE_DEBUG', 1);

Sonra kimlik doğrulama işleminde kontrol edin:

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

}

Kimse bu sabite içine enjekte etmek mümkün olacak ve başına gelebilecek en kötü şey, benim hata üzerinde hata ayıklama moduna bırakarak sona olduğunu ...

Hangi tanımından önce bir kontrol koymak olabilir:

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

Belki de sadece (I kırılma noktalarını kullanarak fikir gibi ama tecrübeli gibi hıçkırık sonra geri döndü ve ben Zend Studio kullanabilirsiniz) dökümü çözümü düşünmek gerekiyor. Ben Zend_Log faydalanmak benim uygulamalarında hata ayıklama ve firebug writer Zend_Log için için. Kundakçı firebug (NB firefox için firephp uzantısı yanı sıra yüklü olması gerekir) için giriş çıkışları. Kayıt defterinde logger saklayın ve çirkin döker ile görüşlerini karışıklık olmadan hata ayıklama bir çok gerçekleştirebilirsiniz.

Tamam ben zend hata ayıklayıcı biraz daha oynadı. (Soru eski şeytanları kadar karıştırılır) ve nihayet hata ayıklamak için "doğru" yolu anladım. Ayıklamak için ilk soruyu cevaplamak için giriş yaptıktan sonra ben Firefox veya IE için zend araç çubuğunu yüklemek söyleyebilirim. Debug menü öğesinin sağındaki bazı seçenekler aşağı bir düşüş var. Seçeneklerden biri "sonraki sayfa" olduğunu. Yani "Sonraki Sayfa" seçeneğini giriş ekranına gidin ve daha sonra kimlik koymak ve göndermek ve SONRAKİ sayfa ayıklanacak budur edebilirsiniz.